source: Dev/branches/rest-dojo-ui/client/dojo/tests/data/utils.js @ 263

Last change on this file since 263 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 11.1 KB
Line 
1define(["dojo", "doh", "dojo/data/util/filter", "dojo/data/util/sorter"], function(dojo, doh){
2
3doh.register("tests.data.utils",
4        [
5                function testWildcardFilter_1(t){
6                        var pattern = "ca*";
7                        var values = ["ca", "california", "Macca", "Macca*b", "Macca\\b"];
8
9                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
10                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
11                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
12                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
13                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
14                },
15                function testWildcardFilter_2(t){
16                        var pattern = "*ca";
17                        var values = ["ca", "california", "Macca", "Macca*b", "Macca\\b"];
18
19                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
20                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
21                        t.assertTrue(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
22                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
23                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
24                },
25                function testWildcardFilter_3(t){
26                        var pattern = "*ca*";
27                        var values = ["ca", "california", "Macca", "Macca*b", "Macca\\b"];
28
29                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
30                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
31                        t.assertTrue(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
32                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
33                        t.assertTrue(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
34                },
35                function testWildcardFilter_4(t){
36                        //Try and match <anything>c<anything>a*b
37                        var pattern = "*c*a\\*b*";
38                        var values = ["ca", "california", "Macca", "Macca*b", "Macca\\b"];
39
40                        t.assertFalse(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
41                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
42                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
43                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
44                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
45                },
46                function testWildcardFilter_5(t){
47                        var pattern = "*c*a\\\\*b";
48                        var values = ["ca", "california", "Macca", "Macca*b", "Macca\\b"];
49
50                        t.assertFalse(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
51                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
52                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
53                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
54                        t.assertTrue(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
55                },
56                function testWildcardFilter_caseInsensitive(t){
57                        var pattern = "ca*";
58                        var values = ["CA", "california", "Macca", "Macca*b", "Macca\\b"];
59
60                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern, true))!== null);
61                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern, true))!== null);
62                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern, true))!== null);
63                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern, true))!== null);
64                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern, true))!== null);
65                },
66                function testSingleChar_1(t){
67                        var pattern = "bob?le";
68                        var values = ["bobble", "boble", "foo", "bobBle", "bar"];
69
70                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
71                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
72                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
73                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
74                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
75                },
76                function testSingleChar_2(t){
77                        var pattern = "?ob?le";
78                        var values = ["bobble", "cob1le", "foo", "bobBle", "bar"];
79
80                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
81                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
82                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
83                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
84                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
85                },
86                function testBracketChar(t){
87                        //Make sure we don't treat this as regexp
88                        var pattern = "*[*]*";
89                        var values = ["bo[b]ble", "cob1le", "foo", "[bobBle]", "b[]ar"];
90
91                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
92                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
93                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
94                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
95                        t.assertTrue(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
96                },
97                function testBraceChar(t){
98                        //Make sure we don't treat this as regexp
99                        var pattern = "*{*}*";
100                        var values = ["bo{b}ble", "cob1le", "foo", "{bobBle}", "b{}ar"];
101
102                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
103                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
104                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
105                        t.assertTrue(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
106                        t.assertTrue(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
107                },
108                function testParenChar(t){
109                        //Make sure we don't treat this as regexp
110                        var pattern = "*(*)*";
111                        var values = ["bo(b)ble", "cob1le", "foo", "{bobBle}", "b()ar"];
112
113                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
114                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
115                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
116                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
117                        t.assertTrue(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
118                },
119                function testPlusChar(t){
120                        //Make sure we don't treat this as regexp, so match anything with a + in it.
121                        var pattern = "*+*";
122                        var values = ["bo+ble", "cob1le", "foo", "{bobBle}", "b{}ar"];
123
124                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
125                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
126                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
127                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
128                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
129                },
130                function testPeriodChar(t){
131                        //Make sure we don't treat this as regexp, so match anything with a period
132                        var pattern = "*.*";
133                        var values = ["bo.ble", "cob1le", "foo", "{bobBle}", "b{}ar"];
134
135                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
136                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
137                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
138                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
139                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
140                },
141                function testBarChar(t){
142                        //Make sure we don't treat this as regexp, so match anything with a pipe bar
143                        var pattern = "*|*";
144                        var values = ["bo.ble", "cob|le", "foo", "{bobBle}", "b{}ar"];
145
146                        t.assertFalse(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
147                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
148                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
149                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
150                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
151                },
152                function testDollarSignChar(t){
153                        //Make sure we don't treat this as regexp, so match anything with a $ in it
154                        var pattern = "*$*";
155                        var values = ["bo$ble", "cob$le", "foo", "{bobBle}", "b{}ar"];
156
157                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
158                        t.assertTrue(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
159                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
160                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
161                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
162                },
163                function testCarrotChar(t){
164                        //Make sure we don't treat this as regexp, so match anything with a ^ in it
165                        var pattern = "*^*";
166                        var values = ["bo$ble", "cob$le", "f^oo", "{bobBle}", "b{}ar"];
167
168                        t.assertFalse(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
169                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
170                        t.assertTrue(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
171                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
172                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
173                },
174                function testEscapeChar(t){
175                        //Make sure we escape properly, so match this single word.
176                        var pattern = "bob\*ble";
177                        var values = ["bob*ble", "cob$le", "f^oo", "{bobBle}", "b{}ar"];
178
179                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
180                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
181                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
182                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
183                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
184                },
185                function testAbsoluteMatch(t){
186                        var pattern = "bobble";
187                        var values = ["bobble", "cob$le", "f^oo", "{bobBle}", "b{}ar"];
188
189                        t.assertTrue(values[0].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
190                        t.assertFalse(values[1].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
191                        t.assertFalse(values[2].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
192                        t.assertFalse(values[3].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
193                        t.assertFalse(values[4].match(dojo.data.util.filter.patternToRegExp(pattern))!== null);
194                }
195        ]
196);
197
198});
199
Note: See TracBrowser for help on using the repository browser.