| 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 12 matching lines...) Expand all Loading... |
| 23 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/001.htm | 23 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/001.htm |
| 24 createElement(''); | 24 createElement(''); |
| 25 shouldEvaluateTo('element.classList.length', 0); | 25 shouldEvaluateTo('element.classList.length', 0); |
| 26 | 26 |
| 27 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/002.htm | 27 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/002.htm |
| 28 createElement('x'); | 28 createElement('x'); |
| 29 shouldEvaluateTo('element.classList.length', 1); | 29 shouldEvaluateTo('element.classList.length', 1); |
| 30 | 30 |
| 31 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/003.htm | 31 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/003.htm |
| 32 createElement('x x'); | 32 createElement('x x'); |
| 33 shouldEvaluateTo('element.classList.length', 2); | 33 shouldEvaluateTo('element.classList.length', 1); |
| 34 | 34 |
| 35 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/004.htm | 35 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/004.htm |
| 36 createElement('x y'); | 36 createElement('x y'); |
| 37 shouldEvaluateTo('element.classList.length', 2); | 37 shouldEvaluateTo('element.classList.length', 2); |
| 38 | 38 |
| 39 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/005.htm | 39 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/005.htm |
| 40 createElement(''); | 40 createElement(''); |
| 41 element.classList.add('x'); | 41 element.classList.add('x'); |
| 42 shouldBeEqualToString('element.className', 'x'); | 42 shouldBeEqualToString('element.className', 'x'); |
| 43 | 43 |
| 44 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/006.htm | 44 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/006.htm |
| 45 createElement('x'); | 45 createElement('x'); |
| 46 element.classList.add('x'); | 46 element.classList.add('x'); |
| 47 shouldBeEqualToString('element.className', 'x'); | 47 shouldBeEqualToString('element.className', 'x'); |
| 48 | 48 |
| 49 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/007.htm | 49 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/007.htm |
| 50 createElement('x x'); | 50 createElement('x x'); |
| 51 element.classList.add('x'); | 51 element.classList.add('x'); |
| 52 shouldBeEqualToString('element.className', 'x x'); | 52 shouldBeEqualToString('element.className', 'x'); |
| 53 | 53 |
| 54 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/008.htm | 54 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/008.htm |
| 55 createElement('y'); | 55 createElement('y'); |
| 56 element.classList.add('x'); | 56 element.classList.add('x'); |
| 57 shouldBeEqualToString('element.className', 'y x'); | 57 shouldBeEqualToString('element.className', 'y x'); |
| 58 | 58 |
| 59 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/009.htm | 59 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/009.htm |
| 60 createElement(''); | 60 createElement(''); |
| 61 element.classList.remove('x'); | 61 element.classList.remove('x'); |
| 62 shouldBeEqualToString('element.className', ''); | 62 shouldBeEqualToString('element.className', ''); |
| 63 | 63 |
| 64 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/010.htm | 64 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/010.htm |
| 65 createElement('x'); | 65 createElement('x'); |
| 66 element.classList.remove('x'); | 66 element.classList.remove('x'); |
| 67 shouldBeEqualToString('element.className', ''); | 67 shouldBeEqualToString('element.className', ''); |
| 68 | 68 |
| 69 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/011.htm | 69 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/011.htm |
| 70 createElement(' y x y '); | 70 createElement(' y x y '); |
| 71 element.classList.remove('x'); | 71 element.classList.remove('x'); |
| 72 shouldBeEqualToString('element.className', 'y y'); | 72 shouldBeEqualToString('element.className', 'y'); |
| 73 | 73 |
| 74 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/012.htm | 74 // http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/getting/012.htm |
| 75 createElement(' x y x '); | 75 createElement(' x y x '); |
| 76 element.classList.remove('x'); | 76 element.classList.remove('x'); |
| 77 shouldBeEqualToString('element.className', 'y'); | 77 shouldBeEqualToString('element.className', 'y'); |
| 78 | 78 |
| 79 | 79 |
| 80 debug('Ensure that we can handle empty class name correctly'); | 80 debug('Ensure that we can handle empty class name correctly'); |
| 81 element = document.createElement('span'); | 81 element = document.createElement('span'); |
| 82 shouldBeTrue("element.classList.toggle('x')"); | 82 shouldBeTrue("element.classList.toggle('x')"); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 createElement(''); | 194 createElement(''); |
| 195 shouldThrow("element.classList.toggle()"); | 195 shouldThrow("element.classList.toggle()"); |
| 196 | 196 |
| 197 debug('Indexing'); | 197 debug('Indexing'); |
| 198 | 198 |
| 199 createElement('x'); | 199 createElement('x'); |
| 200 shouldBeEqualToString('element.classList[0]', 'x'); | 200 shouldBeEqualToString('element.classList[0]', 'x'); |
| 201 shouldBeEqualToString('element.classList.item(0)', 'x'); | 201 shouldBeEqualToString('element.classList.item(0)', 'x'); |
| 202 | 202 |
| 203 createElement('x x'); | 203 createElement('x x'); |
| 204 shouldBeEqualToString('element.classList[1]', 'x'); | 204 shouldBeUndefined('element.classList[1]'); |
| 205 shouldBeEqualToString('element.classList.item(1)', 'x'); | 205 shouldBeNull('element.classList.item(1)'); |
| 206 | 206 |
| 207 createElement('x y'); | 207 createElement('x y'); |
| 208 shouldBeEqualToString('element.classList[1]', 'y'); | 208 shouldBeEqualToString('element.classList[1]', 'y'); |
| 209 shouldBeEqualToString('element.classList.item(1)', 'y'); | 209 shouldBeEqualToString('element.classList.item(1)', 'y'); |
| 210 | 210 |
| 211 createElement(''); | 211 createElement(''); |
| 212 shouldBeUndefined('element.classList[0]'); | 212 shouldBeUndefined('element.classList[0]'); |
| 213 shouldBeNull('element.classList.item(0)'); | 213 shouldBeNull('element.classList.item(0)'); |
| 214 | 214 |
| 215 createElement('x y z'); | 215 createElement('x y z'); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 element.classList.remove('a', 'c'); | 364 element.classList.remove('a', 'c'); |
| 365 shouldBe('observer.takeRecords().length', '1'); | 365 shouldBe('observer.takeRecords().length', '1'); |
| 366 | 366 |
| 367 // iterable<DOMString>; | 367 // iterable<DOMString>; |
| 368 createElement('a b c'); | 368 createElement('a b c'); |
| 369 var seen = []; | 369 var seen = []; |
| 370 for (var t of element.classList) { | 370 for (var t of element.classList) { |
| 371 seen.push(t); | 371 seen.push(t); |
| 372 } | 372 } |
| 373 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); | 373 shouldBeTrue("areArraysEqual(seen, ['a', 'b', 'c'])"); |
| OLD | NEW |