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 |