| 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 |