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

Side by Side Diff: tests/html/xmlelement_test.dart

Issue 11275054: Modified unittest to use new argument syntax. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library('XMLElementTest'); 5 #library('XMLElementTest');
6 #import('../../pkg/unittest/unittest.dart'); 6 #import('../../pkg/unittest/unittest.dart');
7 #import('../../pkg/unittest/html_config.dart'); 7 #import('../../pkg/unittest/html_config.dart');
8 #import('dart:html'); 8 #import('dart:html');
9 9
10 main() { 10 main() {
11 useHtmlConfiguration(); 11 useHtmlConfiguration();
12 12
13 var isXMLElement = predicate((x) => x is XMLElement, 'is an XMLElement');
14
13 XMLElement makeElement() => new XMLElement.xml("<xml><foo/><bar/></xml>"); 15 XMLElement makeElement() => new XMLElement.xml("<xml><foo/><bar/></xml>");
14 16
15 makeElementWithParent() { 17 makeElementWithParent() {
16 final parent = new XMLElement.xml( 18 final parent = new XMLElement.xml(
17 "<parent><before/><xml><foo/><bar/></xml><after/></parent>"); 19 "<parent><before/><xml><foo/><bar/></xml><after/></parent>");
18 return parent.elements[1]; 20 return parent.elements[1];
19 } 21 }
20 22
21 group('constructors', () { 23 group('constructors', () {
22 group('.xml', () { 24 group('.xml', () {
23 test('with a well-formed document', () { 25 test('with a well-formed document', () {
24 final el = makeElement(); 26 final el = makeElement();
25 Expect.isTrue(el is XMLElement); 27 expect(el, isXMLElement);
26 Expect.equals('foo', el.elements[0].tagName); 28 expect(el.elements[0].tagName, 'foo');
27 Expect.equals('bar', el.elements[1].tagName); 29 expect(el.elements[1].tagName, 'bar');
28 }); 30 });
29 31
30 test('with too many nodes', () { 32 test('with too many nodes', () {
31 Expect.throws(() => new XMLElement.xml("<xml></xml>foo"), 33 expect(() => new XMLElement.xml("<xml></xml>foo"), throwsArgumentError);
32 (e) => e is ArgumentError);
33 }); 34 });
34 35
35 test('with a parse error', () { 36 test('with a parse error', () {
36 Expect.throws(() => new XMLElement.xml("<xml></xml>>"), 37 expect(() => new XMLElement.xml("<xml></xml>>"), throwsArgumentError);
37 (e) => e is ArgumentError);
38 }); 38 });
39 39
40 test('with a PARSERERROR tag', () { 40 test('with a PARSERERROR tag', () {
41 final el = new XMLElement.xml("<xml><parsererror /></xml>"); 41 final el = new XMLElement.xml("<xml><parsererror /></xml>");
42 Expect.equals('parsererror', el.elements[0].tagName); 42 expect('parsererror', el.elements[0].tagName, 'parsererror');
43 }); 43 });
44 44
45 test('has no parent', () => 45 test('has no parent', () =>
46 Expect.isNull(new XMLElement.xml('<foo/>').parent)); 46 expect(new XMLElement.xml('<foo/>').parent), isNull);
47 }); 47 });
48 48
49 test('.tag', () { 49 test('.tag', () {
50 final el = new XMLElement.tag('foo'); 50 final el = new XMLElement.tag('foo');
51 Expect.isTrue(el is XMLElement); 51 expect(el, isXMLElement);
52 Expect.equals('foo', el.tagName); 52 expect(el.tagName, 'foo');
53 }); 53 });
54 }); 54 });
55 55
56 // FilteredElementList is tested more thoroughly in DocumentFragmentTests. 56 // FilteredElementList is tested more thoroughly in DocumentFragmentTests.
57 group('elements', () { 57 group('elements', () {
58 test('filters out non-element nodes', () { 58 test('filters out non-element nodes', () {
59 final el = new XMLElement.xml("<xml>1<a/><b/>2<c/>3<d/></xml>"); 59 final el = new XMLElement.xml("<xml>1<a/><b/>2<c/>3<d/></xml>");
60 Expect.listEquals(["a", "b", "c", "d"], el.elements.map((e) => e.tagName)) ; 60 expect(el.elements.map((e) => e.tagName), ["a", "b", "c", "d"]);
61 }); 61 });
62 62
63 test('overwrites nodes when set', () { 63 test('overwrites nodes when set', () {
64 final el = new XMLElement.xml("<xml>1<a/><b/>2<c/>3<d/></xml>"); 64 final el = new XMLElement.xml("<xml>1<a/><b/>2<c/>3<d/></xml>");
65 el.elements = [new XMLElement.tag('x'), new XMLElement.tag('y')]; 65 el.elements = [new XMLElement.tag('x'), new XMLElement.tag('y')];
66 Expect.equals("<xml><x></x><y></y></xml>", el.outerHTML); 66 expect(el.outerHTML, "<xml><x></x><y></y></xml>");
67 }); 67 });
68 }); 68 });
69 69
70 group('classes', () { 70 group('classes', () {
71 XMLElement makeElementWithClasses() => 71 XMLElement makeElementWithClasses() =>
72 new XMLElement.xml("<xml class='foo bar baz'></xml>"); 72 new XMLElement.xml("<xml class='foo bar baz'></xml>");
73 73
74 Set<String> makeClassSet() => makeElementWithClasses().classes; 74 Set<String> makeClassSet() => makeElementWithClasses().classes;
75 75
76 test('affects the "class" attribute', () { 76 test('affects the "class" attribute', () {
77 final el = makeElementWithClasses(); 77 final el = makeElementWithClasses();
78 el.classes.add('qux'); 78 el.classes.add('qux');
79 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], 79 expect(el.attributes['class'].split(' '),
80 el.attributes['class'].split(' ')); 80 unorderedEquals(['foo', 'bar', 'baz', 'qux']));
81 }); 81 });
82 82
83 test('is affected by the "class" attribute', () { 83 test('is affected by the "class" attribute', () {
84 final el = makeElementWithClasses(); 84 final el = makeElementWithClasses();
85 el.attributes['class'] = 'foo qux'; 85 el.attributes['class'] = 'foo qux';
86 Expect.setEquals(['foo', 'qux'], el.classes); 86 expect(el.classes, unorderedEquals(['foo', 'qux']));
87 }); 87 });
88 88
89 test('classes=', () { 89 test('classes=', () {
90 final el = makeElementWithClasses(); 90 final el = makeElementWithClasses();
91 el.classes = ['foo', 'qux']; 91 el.classes = ['foo', 'qux'];
92 Expect.setEquals(['foo', 'qux'], el.classes); 92 expect(el.classes, unorderedEquals(['foo', 'qux']));
93 Expect.setEquals(['foo', 'qux'], el.attributes['class'].split(' ')); 93 expect(el.attributes['class'].split(' '),
94 unorderedEquals(['foo', 'qux']));
94 }); 95 });
95 96
96 test('toString', () { 97 test('toString', () {
97 Expect.setEquals(['foo', 'bar', 'baz'], 98 expect(makeClassSet().toString().split(' '),
98 makeClassSet().toString().split(' ')); 99 unorderedEquals(['foo', 'bar', 'baz']));
99 Expect.equals('', makeElement().classes.toString()); 100 expect(makeElement().classes.toString(), '');
100 }); 101 });
101 102
102 test('forEach', () { 103 test('forEach', () {
103 final classes = <String>[]; 104 final classes = <String>[];
104 makeClassSet().forEach(classes.add); 105 makeClassSet().forEach(classes.add);
105 Expect.setEquals(['foo', 'bar', 'baz'], classes); 106 expect(classes, unorderedEquals(['foo', 'bar', 'baz']));
106 }); 107 });
107 108
108 test('iterator', () { 109 test('iterator', () {
109 final classes = <String>[]; 110 final classes = <String>[];
110 for (var el in makeClassSet()) { 111 for (var el in makeClassSet()) {
111 classes.add(el); 112 classes.add(el);
112 } 113 }
113 Expect.setEquals(['foo', 'bar', 'baz'], classes); 114 expect(classes, unorderedEquals(['foo', 'bar', 'baz']));
114 }); 115 });
115 116
116 test('map', () { 117 test('map', () {
117 Expect.setEquals(['FOO', 'BAR', 'BAZ'], 118 expect(makeClassSet().map((c) => c.toUpperCase()),
118 makeClassSet().map((c) => c.toUpperCase())); 119 unorderedEquals(['FOO', 'BAR', 'BAZ']));
119 }); 120 });
120 121
121 test('filter', () { 122 test('filter', () {
122 Expect.setEquals(['bar', 'baz'], 123 expect(makeClassSet().filter((c) => c.contains('a')),
123 makeClassSet().filter((c) => c.contains('a'))); 124 unorderedEquals(['bar', 'baz']));
124 }); 125 });
125 126
126 test('every', () { 127 test('every', () {
127 Expect.isTrue(makeClassSet().every((c) => c is String)); 128 expect(makeClassSet().every((c) => c is String), isTrue);
128 Expect.isFalse( 129 expect(makeClassSet().every((c) => c.contains('a')), isFalse);
129 makeClassSet().every((c) => c.contains('a')));
130 }); 130 });
131 131
132 test('some', () { 132 test('some', () {
133 Expect.isTrue( 133 expect(makeClassSet().some((c) => c.contains('a')), isTrue);
134 makeClassSet().some((c) => c.contains('a'))); 134 expect(makeClassSet().some((c) => c is num), isFalse);
135 Expect.isFalse(makeClassSet().some((c) => c is num));
136 }); 135 });
137 136
138 test('isEmpty', () { 137 test('isEmpty', () {
139 Expect.isFalse(makeClassSet().isEmpty); 138 expect(makeClassSet().isEmpty, isFalse);
140 Expect.isTrue(makeElement().classes.isEmpty); 139 expect(makeElement().classes.isEmpty, isTrue);
141 }); 140 });
142 141
143 test('length', () { 142 test('length', () {
144 Expect.equals(3, makeClassSet().length); 143 expect(makeClassSet().length, 3);
145 Expect.equals(0, makeElement().classes.length); 144 expect(makeElement().classes.length, 0);
146 }); 145 });
147 146
148 test('contains', () { 147 test('contains', () {
149 Expect.isTrue(makeClassSet().contains('foo')); 148 expect(makeClassSet().contains('foo'), isTrue);
150 Expect.isFalse(makeClassSet().contains('qux')); 149 expect(makeClassSet().contains('qux'), isFalse);
151 }); 150 });
152 151
153 test('add', () { 152 test('add', () {
154 final classes = makeClassSet(); 153 final classes = makeClassSet();
155 classes.add('qux'); 154 classes.add('qux');
156 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], classes); 155 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux']));
157 156
158 classes.add('qux'); 157 classes.add('qux');
159 final list = new List.from(classes); 158 final list = new List.from(classes);
160 list.sort((a, b) => a.compareTo(b)); 159 list.sort((a, b) => a.compareTo(b));
161 Expect.listEquals(['bar', 'baz', 'foo', 'qux'], list, 160 expect(list, ['bar', 'baz', 'foo', 'qux'],
162 "The class set shouldn't have duplicate elements."); 161 reason: "The class set shouldn't have duplicate elements.");
163 }); 162 });
164 163
165 test('remove', () { 164 test('remove', () {
166 final classes = makeClassSet(); 165 final classes = makeClassSet();
167 classes.remove('bar'); 166 classes.remove('bar');
168 Expect.setEquals(['foo', 'baz'], classes); 167 expect(classes, unorderedEquals(['foo', 'baz']));
169 classes.remove('qux'); 168 classes.remove('qux');
170 Expect.setEquals(['foo', 'baz'], classes); 169 expect(classes, unorderedEquals(['foo', 'baz']));
171 }); 170 });
172 171
173 test('addAll', () { 172 test('addAll', () {
174 final classes = makeClassSet(); 173 final classes = makeClassSet();
175 classes.addAll(['bar', 'qux', 'bip']); 174 classes.addAll(['bar', 'qux', 'bip']);
176 Expect.setEquals(['foo', 'bar', 'baz', 'qux', 'bip'], classes); 175 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux', 'bip']));
177 }); 176 });
178 177
179 test('removeAll', () { 178 test('removeAll', () {
180 final classes = makeClassSet(); 179 final classes = makeClassSet();
181 classes.removeAll(['bar', 'baz', 'qux']); 180 classes.removeAll(['bar', 'baz', 'qux']);
182 Expect.setEquals(['foo'], classes); 181 expect(classes, ['foo']);
183 }); 182 });
184 183
185 test('isSubsetOf', () { 184 test('isSubsetOf', () {
186 final classes = makeClassSet(); 185 final classes = makeClassSet();
187 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz'])); 186 expect(classes.isSubsetOf(['foo', 'bar', 'baz']), isTrue);
188 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux'])); 187 expect(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux']), isTrue);
189 Expect.isFalse(classes.isSubsetOf(['foo', 'bar', 'qux'])); 188 expect(classes.isSubsetOf(['foo', 'bar', 'qux']), isFalse);
190 }); 189 });
191 190
192 test('containsAll', () { 191 test('containsAll', () {
193 final classes = makeClassSet(); 192 final classes = makeClassSet();
194 Expect.isTrue(classes.containsAll(['foo', 'baz'])); 193 expect(classes.containsAll(['foo', 'baz']), isTrue);
195 Expect.isFalse(classes.containsAll(['foo', 'qux'])); 194 expect(classes.containsAll(['foo', 'qux']), isFalse);
196 }); 195 });
197 196
198 test('intersection', () { 197 test('intersection', () {
199 final classes = makeClassSet(); 198 final classes = makeClassSet();
200 Expect.setEquals(['foo', 'baz'], 199 expect(classes.intersection(['foo', 'qux', 'baz']),
201 classes.intersection(['foo', 'qux', 'baz'])); 200 unorderedEquals(['foo', 'baz']));
202 }); 201 });
203 202
204 test('clear', () { 203 test('clear', () {
205 final classes = makeClassSet(); 204 final classes = makeClassSet();
206 classes.clear(); 205 classes.clear();
207 Expect.setEquals([], classes); 206 expect(classes, []);
208 }); 207 });
209 }); 208 });
210 209
211 test("no-op methods don't throw errors", () { 210 test("no-op methods don't throw errors", () {
212 final el = makeElement(); 211 final el = makeElement();
213 el.on.click.add((e) => null); 212 el.on.click.add((e) => null);
214 el.blur(); 213 el.blur();
215 el.focus(); 214 el.focus();
216 el.scrollByLines(2); 215 el.scrollByLines(2);
217 el.scrollByPages(2); 216 el.scrollByPages(2);
218 el.scrollIntoView(); 217 el.scrollIntoView();
219 }); 218 });
220 219
221 group('properties that map to attributes', () { 220 group('properties that map to attributes', () {
222 group('contentEditable', () { 221 group('contentEditable', () {
223 test('get', () { 222 test('get', () {
224 final el = makeElement(); 223 final el = makeElement();
225 Expect.equals('inherit', el.contentEditable); 224 expect(el.contentEditable, 'inherit');
226 el.attributes['contentEditable'] = 'foo'; 225 el.attributes['contentEditable'] = 'foo';
227 Expect.equals('foo', el.contentEditable); 226 expect(el.contentEditable, 'foo');
228 }); 227 });
229 228
230 test('set', () { 229 test('set', () {
231 final el = makeElement(); 230 final el = makeElement();
232 el.contentEditable = 'foo'; 231 el.contentEditable = 'foo';
233 Expect.equals('foo', el.attributes['contentEditable']); 232 expect(el.attributes['contentEditable'], 'foo');
234 }); 233 });
235 234
236 test('isContentEditable', () { 235 test('isContentEditable', () {
237 final el = makeElement(); 236 final el = makeElement();
238 Expect.isFalse(el.isContentEditable); 237 expect(el.isContentEditable, isFalse);
239 el.contentEditable = 'true'; 238 el.contentEditable = 'true';
240 Expect.isFalse(el.isContentEditable); 239 expect(el.isContentEditable, isFalse);
241 }); 240 });
242 }); 241 });
243 242
244 group('draggable', () { 243 group('draggable', () {
245 test('get', () { 244 test('get', () {
246 final el = makeElement(); 245 final el = makeElement();
247 Expect.isFalse(el.draggable); 246 expect(el.draggable, isFalse);
248 el.attributes['draggable'] = 'true'; 247 el.attributes['draggable'] = 'true';
249 Expect.isTrue(el.draggable); 248 expect(el.draggable, isTrue);
250 el.attributes['draggable'] = 'foo'; 249 el.attributes['draggable'] = 'foo';
251 Expect.isFalse(el.draggable); 250 expect(el.draggable, isFalse);
252 }); 251 });
253 252
254 test('set', () { 253 test('set', () {
255 final el = makeElement(); 254 final el = makeElement();
256 el.draggable = true; 255 el.draggable = true;
257 Expect.equals('true', el.attributes['draggable']); 256 expect(el.attributes['draggable'], 'true');
258 el.draggable = false; 257 el.draggable = false;
259 Expect.equals('false', el.attributes['draggable']); 258 expect(el.attributes['draggable'], 'false');
260 }); 259 });
261 }); 260 });
262 261
263 group('spellcheck', () { 262 group('spellcheck', () {
264 test('get', () { 263 test('get', () {
265 final el = makeElement(); 264 final el = makeElement();
266 Expect.isFalse(el.spellcheck); 265 expect(el.spellcheck, isFalse);
267 el.attributes['spellcheck'] = 'true'; 266 el.attributes['spellcheck'] = 'true';
268 Expect.isTrue(el.spellcheck); 267 expect(el.spellcheck, isTrue);
269 el.attributes['spellcheck'] = 'foo'; 268 el.attributes['spellcheck'] = 'foo';
270 Expect.isFalse(el.spellcheck); 269 expect(el.spellcheck, isFalse);
271 }); 270 });
272 271
273 test('set', () { 272 test('set', () {
274 final el = makeElement(); 273 final el = makeElement();
275 el.spellcheck = true; 274 el.spellcheck = true;
276 Expect.equals('true', el.attributes['spellcheck']); 275 expect(el.attributes['spellcheck'], 'true');
277 el.spellcheck = false; 276 el.spellcheck = false;
278 Expect.equals('false', el.attributes['spellcheck']); 277 expect(el.attributes['spellcheck'], 'false');
279 }); 278 });
280 }); 279 });
281 280
282 group('hidden', () { 281 group('hidden', () {
283 test('get', () { 282 test('get', () {
284 final el = makeElement(); 283 final el = makeElement();
285 Expect.isFalse(el.hidden); 284 expect(el.hidden, isFalse);
286 el.attributes['hidden'] = ''; 285 el.attributes['hidden'] = '';
287 Expect.isTrue(el.hidden); 286 expect(el.hidden, isTrue);
288 }); 287 });
289 288
290 test('set', () { 289 test('set', () {
291 final el = makeElement(); 290 final el = makeElement();
292 el.hidden = true; 291 el.hidden = true;
293 Expect.equals('', el.attributes['hidden']); 292 expect(el.attributes['hidden'], '');
294 el.hidden = false; 293 el.hidden = false;
295 Expect.isFalse(el.attributes.containsKey('hidden')); 294 expect(el.attributes.containsKey('hidden'), isFalse);
296 }); 295 });
297 }); 296 });
298 297
299 group('tabIndex', () { 298 group('tabIndex', () {
300 test('get', () { 299 test('get', () {
301 final el = makeElement(); 300 final el = makeElement();
302 Expect.equals(0, el.tabIndex); 301 expect(el.tabIndex, 0);
303 el.attributes['tabIndex'] = '2'; 302 el.attributes['tabIndex'] = '2';
304 Expect.equals(2, el.tabIndex); 303 expect(el.tabIndex, 2);
305 el.attributes['tabIndex'] = 'foo'; 304 el.attributes['tabIndex'] = 'foo';
306 Expect.equals(0, el.tabIndex); 305 expect(el.tabIndex, 0);
307 }); 306 });
308 307
309 test('set', () { 308 test('set', () {
310 final el = makeElement(); 309 final el = makeElement();
311 el.tabIndex = 15; 310 el.tabIndex = 15;
312 Expect.equals('15', el.attributes['tabIndex']); 311 expect(el.attributes['tabIndex'], '15');
313 }); 312 });
314 }); 313 });
315 314
316 group('id', () { 315 group('id', () {
317 test('get', () { 316 test('get', () {
318 final el = makeElement(); 317 final el = makeElement();
319 Expect.equals('', el.id); 318 expect(el.id, '');
320 el.attributes['id'] = 'foo'; 319 el.attributes['id'] = 'foo';
321 Expect.equals('foo', el.id); 320 expect(el.id, 'foo');
322 }); 321 });
323 322
324 test('set', () { 323 test('set', () {
325 final el = makeElement(); 324 final el = makeElement();
326 el.id = 'foo'; 325 el.id = 'foo';
327 Expect.equals('foo', el.attributes['id']); 326 expect(el.attributes['id'], 'foo');
328 }); 327 });
329 }); 328 });
330 329
331 group('title', () { 330 group('title', () {
332 test('get', () { 331 test('get', () {
333 final el = makeElement(); 332 final el = makeElement();
334 Expect.equals('', el.title); 333 expect(el.title, '');
335 el.attributes['title'] = 'foo'; 334 el.attributes['title'] = 'foo';
336 Expect.equals('foo', el.title); 335 expect(el.title, 'foo');
337 }); 336 });
338 337
339 test('set', () { 338 test('set', () {
340 final el = makeElement(); 339 final el = makeElement();
341 el.title = 'foo'; 340 el.title = 'foo';
342 Expect.equals('foo', el.attributes['title']); 341 expect(el.attributes['title'], 'foo');
343 }); 342 });
344 }); 343 });
345 344
346 group('webkitdropzone', () { 345 group('webkitdropzone', () {
347 test('get', () { 346 test('get', () {
348 final el = makeElement(); 347 final el = makeElement();
349 Expect.equals('', el.webkitdropzone); 348 expect(el.webkitdropzone, '');
350 el.attributes['webkitdropzone'] = 'foo'; 349 el.attributes['webkitdropzone'] = 'foo';
351 Expect.equals('foo', el.webkitdropzone); 350 expect(el.webkitdropzone, 'foo');
352 }); 351 });
353 352
354 test('set', () { 353 test('set', () {
355 final el = makeElement(); 354 final el = makeElement();
356 el.webkitdropzone = 'foo'; 355 el.webkitdropzone = 'foo';
357 Expect.equals('foo', el.attributes['webkitdropzone']); 356 expect(el.attributes['webkitdropzone'], 'foo');
358 }); 357 });
359 }); 358 });
360 359
361 group('lang', () { 360 group('lang', () {
362 test('get', () { 361 test('get', () {
363 final el = makeElement(); 362 final el = makeElement();
364 Expect.equals('', el.lang); 363 expect(el.lang, '');
365 el.attributes['lang'] = 'foo'; 364 el.attributes['lang'] = 'foo';
366 Expect.equals('foo', el.lang); 365 expect(el.lang, 'foo');
367 }); 366 });
368 367
369 test('set', () { 368 test('set', () {
370 final el = makeElement(); 369 final el = makeElement();
371 el.lang = 'foo'; 370 el.lang = 'foo';
372 Expect.equals('foo', el.attributes['lang']); 371 expect(el.attributes['lang'], 'foo');
373 }); 372 });
374 }); 373 });
375 374
376 group('dir', () { 375 group('dir', () {
377 test('get', () { 376 test('get', () {
378 final el = makeElement(); 377 final el = makeElement();
379 Expect.equals('', el.dir); 378 expect(el.dir, '');
380 el.attributes['dir'] = 'foo'; 379 el.attributes['dir'] = 'foo';
381 Expect.equals('foo', el.dir); 380 expect(el.dir, 'foo');
382 }); 381 });
383 382
384 test('set', () { 383 test('set', () {
385 final el = makeElement(); 384 final el = makeElement();
386 el.dir = 'foo'; 385 el.dir = 'foo';
387 Expect.equals('foo', el.attributes['dir']); 386 expect(el.attributes['dir'], 'foo');
388 }); 387 });
389 }); 388 });
390 }); 389 });
391 390
392 test('set innerHTML', () { 391 test('set innerHTML', () {
393 final el = makeElement(); 392 final el = makeElement();
394 el.innerHTML = "<foo>Bar<baz/></foo>"; 393 el.innerHTML = "<foo>Bar<baz/></foo>";
395 Expect.equals(1, el.nodes.length); 394 expect(el.nodes.length, 1);
396 final node = el.nodes[0]; 395 final node = el.nodes[0];
397 Expect.isTrue(node is XMLElement); 396 expect(node, isXMLElement);
398 Expect.equals('foo', node.tagName); 397 expect(node.tagName, 'foo');
399 Expect.equals('Bar', node.nodes[0].text); 398 expect(node.nodes[0].text, 'Bar');
400 Expect.equals('baz', node.nodes[1].tagName); 399 expect(node.nodes[1].tagName, 'baz');
401 }); 400 });
402 401
403 test('get innerHTML/outerHTML', () { 402 test('get innerHTML/outerHTML', () {
404 final el = makeElement(); 403 final el = makeElement();
405 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 404 expect(el.innerHTML, "<foo></foo><bar></bar>");
406 el.nodes.clear(); 405 el.nodes.clear();
407 el.nodes.addAll([new Text("foo"), new XMLElement.xml("<a>bar</a>")]); 406 el.nodes.addAll([new Text("foo"), new XMLElement.xml("<a>bar</a>")]);
408 Expect.equals("foo<a>bar</a>", el.innerHTML); 407 expect(el.innerHTML, "foo<a>bar</a>");
409 Expect.equals("<xml>foo<a>bar</a></xml>", el.outerHTML); 408 expect(el.outerHTML, "<xml>foo<a>bar</a></xml>");
410 }); 409 });
411 410
412 test('query', () { 411 test('query', () {
413 final el = makeElement(); 412 final el = makeElement();
414 Expect.equals("foo", el.query('foo').tagName); 413 expect(el.query('foo').tagName, 'foo');
415 Expect.isNull(el.query('baz')); 414 expect(el.query('baz'), isNull);
416 }); 415 });
417 416
418 test('queryAll', () { 417 test('queryAll', () {
419 final el = new XMLElement.xml( 418 final el = new XMLElement.xml(
420 "<xml><foo id='f1' /><bar><foo id='f2' /></bar></xml>"); 419 "<xml><foo id='f1' /><bar><foo id='f2' /></bar></xml>");
421 Expect.listEquals(["f1", "f2"], el.queryAll('foo').map((e) => e.id)); 420 expect(el.queryAll('foo').map((e) => e.id), ['f1', 'f2']);
422 Expect.listEquals([], el.queryAll('baz')); 421 expect(el.queryAll('baz'), []);
423 }); 422 });
424 423
425 // TODO(nweiz): re-enable this when matchesSelector works cross-browser. 424 // TODO(nweiz): re-enable this when matchesSelector works cross-browser.
426 // 425 //
427 // test('matchesSelector', () { 426 // test('matchesSelector', () {
428 // final el = makeElement(); 427 // final el = makeElement();
429 // Expect.isTrue(el.matchesSelector('*')); 428 // expect(el.matchesSelector('*'), isTrue);
430 // Expect.isTrue(el.matchesSelector('xml')); 429 // expect(el.matchesSelector('xml'), isTrue);
431 // Expect.isFalse(el.matchesSelector('html')); 430 // expect(el.matchesSelector('html'), isFalse);
432 // }); 431 // });
433 432
434 group('insertAdjacentElement', () { 433 group('insertAdjacentElement', () {
435 test('beforeBegin with no parent does nothing', () { 434 test('beforeBegin with no parent does nothing', () {
436 final el = makeElement(); 435 final el = makeElement();
437 Expect.isNull( 436 expect(el.insertAdjacentElement("beforeBegin", new XMLElement.tag("b")),
438 el.insertAdjacentElement("beforeBegin", new XMLElement.tag("b"))); 437 isNull);
439 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 438 expect(el.innerHTML, "<foo></foo><bar></bar>");
440 }); 439 });
441 440
442 test('afterEnd with no parent does nothing', () { 441 test('afterEnd with no parent does nothing', () {
443 final el = makeElement(); 442 final el = makeElement();
444 Expect.isNull( 443 expect(
445 el.insertAdjacentElement("afterEnd", new XMLElement.tag("b"))); 444 el.insertAdjacentElement("afterEnd", new XMLElement.tag("b")), isNull);
446 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 445 expect(el.innerHTML, "<foo></foo><bar></bar>");
447 }); 446 });
448 447
449 test('beforeBegin with parent inserts the element', () { 448 test('beforeBegin with parent inserts the element', () {
450 final el = makeElementWithParent(); 449 final el = makeElementWithParent();
451 final newEl = new XMLElement.tag("b"); 450 final newEl = new XMLElement.tag("b");
452 Expect.equals(newEl, el.insertAdjacentElement("beforeBegin", newEl)); 451 expect(el.insertAdjacentElement("beforeBegin", newEl), newEl);
453 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 452 expect(el.innerHTML, "<foo></foo><bar></bar>");
454 Expect.equals("<before></before><b></b><xml><foo></foo><bar></bar>" + 453 expect(el.parent.innerHTML,
455 "</xml><after></after>", el.parent.innerHTML); 454 "<before></before><b></b><xml><foo></foo><bar></bar>"
455 "</xml><after></after>");
456 }); 456 });
457 457
458 test('afterEnd with parent inserts the element', () { 458 test('afterEnd with parent inserts the element', () {
459 final el = makeElementWithParent(); 459 final el = makeElementWithParent();
460 final newEl = new XMLElement.tag("b"); 460 final newEl = new XMLElement.tag("b");
461 Expect.equals(newEl, el.insertAdjacentElement("afterEnd", newEl)); 461 expect(el.insertAdjacentElement("afterEnd", newEl), newEl);
462 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 462 expect(el.innerHTML, "<foo></foo><bar></bar>");
463 Expect.equals("<before></before><xml><foo></foo><bar></bar></xml><b>" + 463 expect(el.parent.innerHTML,
464 "</b><after></after>", el.parent.innerHTML); 464 "<before></before><xml><foo></foo><bar></bar></xml><b>"
465 "</b><after></after>");
465 }); 466 });
466 467
467 test('afterBegin inserts the element', () { 468 test('afterBegin inserts the element', () {
468 final el = makeElement(); 469 final el = makeElement();
469 final newEl = new XMLElement.tag("b"); 470 final newEl = new XMLElement.tag("b");
470 Expect.equals(newEl, el.insertAdjacentElement("afterBegin", newEl)); 471 expect(el.insertAdjacentElement("afterBegin", newEl), newEl);
471 Expect.equals("<b></b><foo></foo><bar></bar>", el.innerHTML); 472 expect(el.innerHTML, "<b></b><foo></foo><bar></bar>");
472 }); 473 });
473 474
474 test('beforeEnd inserts the element', () { 475 test('beforeEnd inserts the element', () {
475 final el = makeElement(); 476 final el = makeElement();
476 final newEl = new XMLElement.tag("b"); 477 final newEl = new XMLElement.tag("b");
477 Expect.equals(newEl, el.insertAdjacentElement("beforeEnd", newEl)); 478 expect(el.insertAdjacentElement("beforeEnd", newEl), newEl);
478 Expect.equals("<foo></foo><bar></bar><b></b>", el.innerHTML); 479 expect(el.innerHTML, "<foo></foo><bar></bar><b></b>");
479 }); 480 });
480 }); 481 });
481 482
482 group('insertAdjacentText', () { 483 group('insertAdjacentText', () {
483 test('beforeBegin with no parent does nothing', () { 484 test('beforeBegin with no parent does nothing', () {
484 final el = makeElement(); 485 final el = makeElement();
485 el.insertAdjacentText("beforeBegin", "foo"); 486 el.insertAdjacentText("beforeBegin", "foo");
486 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 487 expect(el.innerHTML, "<foo></foo><bar></bar>");
487 }); 488 });
488 489
489 test('afterEnd with no parent does nothing', () { 490 test('afterEnd with no parent does nothing', () {
490 final el = makeElement(); 491 final el = makeElement();
491 el.insertAdjacentText("afterEnd", "foo"); 492 el.insertAdjacentText("afterEnd", "foo");
492 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 493 expect(el.innerHTML, "<foo></foo><bar></bar>");
493 }); 494 });
494 495
495 test('beforeBegin with parent inserts the text', () { 496 test('beforeBegin with parent inserts the text', () {
496 final el = makeElementWithParent(); 497 final el = makeElementWithParent();
497 el.insertAdjacentText("beforeBegin", "foo"); 498 el.insertAdjacentText("beforeBegin", "foo");
498 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 499 expect(el.innerHTML, "<foo></foo><bar></bar>");
499 Expect.equals("<before></before>foo<xml><foo></foo><bar></bar></xml>" + 500 expect(el.parent.innerHTML,
500 "<after></after>", el.parent.innerHTML); 501 "<before></before>foo<xml><foo></foo><bar></bar></xml>"
502 "<after></after>");
501 }); 503 });
502 504
503 test('afterEnd with parent inserts the text', () { 505 test('afterEnd with parent inserts the text', () {
504 final el = makeElementWithParent(); 506 final el = makeElementWithParent();
505 el.insertAdjacentText("afterEnd", "foo"); 507 el.insertAdjacentText("afterEnd", "foo");
506 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 508 expect(el.innerHTML, "<foo></foo><bar></bar>");
507 Expect.equals("<before></before><xml><foo></foo><bar></bar></xml>foo" + 509 expect(el.parent.innerHTML,
508 "<after></after>", el.parent.innerHTML); 510 "<before></before><xml><foo></foo><bar></bar></xml>foo"
511 "<after></after>");
509 }); 512 });
510 513
511 test('afterBegin inserts the text', () { 514 test('afterBegin inserts the text', () {
512 final el = makeElement(); 515 final el = makeElement();
513 el.insertAdjacentText("afterBegin", "foo"); 516 el.insertAdjacentText("afterBegin", "foo");
514 Expect.equals("foo<foo></foo><bar></bar>", el.innerHTML); 517 expect(el.innerHTML, "foo<foo></foo><bar></bar>");
515 }); 518 });
516 519
517 test('beforeEnd inserts the text', () { 520 test('beforeEnd inserts the text', () {
518 final el = makeElement(); 521 final el = makeElement();
519 el.insertAdjacentText("beforeEnd", "foo"); 522 el.insertAdjacentText("beforeEnd", "foo");
520 Expect.equals("<foo></foo><bar></bar>foo", el.innerHTML); 523 expect(el.innerHTML, "<foo></foo><bar></bar>foo");
521 }); 524 });
522 }); 525 });
523 526
524 group('insertAdjacentHTML', () { 527 group('insertAdjacentHTML', () {
525 test('beforeBegin with no parent does nothing', () { 528 test('beforeBegin with no parent does nothing', () {
526 final el = makeElement(); 529 final el = makeElement();
527 el.insertAdjacentHTML("beforeBegin", "foo<b/>"); 530 el.insertAdjacentHTML("beforeBegin", "foo<b/>");
528 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 531 expect(el.innerHTML, "<foo></foo><bar></bar>");
529 }); 532 });
530 533
531 test('afterEnd with no parent does nothing', () { 534 test('afterEnd with no parent does nothing', () {
532 final el = makeElement(); 535 final el = makeElement();
533 el.insertAdjacentHTML("afterEnd", "<b/>foo"); 536 el.insertAdjacentHTML("afterEnd", "<b/>foo");
534 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 537 expect(el.innerHTML, "<foo></foo><bar></bar>");
535 }); 538 });
536 539
537 test('beforeBegin with parent inserts the HTML', () { 540 test('beforeBegin with parent inserts the HTML', () {
538 final el = makeElementWithParent(); 541 final el = makeElementWithParent();
539 el.insertAdjacentHTML("beforeBegin", "foo<b/>"); 542 el.insertAdjacentHTML("beforeBegin", "foo<b/>");
540 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 543 expect(el.innerHTML, "<foo></foo><bar></bar>");
541 Expect.equals("<before></before>foo<b></b><xml><foo></foo><bar></bar>" + 544 expect(el.parent.innerHTML,
542 "</xml><after></after>", el.parent.innerHTML); 545 "<before></before>foo<b></b><xml><foo></foo><bar></bar>"
546 "</xml><after></after>");
543 }); 547 });
544 548
545 test('afterEnd with parent inserts the HTML', () { 549 test('afterEnd with parent inserts the HTML', () {
546 final el = makeElementWithParent(); 550 final el = makeElementWithParent();
547 el.insertAdjacentHTML("afterEnd", "foo<b/>"); 551 el.insertAdjacentHTML("afterEnd", "foo<b/>");
548 Expect.equals("<foo></foo><bar></bar>", el.innerHTML); 552 expect(el.innerHTML, "<foo></foo><bar></bar>");
549 Expect.equals("<before></before><xml><foo></foo><bar></bar></xml>foo" + 553 expect(el.parent.innerHTML,
550 "<b></b><after></after>", el.parent.innerHTML); 554 "<before></before><xml><foo></foo><bar></bar></xml>foo"
555 "<b></b><after></after>");
551 }); 556 });
552 557
553 test('afterBegin inserts the HTML', () { 558 test('afterBegin inserts the HTML', () {
554 final el = makeElement(); 559 final el = makeElement();
555 el.insertAdjacentHTML("afterBegin", "foo<b/>"); 560 el.insertAdjacentHTML("afterBegin", "foo<b/>");
556 Expect.equals("foo<b></b><foo></foo><bar></bar>", el.innerHTML); 561 expect(el.innerHTML, "foo<b></b><foo></foo><bar></bar>");
557 }); 562 });
558 563
559 test('beforeEnd inserts the HTML', () { 564 test('beforeEnd inserts the HTML', () {
560 final el = makeElement(); 565 final el = makeElement();
561 el.insertAdjacentHTML("beforeEnd", "<b/>foo"); 566 el.insertAdjacentHTML("beforeEnd", "<b/>foo");
562 Expect.equals("<foo></foo><bar></bar><b></b>foo", el.innerHTML); 567 expect(el.innerHTML, "<foo></foo><bar></bar><b></b>foo");
563 }); 568 });
564 }); 569 });
565 570
566 test('default rect values', () { 571 test('default rect values', () {
567 makeElement().rect.then( 572 makeElement().rect.then(
568 expectAsync1(ElementRect rect) { 573 expectAsync1(ElementRect rect) {
569 expectEmptyRect(rect.client); 574 expectEmptyRect(rect.client);
570 expectEmptyRect(rect.offset); 575 expectEmptyRect(rect.offset);
571 expectEmptyRect(rect.scroll); 576 expectEmptyRect(rect.scroll);
572 expectEmptyRect(rect.bounding); 577 expectEmptyRect(rect.bounding);
573 Expect.isTrue(rect.clientRects.isEmpty); 578 expect(rect.clientRects.isEmpty, isTrue);
574 })); 579 }));
575 }); 580 });
576 } 581 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698