1 /* 2 * Tests internal state of the parser. 3 */ 4 var mod_path = require('path'); 5 require.paths.unshift(mod_path.dirname(__dirname) + '/lib'); 6 7 var mod_sys = require('sys'); 8 var mod_getopt = require('getopt'); 9 var mod_assert = require('assert'); 10 11 var test_cases = [ { 12 optstr: '', 13 silent: false, 14 options: {}, 15 aliases: {}, 16 }, { 17 optstr: ':', 18 silent: true, 19 options: {}, 20 aliases: {}, 21 }, { 22 optstr: ':l', 23 silent: true, 24 options: { l: false }, 25 aliases: {}, 26 }, { 27 optstr: ':l:', 28 silent: true, 29 options: { l: true }, 30 aliases: {}, 31 }, { 32 optstr: ':las', 33 silent: true, 34 options: { l: false, a: false, s: false }, 35 aliases: {}, 36 }, { 37 optstr: ':l:a:s:', 38 silent: true, 39 options: { l: true, a: true, s: true }, 40 aliases: {}, 41 }, { 42 optstr: ':l(long)', 43 silent: true, 44 options: { l: false }, 45 aliases: { long: 'l' }, 46 }, { 47 optstr: ':l:(long)', 48 silent: true, 49 options: { l: true }, 50 aliases: { long: 'l' }, 51 }, { 52 optstr: 'l:(long)(longer)', 53 silent: false, 54 options: { l: true }, 55 aliases: { long: 'l', longer: 'l' }, 56 }, { 57 optstr: ':la:r(recurse)(recur)f:(file)(filename)q', 58 silent: true, 59 options: { l: false, a: true, r: false, f: true, q: false }, 60 aliases: { recurse: 'r', recur: 'r', file: 'f', filename: 'f' } 61 } ]; 62 63 var parser, ii; 64 for (ii = 0; ii < test_cases.length; ii++) { 65 console.log('test case %s: "%s"', ii + 1, test_cases[ii].optstr); 66 parser = new mod_getopt.BasicParser(test_cases[ii].optstr, []); 67 mod_assert.ok(test_cases[ii].silent === parser.gop_silent); 68 mod_assert.deepEqual(test_cases[ii].options, 69 parser.gop_options); 70 mod_assert.deepEqual(test_cases[ii].aliases, 71 parser.gop_aliases); 72 } 73 74 console.log('%s test cases passed', test_cases.length);