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

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

Issue 1411123004: Handle extra whitespaces in the DOM token list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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'])");
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698