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