Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/HTMLElement/resources/class-list.js

Issue 2903803002: DOMTokenList should unify duplicated tokens. (Closed)
Patch Set: Update a -expected.txt Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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'])");
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698