You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							142 lines
						
					
					
						
							3.8 KiB
						
					
					
				
			
		
		
	
	
							142 lines
						
					
					
						
							3.8 KiB
						
					
					
				| var Parser = require('../lib/parser'),
 | |
|     parseListEntry = Parser.parseListEntry;
 | |
| 
 | |
| var path = require('path'),
 | |
|     assert = require('assert'),
 | |
|     inspect = require('util').inspect;
 | |
| 
 | |
| var group = path.basename(__filename, '.js') + '/';
 | |
| 
 | |
| [
 | |
|   { source: 'drwxr-xr-x  10 root   root    4096 Dec 21  2012 usr',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'usr',
 | |
|       target: undefined,
 | |
|       sticky: false,
 | |
|       rights: { user: 'rwx', group: 'rx', other: 'rx' },
 | |
|       acl: false,
 | |
|       owner: 'root',
 | |
|       group: 'root',
 | |
|       size: 4096,
 | |
|       date: new Date('2012-12-21T00:00')
 | |
|     },
 | |
|     what: 'Normal directory'
 | |
|   },
 | |
|   { source: 'drwxrwxrwx   1 owner   group          0 Aug 31 2012 e-books',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'e-books',
 | |
|       target: undefined,
 | |
|       sticky: false,
 | |
|       rights: { user: 'rwx', group: 'rwx', other: 'rwx' },
 | |
|       acl: false,
 | |
|       owner: 'owner',
 | |
|       group: 'group',
 | |
|       size: 0,
 | |
|       date: new Date('2012-08-31T00:00')
 | |
|     },
 | |
|     what: 'Normal directory #2'
 | |
|   },
 | |
|   { source: '-rw-rw-rw-   1 owner   group    7045120 Sep 02  2012 music.mp3',
 | |
|     expected: {
 | |
|       type: '-',
 | |
|       name: 'music.mp3',
 | |
|       target: undefined,
 | |
|       sticky: false,
 | |
|       rights: { user: 'rw', group: 'rw', other: 'rw' },
 | |
|       acl: false,
 | |
|       owner: 'owner',
 | |
|       group: 'group',
 | |
|       size: 7045120,
 | |
|       date: new Date('2012-09-02T00:00')
 | |
|     },
 | |
|     what: 'Normal file'
 | |
|   },
 | |
|   { source: '-rw-rw-rw-+   1 owner   group    7045120 Sep 02  2012 music.mp3',
 | |
|     expected: {
 | |
|       type: '-',
 | |
|       name: 'music.mp3',
 | |
|       target: undefined,
 | |
|       sticky: false,
 | |
|       rights: { user: 'rw', group: 'rw', other: 'rw' },
 | |
|       acl: true,
 | |
|       owner: 'owner',
 | |
|       group: 'group',
 | |
|       size: 7045120,
 | |
|       date: new Date('2012-09-02T00:00')
 | |
|     },
 | |
|     what: 'File with ACL set'
 | |
|   },
 | |
|   { source: 'drwxrwxrwt   7 root   root    4096 May 19 2012 tmp',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'tmp',
 | |
|       target: undefined,
 | |
|       sticky: true,
 | |
|       rights: { user: 'rwx', group: 'rwx', other: 'rwx' },
 | |
|       acl: false,
 | |
|       owner: 'root',
 | |
|       group: 'root',
 | |
|       size: 4096,
 | |
|       date: new Date('2012-05-19T00:00')
 | |
|     },
 | |
|     what: 'Directory with sticky bit and executable for others'
 | |
|   },
 | |
|   { source: 'drwxrwx--t   7 root   root    4096 May 19 2012 tmp',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'tmp',
 | |
|       target: undefined,
 | |
|       sticky: true,
 | |
|       rights: { user: 'rwx', group: 'rwx', other: 'x' },
 | |
|       acl: false,
 | |
|       owner: 'root',
 | |
|       group: 'root',
 | |
|       size: 4096,
 | |
|       date: new Date('2012-05-19T00:00')
 | |
|     },
 | |
|     what: 'Directory with sticky bit and executable for others #2'
 | |
|   },
 | |
|   { source: 'drwxrwxrwT   7 root   root    4096 May 19 2012 tmp',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'tmp',
 | |
|       target: undefined,
 | |
|       sticky: true,
 | |
|       rights: { user: 'rwx', group: 'rwx', other: 'rw' },
 | |
|       acl: false,
 | |
|       owner: 'root',
 | |
|       group: 'root',
 | |
|       size: 4096,
 | |
|       date: new Date('2012-05-19T00:00')
 | |
|     },
 | |
|     what: 'Directory with sticky bit and not executable for others'
 | |
|   },
 | |
|   { source: 'drwxrwx--T   7 root   root    4096 May 19 2012 tmp',
 | |
|     expected: {
 | |
|       type: 'd',
 | |
|       name: 'tmp',
 | |
|       target: undefined,
 | |
|       sticky: true,
 | |
|       rights: { user: 'rwx', group: 'rwx', other: '' },
 | |
|       acl: false,
 | |
|       owner: 'root',
 | |
|       group: 'root',
 | |
|       size: 4096,
 | |
|       date: new Date('2012-05-19T00:00')
 | |
|     },
 | |
|     what: 'Directory with sticky bit and not executable for others #2'
 | |
|   },
 | |
|   { source: 'total 871',
 | |
|     expected: null,
 | |
|     what: 'Ignored line'
 | |
|   },
 | |
| ].forEach(function(v) {
 | |
|   var result = parseListEntry(v.source),
 | |
|       msg = '[' + group + v.what + ']: parsed output mismatch.\n'
 | |
|             + 'Saw: ' + inspect(result) + '\n'
 | |
|             + 'Expected: ' + inspect(v.expected);
 | |
|   assert.deepEqual(result, v.expected, msg);
 | |
| });
 |