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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/reactions/DOMStringMap.html

Issue 2446483002: Import wpt@c5a14f553cba5f197743b9af605a84eddd8692a2 (Closed)
Patch Set: Created 4 years, 2 months 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
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Custom Elements: CEReactions on DOMStringMap interface</title>
5 <meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
6 <meta name="assert" content="setter and deleter of DOMStringMap interface must h ave CEReactions">
7 <meta name="help" content="https://html.spec.whatwg.org/#domstringmap">
8 <script src="/resources/testharness.js"></script>
9 <script src="/resources/testharnessreport.js"></script>
10 <script src="../resources/custom-elements-helpers.js"></script>
11 <script src="./resources/reactions.js"></script>
12 </head>
13 <body>
14 <div id="log"></div>
15 <script>
16
17 test(function () {
18 var element = define_new_custom_element(['data-foo']);
19 var instance = document.createElement(element.name);
20 assert_array_equals(element.takeLog().types(), ['constructed']);
21 instance.dataset.foo = 'bar';
22 var logEntries = element.takeLog();
23 assert_array_equals(logEntries.types(), ['attributeChanged']);
24 assert_attribute_log_entry(logEntries.last(), {name: 'data-foo', oldValue: n ull, newValue: 'bar', namespace: null});
25 }, 'setter on DOMStringMap must enqueue an attributeChanged reaction when adding an observed data attribute');
26
27 test(function () {
28 var element = define_new_custom_element(['data-bar']);
29 var instance = document.createElement(element.name);
30 assert_array_equals(element.takeLog().types(), ['constructed']);
31 instance.dataset.foo = 'bar';
32 assert_array_equals(element.takeLog().types(), []);
33 }, 'setter on DOMStringMap must not enqueue an attributeChanged reaction when ad ding an unobserved data attribute');
34
35 test(function () {
36 var element = define_new_custom_element(['data-foo']);
37 var instance = document.createElement(element.name);
38 instance.dataset.foo = 'bar';
39 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha nged']);
40 instance.dataset.foo = 'baz';
41 var logEntries = element.takeLog();
42 assert_array_equals(logEntries.types(), ['attributeChanged']);
43 assert_attribute_log_entry(logEntries.last(), {name: 'data-foo', oldValue: ' bar', newValue: 'baz', namespace: null});
44 }, 'setter on DOMStringMap must enqueue an attributeChanged reaction when mutati ng the value of an observed data attribute');
45
46 test(function () {
47 var element = define_new_custom_element(['data-foo']);
48 var instance = document.createElement(element.name);
49 instance.dataset.foo = 'bar';
50 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha nged']);
51 instance.dataset.foo = 'bar';
52 var logEntries = element.takeLog();
53 assert_array_equals(logEntries.types(), ['attributeChanged']);
54 assert_attribute_log_entry(logEntries.last(), {name: 'data-foo', oldValue: ' bar', newValue: 'bar', namespace: null});
55 }, 'setter on DOMStringMap must enqueue an attributeChanged reaction when mutati ng the value of an observed data attribute to the same value');
56
57 test(function () {
58 var element = define_new_custom_element(['data-zero']);
59 var instance = document.createElement(element.name);
60 instance.dataset.foo = 'bar';
61 assert_array_equals(element.takeLog().types(), ['constructed']);
62 instance.dataset.foo = 'baz';
63 assert_array_equals(element.takeLog().types(), []);
64 }, 'setter on DOMStringMap must not enqueue an attributeChanged reaction when mu tating the value of an unobserved data attribute');
65
66 test(function () {
67 var element = define_new_custom_element(['data-foo']);
68 var instance = document.createElement(element.name);
69 instance.dataset.foo = 'bar';
70 assert_array_equals(element.takeLog().types(), ['constructed', 'attributeCha nged']);
71 delete instance.dataset.foo;
72 var logEntries = element.takeLog();
73 assert_array_equals(logEntries.types(), ['attributeChanged']);
74 assert_attribute_log_entry(logEntries.last(), {name: 'data-foo', oldValue: ' bar', newValue: null, namespace: null});
75 }, 'deleter on DOMStringMap must enqueue an attributeChanged reaction when remov ing an observed data attribute');
76
77 test(function () {
78 var element = define_new_custom_element(['data-bar']);
79 var instance = document.createElement(element.name);
80 instance.dataset.foo = 'bar';
81 assert_array_equals(element.takeLog().types(), ['constructed']);
82 delete instance.dataset.foo;
83 assert_array_equals(element.takeLog().types(), []);
84 }, 'deleter on DOMStringMap must not enqueue an attributeChanged reaction when r emoving an unobserved data attribute');
85
86 test(function () {
87 var element = define_new_custom_element(['data-foo']);
88 var instance = document.createElement(element.name);
89 assert_array_equals(element.takeLog().types(), ['constructed']);
90 delete instance.dataset.foo;
91 assert_array_equals(element.takeLog().types(), []);
92 }, 'deleter on DOMStringMap must not enqueue an attributeChanged reaction when i t does not remove a data attribute');
93
94 </script>
95 </body>
96 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698