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 "x"
PASS element.classList.length is 0
PASS element.classList.length is 1
PASS element.classList.length is 2
PASS element.classList.length is 2
PASS element.className is "x"
PASS element.className is "x"
PASS element.className is "x  x"
PASS element.className is "y x"
PASS element.className is ""
PASS element.className is ""
PASS element.className is " y 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\ty"
PASS element.className is " y"
Test invalid tokens
PASS element.classList.contains('') threw expected DOMException with code 12
PASS element.classList.contains('x y') threw expected DOMException with code 5
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 "x"
PASS element.classList.item(1) is "x"
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

