WXL
9 天以前 2895b4ea66e09cb355aeb4e030ca0de297bf8ce3
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
var wildcard = require('../'),
    test = require('tape'),
    testdata = {
        'a.b.c' : {},
        'a.b'   : {},
        'a'     : {},
        'a.b.d' : {}
    },
    testdataSep = {
        'a:b:c' : {},
        'a:b'   : {},
        'a'     : {},
        'a:b:d' : {}
    };
 
test('object result matching tests', function(t) {
    t.test('should return 4 matches for a.*', function(t) {
        var matches = wildcard('a.*', testdata);
 
        t.plan(4);
        t.ok(matches['a.b.c']);
        t.ok(matches['a.b']);
        t.ok(matches['a']);
        t.ok(matches['a.b.d']);
        t.end();
    });
 
    t.test('should return 4 matches for a:*', function(t) {
        var matches = wildcard('a:*', testdataSep, ':');
 
        t.plan(4);
        t.ok(matches['a:b:c']);
        t.ok(matches['a:b']);
        t.ok(matches['a']);
        t.ok(matches['a:b:d']);
        t.end();
    });
 
    t.test('should return 3 matches for a.b.*', function(t) {
        var matches = wildcard('a.b.*', testdata);
 
        t.plan(4);
        t.ok(matches['a.b.c']);
        t.ok(matches['a.b']);
        t.notOk(matches['a']);
        t.ok(matches['a.b.d']);
        t.end();
    });
 
    t.test('should return 3 matches for a:b:*', function(t) {
        var matches = wildcard('a:b:*', testdataSep, ':');
 
        t.plan(4);
        t.ok(matches['a:b:c']);
        t.ok(matches['a:b']);
        t.notOk(matches['a']);
        t.ok(matches['a:b:d']);
        t.end();
    });
 
    t.test('should return 1 matches for a.*.c', function(t) {
        var matches = wildcard('a.*.c', testdata);
 
        t.plan(4);
        t.ok(matches['a.b.c']);
        t.notOk(matches['a.b']);
        t.notOk(matches['a']);
        t.notOk(matches['a.b.d']);
        t.end();
    });
 
    t.test('should return 1 matches for a:*:c', function(t) {
        var matches = wildcard('a:*:c', testdataSep, ':');
 
        t.plan(4);
        t.ok(matches['a:b:c']);
        t.notOk(matches['a:b']);
        t.notOk(matches['a']);
        t.notOk(matches['a:b:d']);
        t.end();
    });
 
    t.test('should return 0 matches for b.*.d', function(t) {
        var matches = wildcard('b.*.d', testdata);
 
        t.plan(4);
        t.notOk(matches['a.b.c']);
        t.notOk(matches['a.b']);
        t.notOk(matches['a']);
        t.notOk(matches['a.b.d']);
        t.end();
    });
 
    t.test('should return 0 matches for b:*:d', function(t) {
        var matches = wildcard('b:*:d', testdataSep, ':');
 
        t.plan(4);
        t.notOk(matches['a:b:c']);
        t.notOk(matches['a:b']);
        t.notOk(matches['a']);
        t.notOk(matches['a:b:d']);
        t.end();
    });
 
    t.end();
});