Index: third_party/WebKit/LayoutTests/fast/dom/shadow/slotchange-event.html |
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-api-dynamic.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/slotchange-event.html |
similarity index 55% |
copy from third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-api-dynamic.html |
copy to third_party/WebKit/LayoutTests/fast/dom/shadow/slotchange-event.html |
index 5d51a088946ff107b36b221d01c36441d1d0a86f..424c0c402c7b1ada63c526462ee1aa996e1e026e 100644 |
--- a/third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-api-dynamic.html |
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/slotchange-event.html |
@@ -18,7 +18,9 @@ |
convertTemplatesToShadowRootsWithin(d1); |
removeWhiteSpaceOnlyTextNodes(d1); |
-test(() => { |
+async_test((test) => { |
+ var count = 0; |
+ |
const d1_s1 = d1_shadow.querySelector('slot'); |
const d1_d1_s1 = d1_d1_shadow.querySelector('slot'); |
@@ -28,15 +30,34 @@ test(() => { |
assert_array_equals(d1_d1_s1.getAssignedNodes(), [d1_s1]); |
assert_array_equals(d1_d1_s1.getAssignedNodes({'flatten': true}), [d2]); |
+ d1_s1.addEventListener('slotchange', (e) => { |
+ test.step(() => { |
+ assert_equals(e.target, d1_s1); |
+ assert_array_equals(d1_s1.getAssignedNodes(), [d2, d3]); |
+ assert_array_equals(d1_s1.getAssignedNodes({'flatten': true}), [d2, d3]); |
+ assert_array_equals(e.scoped, true); |
+ count++; |
+ // The order when a slotchange event is dispatched in the slots is not guranteed. |
+ if (count == 2) |
+ test.done(); |
+ }); |
+ }); |
+ |
+ d1_d1_s1.addEventListener('slotchange', (e) => { |
+ test.step(() => { |
+ assert_equals(e.target, d1_d1_s1); |
+ assert_array_equals(d1_d1_s1.getAssignedNodes(), [d1_s1]); |
+ assert_array_equals(d1_d1_s1.getAssignedNodes({'flatten': true}), [d2, d3]); |
+ assert_array_equals(e.scoped, true); |
+ count++; |
+ if (count == 2) |
+ test.done(); |
+ }); |
+ }); |
+ |
const d3 = document.createElement('div'); |
d3.setAttribute('id', 'd3'); |
d3.setAttribute('slot', 'd1-s1'); |
d1.appendChild(d3); |
- |
- assert_array_equals(d1_s1.getAssignedNodes(), [d2, d3]); |
- assert_array_equals(d1_s1.getAssignedNodes({'flatten': true}), [d2, d3]); |
- |
- assert_array_equals(d1_d1_s1.getAssignedNodes(), [d1_s1]); |
- assert_array_equals(d1_d1_s1.getAssignedNodes({'flatten': true}), [d2, d3]); |
-}, "Distribution should be re-calcualted when assigned nodes of a slot in the parent tree is changed"); |
+}, "slotchange event should be dispatched."); |
</script> |