Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2150 mathias 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
}