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