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 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 | 327 |
328 createElement('a b c d '); | 328 createElement('a b c d '); |
329 element.classList.remove('a', 'c'); | 329 element.classList.remove('a', 'c'); |
330 shouldBeEqualToString('element.className', 'b d '); | 330 shouldBeEqualToString('element.className', 'b d'); |
331 | 331 |
332 element.classList.remove('b', 'b'); | 332 element.classList.remove('b', 'b'); |
333 shouldBeEqualToString('element.className', 'd '); | 333 shouldBeEqualToString('element.className', 'd'); |
334 | 334 |
335 createElement('a b c null d undefined 0 false'); | 335 createElement('a b c null d undefined 0 false'); |
336 element.classList.remove(null, {toString: function() { return 'd' }}, undefined,
0, false); | 336 element.classList.remove(null, {toString: function() { return 'd' }}, undefined,
0, false); |
337 shouldBeEqualToString('element.className', 'a b c'); | 337 shouldBeEqualToString('element.className', 'a b c'); |
338 | 338 |
339 createElement('a b'); | 339 createElement('a b'); |
340 shouldThrowDOMException(function() { | 340 shouldThrowDOMException(function() { |
341 element.classList.remove('a', 'b', ''); | 341 element.classList.remove('a', 'b', ''); |
342 }, DOMException.SYNTAX_ERR); | 342 }, DOMException.SYNTAX_ERR); |
343 shouldBeEqualToString('element.className', 'a b'); | 343 shouldBeEqualToString('element.className', 'a b'); |
(...skipping 14 matching lines...) Expand all Loading... |
358 element.classList.remove('a', 'c'); | 358 element.classList.remove('a', 'c'); |
359 shouldBe('observer.takeRecords().length', '1'); | 359 shouldBe('observer.takeRecords().length', '1'); |
360 | 360 |
361 // iterable<DOMString>; | 361 // iterable<DOMString>; |
362 createElement('a b c'); | 362 createElement('a b c'); |
363 var seen = []; | 363 var seen = []; |
364 for (var t of element.classList) { | 364 for (var t of element.classList) { |
365 seen.push(t); | 365 seen.push(t); |
366 } | 366 } |
367 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); | 367 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); |
OLD | NEW |