OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Custom Elements: CEReactions on DOMTokenList interface</title> | 4 <title>Custom Elements: CEReactions on DOMTokenList interface</title> |
5 <meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"> | 5 <meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"> |
6 <meta name="assert" content="add, remove, toggle, replace, and the stringifier o
f DOMTokenList interface must have CEReactions"> | 6 <meta name="assert" content="add, remove, toggle, replace, and the stringifier o
f DOMTokenList interface must have CEReactions"> |
7 <meta name="help" content="https://dom.spec.whatwg.org/#node"> | 7 <meta name="help" content="https://dom.spec.whatwg.org/#node"> |
8 <script src="/resources/testharness.js"></script> | 8 <script src="/resources/testharness.js"></script> |
9 <script src="/resources/testharnessreport.js"></script> | 9 <script src="/resources/testharnessreport.js"></script> |
10 <script src="../resources/custom-elements-helpers.js"></script> | 10 <script src="../resources/custom-elements-helpers.js"></script> |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 var instance = document.createElement(element.name); | 119 var instance = document.createElement(element.name); |
120 instance.setAttribute('class', 'hello world'); | 120 instance.setAttribute('class', 'hello world'); |
121 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); | 121 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); |
122 instance.classList.toggle('world'); | 122 instance.classList.toggle('world'); |
123 var logEntries = element.takeLog(); | 123 var logEntries = element.takeLog(); |
124 assert_array_equals(logEntries.types(), ['attributeChanged']); | 124 assert_array_equals(logEntries.types(), ['attributeChanged']); |
125 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo world', newValue: 'hello', namespace: null}); | 125 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo world', newValue: 'hello', namespace: null}); |
126 }, 'toggle on DOMTokenList must enqueue an attributeChanged reaction when removi
ng a value from an attribute'); | 126 }, 'toggle on DOMTokenList must enqueue an attributeChanged reaction when removi
ng a value from an attribute'); |
127 | 127 |
128 test(function () { | 128 test(function () { |
129 var element = define_new_custom_element(['lang']); | |
130 var instance = document.createElement(element.name); | |
131 instance.setAttribute('class', 'hello world'); | |
132 assert_array_equals(element.takeLog().types(), ['constructed']); | |
133 instance.classList.toggle('world'); | |
134 assert_array_equals(element.takeLog().types(), []); | |
135 }, 'remove on DOMTokenList must not enqueue an attributeChanged reaction when re
moving a value from an unobserved attribute'); | |
136 | |
137 test(function () { | |
138 var element = define_new_custom_element(['class']); | 129 var element = define_new_custom_element(['class']); |
139 var instance = document.createElement(element.name); | 130 var instance = document.createElement(element.name); |
140 instance.setAttribute('class', 'hello'); | 131 instance.setAttribute('class', 'hello'); |
141 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); | 132 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); |
142 instance.classList.replace('hello', 'world'); | 133 instance.classList.replace('hello', 'world'); |
143 var logEntries = element.takeLog(); | 134 var logEntries = element.takeLog(); |
144 assert_array_equals(logEntries.types(), ['attributeChanged']); | 135 assert_array_equals(logEntries.types(), ['attributeChanged']); |
145 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo', newValue: 'world', namespace: null}); | 136 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo', newValue: 'world', namespace: null}); |
146 }, 'replace on DOMTokenList must enqueue an attributeChanged reaction when repla
cing a value in an attribute'); | 137 }, 'replace on DOMTokenList must enqueue an attributeChanged reaction when repla
cing a value in an attribute'); |
147 | 138 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); | 201 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha
nged']); |
211 instance.classList = 'hello'; | 202 instance.classList = 'hello'; |
212 var logEntries = element.takeLog(); | 203 var logEntries = element.takeLog(); |
213 assert_array_equals(logEntries.types(), ['attributeChanged']); | 204 assert_array_equals(logEntries.types(), ['attributeChanged']); |
214 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo', newValue: 'hello', namespace: null}); | 205 assert_attribute_log_entry(logEntries.last(), {name: 'class', oldValue: 'hel
lo', newValue: 'hello', namespace: null}); |
215 }, 'the stringifier of DOMTokenList must enqueue an attributeChanged reaction wh
en the setter is called with the original value of the attribute'); | 206 }, 'the stringifier of DOMTokenList must enqueue an attributeChanged reaction wh
en the setter is called with the original value of the attribute'); |
216 | 207 |
217 </script> | 208 </script> |
218 </body> | 209 </body> |
219 </html> | 210 </html> |
OLD | NEW |