DOMTokenList update steps for classList don't follow the spec
[WebKit-https.git] / LayoutTests / fast / dom / HTMLElement / class-list-expected.txt
1 Tests the classList attribute and its properties.
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 Tests from http://simon.html5.org/test/html/dom/reflecting/DOMTokenList/
7 PASS String(element.classList) is "x"
8 PASS element.classList.length is 0
9 PASS element.classList.length is 1
10 PASS element.classList.length is 1
11 PASS element.classList.length is 2
12 PASS element.className is "x"
13 PASS element.className is "x"
14 PASS element.className is "x  x"
15 PASS element.className is "y x"
16 PASS element.className is ""
17 PASS element.className is ""
18 PASS element.className is "y"
19 PASS element.className is "y"
20 Ensure that we can handle empty class name correctly
21 PASS element.classList.toggle('x') is true
22 PASS element.className is "x"
23 PASS element.classList.toggle('x') is false
24 PASS element.className is ""
25 PASS element.classList.contains('x') is false
26 PASS element.classList[1] is undefined.
27 Test toggle with force argument
28 PASS element.classList.toggle('x', true) is true
29 PASS element.className is "x"
30 PASS element.classList.toggle('x', true) is true
31 PASS element.className is "x"
32 PASS element.classList.toggle('x', false) is false
33 PASS element.className is ""
34 PASS element.classList.toggle('x', false) is false
35 PASS element.className is ""
36 PASS element.classList.toggle('', true) threw expected DOMException with code 12
37 PASS element.classList.toggle('x y', false) threw expected DOMException with code 5
38 Testing add in presence of trailing white spaces.
39 PASS element.className is "x y"
40 PASS element.className is "x y"
41 PASS element.className is "y"
42 Test invalid tokens
43 PASS element.classList.contains('') threw expected DOMException with code 12
44 PASS element.classList.contains('x y') threw expected DOMException with code 5
45 PASS element.classList.add('') threw expected DOMException with code 12
46 PASS element.classList.add('x y') threw expected DOMException with code 5
47 PASS element.classList.remove('') threw expected DOMException with code 12
48 PASS element.classList.remove('x y') threw expected DOMException with code 5
49 PASS element.classList.toggle('') threw expected DOMException with code 12
50 PASS element.classList.toggle('x y') threw expected DOMException with code 5
51 PASS element.classList.toggle() threw exception TypeError: Not enough arguments.
52 Indexing
53 PASS element.classList[0] is "x"
54 PASS element.classList.item(0) is "x"
55 PASS element.classList[1] is undefined.
56 PASS element.classList.item(1) is null
57 PASS element.classList[1] is "y"
58 PASS element.classList.item(1) is "y"
59 PASS element.classList[0] is undefined.
60 PASS element.classList.item(0) is null
61 PASS element.classList[4] is undefined.
62 PASS element.classList.item(4) is null
63 PASS element.classList[-1] is undefined.
64 PASS element.classList.item(-1) is null
65 PASS element.classList.item() threw exception TypeError: Not enough arguments.
66 Test case since DOMTokenList is case sensitive
67 PASS element.classList.contains('x') is true
68 PASS element.classList.contains('X') is false
69 PASS element.classList[0] is "x"
70 PASS element.classList.contains() threw exception TypeError: Not enough arguments.
71 PASS element.classList.contains('X') is true
72 PASS element.classList.contains('x') is false
73 PASS element.classList[0] is "X"
74 Testing whitespace
75 PASS element.classList.length is 2
76 PASS element.classList.length is 2
77 PASS element.classList.length is 2
78 PASS element.classList.length is 2
79 PASS element.classList.length is 2
80 DOMTokenList presence and type
81 PASS 'undefined' != typeof DOMTokenList is true
82 PASS typeof DOMTokenList.prototype is "object"
83 PASS typeof element.classList is "object"
84 PASS element.classList.constructor is DOMTokenList
85 PASS element.classList === element.classList is true
86 PASS document.body.classList.contains("FAIL") is true
87 PASS document.body.className is ""
88 Variadic calls
89 PASS element.className is "a b"
90 PASS element.className is "a b c"
91 PASS element.className is "a b c null d undefined 0 false"
92 PASS element.className is "a b"
93 PASS element.classList.add('a', 'b', '') threw expected DOMException with code 12
94 PASS element.className is ""
95 PASS element.classList.add('a', 'b', 'c d') threw expected DOMException with code 5
96 PASS element.className is ""
97 PASS element.classList.add("a", {toString: function() { throw new Error("user error"); }}, "b") threw exception Error: user error.
98 PASS element.className is ""
99 PASS element.classList.add() did not throw exception.
100 PASS observer.takeRecords().length is 1
101 PASS element.className is "b d"
102 PASS element.className is "d"
103 PASS element.className is "a b c"
104 PASS element.classList.remove('a', 'b', '') threw expected DOMException with code 12
105 PASS element.className is "a b"
106 PASS element.classList.remove("a", {toString: function() { throw new Error("user error"); }}, "b") threw exception Error: user error.
107 PASS element.className is "a b"
108 PASS element.classList.remove('a', 'b', 'c d') threw expected DOMException with code 5
109 PASS element.className is "a b"
110 PASS element.classList.remove() did not throw exception.
111 PASS observer.takeRecords().length is 1
112 PASS successfullyParsed is true
113
114 TEST COMPLETE
115