Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: third_party/pkg/angular/test/directive/ng_model_validators_spec.dart

Issue 180843004: Revert revision 33053 (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 library ng_model_validators; 1 library ng_model_validators;
2 2
3 import '../_specs.dart'; 3 import '../_specs.dart';
4 4
5 main() => 5 main() =>
6 describe('ngModel validators', () { 6 describe('ngModel validators', () {
7 TestBed _; 7 TestBed _;
8 8
9 beforeEach(inject((TestBed tb) => _ = tb)); 9 beforeEach(inject((TestBed tb) => _ = tb));
10 10
11 describe('required', () { 11 describe('required', () {
12 it('should validate the input field if the required attribute is set', injec t((RootScope scope) { 12 it('should validate the input field if the required attribute is set', injec t((Scope scope) {
13 _.compile('<input type="text" ng-model="val" probe="i" required />'); 13 _.compile('<input type="text" ng-model="val" probe="i" required="true" />' );
14 Probe probe = _.rootScope.context['i']; 14 Probe probe = _.rootScope.i;
15 var model = probe.directive(NgModel); 15 var model = probe.directive(NgModel);
16 16
17 model.validate(); 17 model.validate();
18 expect(model.valid).toEqual(false); 18 expect(model.valid).toEqual(false);
19 expect(model.invalid).toEqual(true); 19 expect(model.invalid).toEqual(true);
20 20
21 _.rootScope.context['val'] = 'value'; 21 _.rootScope.val = 'value';
22 model.validate(); 22 model.validate();
23 23
24 expect(model.valid).toEqual(true); 24 expect(model.valid).toEqual(true);
25 expect(model.invalid).toEqual(false); 25 expect(model.invalid).toEqual(false);
26 })); 26 }));
27 27
28 28 it('should validate the input field depending on if ng-required is true', in ject((Scope scope) {
29 it('should validate a number input field if the required attribute is set', inject((RootScope scope) { 29 _.compile('<input type="text" ng-model="val" probe="i" ng-required="requir eMe" />');
30 _.compile('<input type="number" ng-model="val" probe="i" required="true" / >'); 30 Probe probe = _.rootScope.i;
31 Probe probe = _.rootScope.context['i'];
32 var model = probe.directive(NgModel); 31 var model = probe.directive(NgModel);
33 32
34 model.validate(); 33 model.validate();
35 expect(model.valid).toEqual(false);
36 expect(model.invalid).toEqual(true);
37
38 _.rootScope.context['val'] = 5;
39 model.validate();
40
41 expect(model.valid).toEqual(true);
42 expect(model.invalid).toEqual(false);
43 }));
44
45
46 it('should validate the input field depending on if ng-required is true', in ject((RootScope scope) {
47 _.compile('<input type="text" ng-model="val" probe="i" ng-required="requir eMe" />');
48 Probe probe = _.rootScope.context['i'];
49 var model = probe.directive(NgModel);
50
51 _.rootScope.apply();
52
53 model.validate();
54 expect(model.valid).toEqual(true); 34 expect(model.valid).toEqual(true);
55 expect(model.invalid).toEqual(false); 35 expect(model.invalid).toEqual(false);
56 36
57 _.rootScope.apply(() { 37 _.rootScope.$apply(() {
58 _.rootScope.context['requireMe'] = true; 38 _.rootScope['requireMe'] = true;
59 }); 39 });
60 40
61 model.validate(); 41 model.validate();
62 expect(model.valid).toEqual(false); 42 expect(model.valid).toEqual(false);
63 expect(model.invalid).toEqual(true); 43 expect(model.invalid).toEqual(true);
64 44
65 _.rootScope.apply(() { 45 _.rootScope.$apply(() {
66 _.rootScope.context['requireMe'] = false; 46 _.rootScope['requireMe'] = false;
67 }); 47 });
68 48
69 model.validate(); 49 model.validate();
70 expect(model.valid).toEqual(true); 50 expect(model.valid).toEqual(true);
71 expect(model.invalid).toEqual(false); 51 expect(model.invalid).toEqual(false);
72 })); 52 }));
73 }); 53 });
74 54
75 describe('[type="url"]', () { 55 describe('[type="url"]', () {
76 it('should validate the input field given a valid or invalid URL', inject((R ootScope scope) { 56 it('should validate the input field given a valid or invalid URL', inject((S cope scope) {
77 _.compile('<input type="url" ng-model="val" probe="i" />'); 57 _.compile('<input type="url" ng-model="val" probe="i" />');
78 Probe probe = _.rootScope.context['i']; 58 Probe probe = _.rootScope.i;
79 var model = probe.directive(NgModel); 59 var model = probe.directive(NgModel);
80 60
81 model.validate(); 61 model.validate();
82 expect(model.valid).toEqual(true); 62 expect(model.valid).toEqual(true);
83 expect(model.invalid).toEqual(false); 63 expect(model.invalid).toEqual(false);
84 64
85 _.rootScope.apply(() { 65 _.rootScope.$apply(() {
86 _.rootScope.context['val'] = 'googledotcom'; 66 _.rootScope['val'] = 'googledotcom';
87 }); 67 });
88 68
89 model.validate(); 69 model.validate();
90 expect(model.valid).toEqual(false); 70 expect(model.valid).toEqual(false);
91 expect(model.invalid).toEqual(true); 71 expect(model.invalid).toEqual(true);
92 72
93 _.rootScope.apply(() { 73 _.rootScope.$apply(() {
94 _.rootScope.context['val'] = 'http://www.google.com'; 74 _.rootScope['val'] = 'http://www.google.com';
95 }); 75 });
96 76
97 model.validate(); 77 model.validate();
98 expect(model.valid).toEqual(true); 78 expect(model.valid).toEqual(true);
99 expect(model.invalid).toEqual(false); 79 expect(model.invalid).toEqual(false);
100 })); 80 }));
101 }); 81 });
102 82
103 describe('[type="email"]', () { 83 describe('[type="email"]', () {
104 it('should validate the input field given a valid or invalid email address', inject((RootScope scope) { 84 it('should validate the input field given a valid or invalid email address', inject((Scope scope) {
105 _.compile('<input type="email" ng-model="val" probe="i" />'); 85 _.compile('<input type="email" ng-model="val" probe="i" />');
106 Probe probe = _.rootScope.context['i']; 86 Probe probe = _.rootScope.i;
107 var model = probe.directive(NgModel); 87 var model = probe.directive(NgModel);
108 88
109 model.validate(); 89 model.validate();
110 expect(model.valid).toEqual(true); 90 expect(model.valid).toEqual(true);
111 expect(model.invalid).toEqual(false); 91 expect(model.invalid).toEqual(false);
112 92
113 _.rootScope.apply(() { 93 _.rootScope.$apply(() {
114 _.rootScope.context['val'] = 'matiasatemail.com'; 94 _.rootScope['val'] = 'matiasatemail.com';
115 }); 95 });
116 96
117 model.validate(); 97 model.validate();
118 expect(model.valid).toEqual(false); 98 expect(model.valid).toEqual(false);
119 expect(model.invalid).toEqual(true); 99 expect(model.invalid).toEqual(true);
120 100
121 _.rootScope.apply(() { 101 _.rootScope.$apply(() {
122 _.rootScope.context['val'] = 'matias@gmail.com'; 102 _.rootScope['val'] = 'matias@gmail.com';
123 }); 103 });
124 104
125 model.validate(); 105 model.validate();
126 expect(model.valid).toEqual(true); 106 expect(model.valid).toEqual(true);
127 expect(model.invalid).toEqual(false); 107 expect(model.invalid).toEqual(false);
128 })); 108 }));
129 }); 109 });
130 110
131 describe('[type="number"]', () { 111 describe('[type="number"]', () {
132 it('should validate the input field given a valid or invalid number', inject ((RootScope scope) { 112 it('should validate the input field given a valid or invalid number', inject ((Scope scope) {
133 _.compile('<input type="number" ng-model="val" probe="i" />'); 113 _.compile('<input type="number" ng-model="val" probe="i" />');
134 Probe probe = _.rootScope.context['i']; 114 Probe probe = _.rootScope.i;
135 var model = probe.directive(NgModel); 115 var model = probe.directive(NgModel);
136 116
137 model.validate(); 117 model.validate();
138 expect(model.valid).toEqual(true); 118 expect(model.valid).toEqual(true);
139 expect(model.invalid).toEqual(false); 119 expect(model.invalid).toEqual(false);
140 120
141 _.rootScope.apply(() { 121 _.rootScope.$apply(() {
142 _.rootScope.context['val'] = '11'; 122 _.rootScope['val'] = '11';
143 }); 123 });
144 124
145 model.validate(); 125 model.validate();
146 expect(model.valid).toEqual(true); 126 expect(model.valid).toEqual(true);
147 expect(model.invalid).toEqual(false); 127 expect(model.invalid).toEqual(false);
148 128
149 129
150 _.rootScope.apply(() { 130 _.rootScope.$apply(() {
151 _.rootScope.context['val'] = 10; 131 _.rootScope['val'] = 10;
152 }); 132 });
153 133
154 model.validate(); 134 model.validate();
155 expect(model.valid).toEqual(true); 135 expect(model.valid).toEqual(true);
156 expect(model.invalid).toEqual(false); 136 expect(model.invalid).toEqual(false);
157 137
158 _.rootScope.apply(() { 138 _.rootScope.$apply(() {
159 _.rootScope.context['val'] = 'twelve'; 139 _.rootScope['val'] = 'twelve';
160 }); 140 });
161 141
162 model.validate(); 142 model.validate();
163 expect(model.valid).toEqual(false); 143 expect(model.valid).toEqual(false);
164 expect(model.invalid).toEqual(true); 144 expect(model.invalid).toEqual(true);
165 })); 145 }));
166 }); 146 });
167 147
168 describe('pattern', () { 148 describe('pattern', () {
169 it('should validate the input field if a ng-pattern attribute is provided', inject((RootScope scope) { 149 it('should validate the input field if a ng-pattern attribute is provided', inject((Scope scope) {
170 _.compile('<input type="text" ng-pattern="myPattern" ng-model="val" probe= "i" />'); 150 _.compile('<input type="text" ng-pattern="myPattern" ng-model="val" probe= "i" />');
171 Probe probe = _.rootScope.context['i']; 151 Probe probe = _.rootScope.i;
172 var model = probe.directive(NgModel); 152 var model = probe.directive(NgModel);
173 153
174 model.validate(); 154 model.validate();
175 expect(model.valid).toEqual(true); 155 expect(model.valid).toEqual(true);
176 expect(model.invalid).toEqual(false); 156 expect(model.invalid).toEqual(false);
177 157
178 _.rootScope.apply(() { 158 _.rootScope.$apply(() {
179 _.rootScope.context['val'] = "abc"; 159 _.rootScope['val'] = "abc";
180 _.rootScope.context['myPattern'] = "[a-z]+"; 160 _.rootScope['myPattern'] = "[a-z]+";
181 }); 161 });
182 162
183 model.validate(); 163 model.validate();
184 expect(model.valid).toEqual(true); 164 expect(model.valid).toEqual(true);
185 expect(model.invalid).toEqual(false); 165 expect(model.invalid).toEqual(false);
186 166
187 _.rootScope.apply(() { 167 _.rootScope.$apply(() {
188 _.rootScope.context['val'] = "abc"; 168 _.rootScope['val'] = "abc";
189 _.rootScope.context['myPattern'] = "[0-9]+"; 169 _.rootScope['myPattern'] = "[0-9]+";
190 }); 170 });
191 171
192 model.validate(); 172 model.validate();
193 expect(model.valid).toEqual(false); 173 expect(model.valid).toEqual(false);
194 expect(model.invalid).toEqual(true); 174 expect(model.invalid).toEqual(true);
195 175
196 _.rootScope.apply(() { 176 _.rootScope.$apply(() {
197 _.rootScope.context['val'] = "123"; 177 _.rootScope['val'] = "123";
198 _.rootScope.context['myPattern'] = "123"; 178 _.rootScope['myPattern'] = "123";
199 }); 179 });
200 180
201 model.validate(); 181 model.validate();
202 expect(model.valid).toEqual(true); 182 expect(model.valid).toEqual(true);
203 expect(model.invalid).toEqual(false); 183 expect(model.invalid).toEqual(false);
204 })); 184 }));
205 185
206 it('should validate the input field if a pattern attribute is provided', inj ect((RootScope scope) { 186 it('should validate the input field if a pattern attribute is provided', inj ect((Scope scope) {
207 _.compile('<input type="text" pattern="[0-5]+" ng-model="val" probe="i" /> '); 187 _.compile('<input type="text" pattern="[0-5]+" ng-model="val" probe="i" /> ');
208 Probe probe = _.rootScope.context['i']; 188 Probe probe = _.rootScope.i;
209 var model = probe.directive(NgModel); 189 var model = probe.directive(NgModel);
210 190
211 model.validate(); 191 model.validate();
212 expect(model.valid).toEqual(true); 192 expect(model.valid).toEqual(true);
213 expect(model.invalid).toEqual(false); 193 expect(model.invalid).toEqual(false);
214 194
215 _.rootScope.apply(() { 195 _.rootScope.$apply(() {
216 _.rootScope.context['val'] = "abc"; 196 _.rootScope['val'] = "abc";
217 }); 197 });
218 198
219 model.validate(); 199 model.validate();
220 expect(model.valid).toEqual(false); 200 expect(model.valid).toEqual(false);
221 expect(model.invalid).toEqual(true); 201 expect(model.invalid).toEqual(true);
222 202
223 _.rootScope.apply(() { 203 _.rootScope.$apply(() {
224 _.rootScope.context['val'] = "012345"; 204 _.rootScope['val'] = "012345";
225 }); 205 });
226 206
227 model.validate(); 207 model.validate();
228 expect(model.valid).toEqual(true); 208 expect(model.valid).toEqual(true);
229 expect(model.invalid).toEqual(false); 209 expect(model.invalid).toEqual(false);
230 210
231 _.rootScope.apply(() { 211 _.rootScope.$apply(() {
232 _.rootScope.context['val'] = "6789"; 212 _.rootScope['val'] = "6789";
233 }); 213 });
234 214
235 model.validate(); 215 model.validate();
236 expect(model.valid).toEqual(false); 216 expect(model.valid).toEqual(false);
237 expect(model.invalid).toEqual(true); 217 expect(model.invalid).toEqual(true);
238 })); 218 }));
239 }); 219 });
240 220
241 describe('minlength', () { 221 describe('minlength', () {
242 it('should validate the input field if a minlength attribute is provided', i nject((RootScope scope) { 222 it('should validate the input field if a minlength attribute is provided', i nject((Scope scope) {
243 _.compile('<input type="text" minlength="5" ng-model="val" probe="i" />'); 223 _.compile('<input type="text" minlength="5" ng-model="val" probe="i" />');
244 Probe probe = _.rootScope.context['i']; 224 Probe probe = _.rootScope.i;
245 var model = probe.directive(NgModel); 225 var model = probe.directive(NgModel);
246 226
247 model.validate(); 227 model.validate();
248 expect(model.valid).toEqual(true); 228 expect(model.valid).toEqual(true);
249 expect(model.invalid).toEqual(false); 229 expect(model.invalid).toEqual(false);
250 230
251 _.rootScope.apply(() { 231 _.rootScope.$apply(() {
252 _.rootScope.context['val'] = "abc"; 232 _.rootScope['val'] = "abc";
253 }); 233 });
254 234
255 model.validate(); 235 model.validate();
256 expect(model.valid).toEqual(false); 236 expect(model.valid).toEqual(false);
257 expect(model.invalid).toEqual(true); 237 expect(model.invalid).toEqual(true);
258 238
259 _.rootScope.apply(() { 239 _.rootScope.$apply(() {
260 _.rootScope.context['val'] = "abcdef"; 240 _.rootScope['val'] = "abcdef";
261 }); 241 });
262 242
263 model.validate(); 243 model.validate();
264 expect(model.valid).toEqual(true); 244 expect(model.valid).toEqual(true);
265 expect(model.invalid).toEqual(false); 245 expect(model.invalid).toEqual(false);
266 })); 246 }));
267 247
268 it('should validate the input field if a ng-minlength attribute is provided' , inject((RootScope scope) { 248 it('should validate the input field if a ng-minlength attribute is provided' , inject((Scope scope) {
269 _.compile('<input type="text" ng-minlength="len" ng-model="val" probe="i" />'); 249 _.compile('<input type="text" ng-minlength="len" ng-model="val" probe="i" />');
270 Probe probe = _.rootScope.context['i']; 250 Probe probe = _.rootScope.i;
271 var model = probe.directive(NgModel); 251 var model = probe.directive(NgModel);
272 252
273 model.validate(); 253 model.validate();
274 expect(model.valid).toEqual(true); 254 expect(model.valid).toEqual(true);
275 expect(model.invalid).toEqual(false); 255 expect(model.invalid).toEqual(false);
276 256
277 _.rootScope.apply(() { 257 _.rootScope.$apply(() {
278 _.rootScope.context['val'] = "abcdef"; 258 _.rootScope['val'] = "abcdef";
279 _.rootScope.context['len'] = 3; 259 _.rootScope['len'] = 3;
280 }); 260 });
281 261
282 model.validate(); 262 model.validate();
283 expect(model.valid).toEqual(true); 263 expect(model.valid).toEqual(true);
284 expect(model.invalid).toEqual(false); 264 expect(model.invalid).toEqual(false);
285 265
286 _.rootScope.apply(() { 266 _.rootScope.$apply(() {
287 _.rootScope.context['val'] = "abc"; 267 _.rootScope['val'] = "abc";
288 _.rootScope.context['len'] = 5; 268 _.rootScope['len'] = 5;
289 }); 269 });
290 270
291 model.validate(); 271 model.validate();
292 expect(model.valid).toEqual(false); 272 expect(model.valid).toEqual(false);
293 expect(model.invalid).toEqual(true); 273 expect(model.invalid).toEqual(true);
294 })); 274 }));
295 }); 275 });
296 276
297 describe('maxlength', () { 277 describe('maxlength', () {
298 it('should validate the input field if a maxlength attribute is provided', i nject((RootScope scope) { 278 it('should validate the input field if a maxlength attribute is provided', i nject((Scope scope) {
299 _.compile('<input type="text" maxlength="5" ng-model="val" probe="i" />'); 279 _.compile('<input type="text" maxlength="5" ng-model="val" probe="i" />');
300 Probe probe = _.rootScope.context['i']; 280 Probe probe = _.rootScope.i;
301 var model = probe.directive(NgModel); 281 var model = probe.directive(NgModel);
302 282
303 model.validate(); 283 model.validate();
304 expect(model.valid).toEqual(true); 284 expect(model.valid).toEqual(true);
305 expect(model.invalid).toEqual(false); 285 expect(model.invalid).toEqual(false);
306 286
307 _.rootScope.apply(() { 287 _.rootScope.$apply(() {
308 _.rootScope.context['val'] = "abcdef"; 288 _.rootScope['val'] = "abcdef";
309 }); 289 });
310 290
311 model.validate(); 291 model.validate();
312 expect(model.valid).toEqual(false); 292 expect(model.valid).toEqual(false);
313 expect(model.invalid).toEqual(true); 293 expect(model.invalid).toEqual(true);
314 294
315 _.rootScope.apply(() { 295 _.rootScope.$apply(() {
316 _.rootScope.context['val'] = "abc"; 296 _.rootScope['val'] = "abc";
317 }); 297 });
318 298
319 model.validate(); 299 model.validate();
320 expect(model.valid).toEqual(true); 300 expect(model.valid).toEqual(true);
321 expect(model.invalid).toEqual(false); 301 expect(model.invalid).toEqual(false);
322 })); 302 }));
323 303
324 it('should validate the input field if a ng-maxlength attribute is provided' , inject((RootScope scope) { 304 it('should validate the input field if a ng-maxlength attribute is provided' , inject((Scope scope) {
325 _.compile('<input type="text" ng-maxlength="len" ng-model="val" probe="i" />'); 305 _.compile('<input type="text" ng-maxlength="len" ng-model="val" probe="i" />');
326 Probe probe = _.rootScope.context['i']; 306 Probe probe = _.rootScope.i;
327 var model = probe.directive(NgModel); 307 var model = probe.directive(NgModel);
328 308
329 model.validate(); 309 model.validate();
330 expect(model.valid).toEqual(true); 310 expect(model.valid).toEqual(true);
331 expect(model.invalid).toEqual(false); 311 expect(model.invalid).toEqual(false);
332 312
333 _.rootScope.apply(() { 313 _.rootScope.$apply(() {
334 _.rootScope.context['val'] = "abcdef"; 314 _.rootScope['val'] = "abcdef";
335 _.rootScope.context['len'] = 6; 315 _.rootScope['len'] = 6;
336 }); 316 });
337 317
338 model.validate(); 318 model.validate();
339 expect(model.valid).toEqual(true); 319 expect(model.valid).toEqual(true);
340 expect(model.invalid).toEqual(false); 320 expect(model.invalid).toEqual(false);
341 321
342 _.rootScope.apply(() { 322 _.rootScope.$apply(() {
343 _.rootScope.context['val'] = "abc"; 323 _.rootScope['val'] = "abc";
344 _.rootScope.context['len'] = 1; 324 _.rootScope['len'] = 1;
345 }); 325 });
346 326
347 model.validate(); 327 model.validate();
348 expect(model.valid).toEqual(false); 328 expect(model.valid).toEqual(false);
349 expect(model.invalid).toEqual(true); 329 expect(model.invalid).toEqual(true);
350 })); 330 }));
351 }); 331 });
352 }); 332 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698