| Tests the classList attribute and its properties. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| Tests from http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/ |
| PASS String(element.classList) is "y" |
| PASS element.classList.length is 0 |
| PASS element.classList.length is 1 |
| PASS element.classList.length is 1 |
| PASS element.classList.length is 2 |
| PASS element.className is "x" |
| PASS element.className is "x" |
| PASS element.className is "x" |
| PASS element.className is "y x" |
| PASS element.className is "" |
| PASS element.className is "" |
| PASS element.className is "y" |
| PASS element.className is "y" |
| Ensure that we can handle empty class name correctly |
| PASS element.classList.toggle('x') is true |
| PASS element.className is "x" |
| PASS element.classList.toggle('x') is false |
| PASS element.className is "" |
| PASS element.classList.contains('x') is false |
| PASS element.classList[1] is undefined. |
| Test toggle with force argument |
| PASS element.classList.toggle('x', true) is true |
| PASS element.className is "x" |
| PASS element.classList.toggle('x', true) is true |
| PASS element.className is "x" |
| PASS element.classList.toggle('x', false) is false |
| PASS element.className is "" |
| PASS element.classList.toggle('x', false) is false |
| PASS element.className is "" |
| PASS element.classList.toggle('', true) threw expected DOMException with code 12 |
| PASS element.classList.toggle('x y', false) threw expected DOMException with code 5 |
| Testing add in presence of trailing white spaces. |
| PASS element.className is "x y" |
| PASS element.className is "x y" |
| PASS element.className is "y" |
| Test invalid tokens |
| PASS element.classList.contains('') is false |
| PASS element.classList.contains('x y') is false |
| PASS element.classList.add('') threw expected DOMException with code 12 |
| PASS element.classList.add('x y') threw expected DOMException with code 5 |
| PASS element.classList.remove('') threw expected DOMException with code 12 |
| PASS element.classList.remove('x y') threw expected DOMException with code 5 |
| PASS element.classList.toggle('') threw expected DOMException with code 12 |
| PASS element.classList.toggle('x y') threw expected DOMException with code 5 |
| PASS element.classList.toggle() threw exception TypeError: Not enough arguments. |
| Indexing |
| PASS element.classList[0] is "x" |
| PASS element.classList.item(0) is "x" |
| PASS element.classList[1] is undefined. |
| PASS element.classList.item(1) is null |
| PASS element.classList[1] is "y" |
| PASS element.classList.item(1) is "y" |
| PASS element.classList[0] is undefined. |
| PASS element.classList.item(0) is null |
| PASS element.classList[4] is undefined. |
| PASS element.classList.item(4) is null |
| PASS element.classList[-1] is undefined. |
| PASS element.classList.item(-1) is null |
| PASS element.classList.item() threw exception TypeError: Not enough arguments. |
| Test case since DOMTokenList is case sensitive |
| PASS element.classList.contains('x') is true |
| PASS element.classList.contains('X') is false |
| PASS element.classList[0] is "x" |
| PASS element.classList.contains() threw exception TypeError: Not enough arguments. |
| PASS element.classList.contains('X') is true |
| PASS element.classList.contains('x') is false |
| PASS element.classList[0] is "X" |
| Testing whitespace |
| PASS element.classList.length is 2 |
| PASS element.classList.length is 2 |
| PASS element.classList.length is 2 |
| PASS element.classList.length is 2 |
| PASS element.classList.length is 2 |
| DOMTokenList presence and type |
| PASS 'undefined' != typeof DOMTokenList is true |
| PASS typeof DOMTokenList.prototype is "object" |
| PASS typeof element.classList is "object" |
| PASS element.classList.constructor is DOMTokenList |
| PASS element.classList === element.classList is true |
| PASS document.body.classList.contains("FAIL") is true |
| PASS document.body.className is "" |
| Variadic calls |
| PASS element.className is "a b" |
| PASS element.className is "a b c" |
| PASS element.className is "a b c null d undefined 0 false" |
| PASS element.className is "a b" |
| PASS element.classList.add('a', 'b', '') threw expected DOMException with code 12 |
| PASS element.className is "" |
| PASS element.classList.add('a', 'b', 'c d') threw expected DOMException with code 5 |
| PASS element.className is "" |
| PASS element.classList.add("a", {toString: function() { throw new Error("user error"); }}, "b") threw exception Error: user error. |
| PASS element.className is "" |
| PASS element.classList.add() did not throw exception. |
| PASS observer.takeRecords().length is 1 |
| PASS element.className is "b d" |
| PASS element.className is "d" |
| PASS element.className is "a b c" |
| PASS element.classList.remove('a', 'b', '') threw expected DOMException with code 12 |
| PASS element.className is "a b" |
| PASS element.classList.remove("a", {toString: function() { throw new Error("user error"); }}, "b") threw exception Error: user error. |
| PASS element.className is "a b" |
| PASS element.classList.remove('a', 'b', 'c d') threw expected DOMException with code 5 |
| PASS element.className is "a b" |
| PASS element.classList.remove() did not throw exception. |
| PASS observer.takeRecords().length is 1 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |