OLD | NEW |
1 description('Tests the classList attribute and its properties.'); | 1 description('Tests the classList attribute and its properties.'); |
2 | 2 |
3 var element; | 3 var element; |
4 | 4 |
5 function createElement(className) | 5 function createElement(className) |
6 { | 6 { |
7 element = document.createElement('p'); | 7 element = document.createElement('p'); |
8 element.className = className; | 8 element.className = className; |
9 } | 9 } |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 shouldBeEqualToString('element.className', ''); | 63 shouldBeEqualToString('element.className', ''); |
64 | 64 |
65 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/010.htm | 65 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/010.htm |
66 createElement('x'); | 66 createElement('x'); |
67 element.classList.remove('x'); | 67 element.classList.remove('x'); |
68 shouldBeEqualToString('element.className', ''); | 68 shouldBeEqualToString('element.className', ''); |
69 | 69 |
70 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/011.htm | 70 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/011.htm |
71 createElement(' y x y '); | 71 createElement(' y x y '); |
72 element.classList.remove('x'); | 72 element.classList.remove('x'); |
73 shouldBeEqualToString('element.className', ' y y '); | 73 shouldBeEqualToString('element.className', 'y y'); |
74 | 74 |
75 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/012.htm | 75 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/012.htm |
76 createElement(' x y x '); | 76 createElement(' x y x '); |
77 element.classList.remove('x'); | 77 element.classList.remove('x'); |
78 shouldBeEqualToString('element.className', 'y'); | 78 shouldBeEqualToString('element.className', 'y'); |
79 | 79 |
80 | 80 |
81 debug('Ensure that we can handle empty class name correctly'); | 81 debug('Ensure that we can handle empty class name correctly'); |
82 element = document.createElement('span'); | 82 element = document.createElement('span'); |
83 shouldBeTrue("element.classList.toggle('x')"); | 83 shouldBeTrue("element.classList.toggle('x')"); |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 | 317 |
318 createElement(''); | 318 createElement(''); |
319 shouldNotThrow('element.classList.add()'); | 319 shouldNotThrow('element.classList.add()'); |
320 | 320 |
321 createElement(''); | 321 createElement(''); |
322 var observer = new WebKitMutationObserver(function() {}); | 322 var observer = new WebKitMutationObserver(function() {}); |
323 observer.observe(element, {attributes: true}); | 323 observer.observe(element, {attributes: true}); |
324 element.classList.add('a', 'c'); | 324 element.classList.add('a', 'c'); |
325 shouldBe('observer.takeRecords().length', '1'); | 325 shouldBe('observer.takeRecords().length', '1'); |
326 | 326 |
| 327 createElement(' a b c '); |
| 328 element.classList.remove('a'); |
| 329 shouldBeEqualToString("element.className", "b c"); |
| 330 |
| 331 createElement(' a b c '); |
| 332 element.classList.remove('b'); |
| 333 shouldBeEqualToString("element.className", "a c"); |
| 334 |
| 335 createElement(' a b c '); |
| 336 element.classList.remove('c'); |
| 337 shouldBeEqualToString("element.className", "a b"); |
327 | 338 |
328 createElement('a b c d '); | 339 createElement('a b c d '); |
329 element.classList.remove('a', 'c'); | 340 element.classList.remove('a', 'c'); |
330 shouldBeEqualToString('element.className', 'b d '); | 341 shouldBeEqualToString('element.className', 'b d'); |
331 | 342 |
332 element.classList.remove('b', 'b'); | 343 element.classList.remove('b', 'b'); |
333 shouldBeEqualToString('element.className', 'd '); | 344 shouldBeEqualToString('element.className', 'd'); |
334 | 345 |
335 createElement('a b c null d undefined 0 false'); | 346 createElement('a b c null d undefined 0 false'); |
336 element.classList.remove(null, {toString: function() { return 'd' }}, undefined,
0, false); | 347 element.classList.remove(null, {toString: function() { return 'd' }}, undefined,
0, false); |
337 shouldBeEqualToString('element.className', 'a b c'); | 348 shouldBeEqualToString('element.className', 'a b c'); |
338 | 349 |
339 createElement('a b'); | 350 createElement('a b'); |
340 shouldThrowDOMException(function() { | 351 shouldThrowDOMException(function() { |
341 element.classList.remove('a', 'b', ''); | 352 element.classList.remove('a', 'b', ''); |
342 }, DOMException.SYNTAX_ERR); | 353 }, DOMException.SYNTAX_ERR); |
343 shouldBeEqualToString('element.className', 'a b'); | 354 shouldBeEqualToString('element.className', 'a b'); |
(...skipping 14 matching lines...) Expand all Loading... |
358 element.classList.remove('a', 'c'); | 369 element.classList.remove('a', 'c'); |
359 shouldBe('observer.takeRecords().length', '1'); | 370 shouldBe('observer.takeRecords().length', '1'); |
360 | 371 |
361 // iterable<DOMString>; | 372 // iterable<DOMString>; |
362 createElement('a b c'); | 373 createElement('a b c'); |
363 var seen = []; | 374 var seen = []; |
364 for (var t of element.classList) { | 375 for (var t of element.classList) { |
365 seen.push(t); | 376 seen.push(t); |
366 } | 377 } |
367 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); | 378 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); |
OLD | NEW |