Index: third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-fallback-api-3.html |
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-fallback-api-3.html b/third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-fallback-api-3.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b548272d28804805e3931c217ad0bb6c95707439 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/v1-slots-fallback-api-3.html |
@@ -0,0 +1,85 @@ |
+<!DOCTYPE html> |
+<script src='../../../resources/testharness.js'></script> |
+<script src='../../../resources/testharnessreport.js'></script> |
+<script src='resources/shadow-dom.js'></script> |
+<div id='host'> |
+ <template data-mode='open'> |
+ <div id='host2'> |
+ <template data-mode='open'> |
+ <slot name='slot-a'> |
+ <slot name='slot-b'> |
+ </slot> |
+ <div id='fallback-a'></div> |
+ </slot> |
+ </template> |
+ <slot name='slot1' slot='slot-b'> |
+ <div id='fallback1'></div> |
+ <slot name='slot2'> |
+ <div id='fallback2'></div> |
+ </slot> |
+ </slot> |
+ <slot name='slot3'> |
+ <slot name='slot4'> |
+ <div id='fallback3'></div> |
+ </slot> |
+ </slot> |
+ </div> |
+ </template> |
+ <div id='child1' slot='slot2'></div> |
+</div> |
+<script> |
+'use strict'; |
+convertTemplatesToShadowRootsWithin(host); |
+removeWhiteSpaceOnlyTextNodes(host); |
+document.body.offsetLeft; |
+ |
+const slot1 = host.shadowRoot.querySelector('[name=slot1]'); |
+const slot2 = host.shadowRoot.querySelector('[name=slot2]'); |
+const slot3 = host.shadowRoot.querySelector('[name=slot3]'); |
+const slot4 = host.shadowRoot.querySelector('[name=slot4]'); |
+const fallback1 = host.shadowRoot.querySelector('#fallback1'); |
+const fallback2 = host.shadowRoot.querySelector('#fallback2'); |
+const fallback3 = host.shadowRoot.querySelector('#fallback3'); |
+ |
+const host2 = host.shadowRoot.querySelector('#host2'); |
+ |
+const slot_a = host2.shadowRoot.querySelector('[name=slot-a]'); |
+const slot_b = host2.shadowRoot.querySelector('[name=slot-b]'); |
+const fallback_a = host2.shadowRoot.querySelector('#fallback-a'); |
+ |
+test(() => { |
+ assert_equals(child1.assignedSlot, slot2); |
+ assert_equals(fallback1.assignedSlot, null); |
+ assert_equals(fallback2.assignedSlot, null); |
+ assert_equals(fallback3.assignedSlot, null); |
+ |
+ assert_equals(slot1.assignedSlot, slot_b); |
+ assert_equals(slot2.assignedSlot, null); |
+ assert_equals(slot3.assignedSlot, null); |
+ assert_equals(slot4.assignedSlot, null); |
+ |
+ assert_equals(slot_a.assignedSlot, null); |
+ assert_equals(slot_b.assignedSlot, null); |
+ assert_equals(fallback_a.assignedSlot, null); |
+}, "assignedSlot"); |
+ |
+test(() => { |
+ assert_array_equals(slot1.getAssignedNodes(), []); |
+ assert_array_equals(slot2.getAssignedNodes(), [child1]); |
+ assert_array_equals(slot3.getAssignedNodes(), []); |
+ assert_array_equals(slot4.getAssignedNodes(), []); |
+ |
+ assert_array_equals(slot_a.getAssignedNodes(), []); |
+ assert_array_equals(slot_b.getAssignedNodes(), [slot1]); |
+}, "getAssignedNodes"); |
+ |
+test(() => { |
+ assert_array_equals(slot1.getDistributedNodes(), [fallback1, child1]); |
+ assert_array_equals(slot2.getDistributedNodes(), [child1]); |
+ assert_array_equals(slot3.getDistributedNodes(), [fallback3]); |
+ assert_array_equals(slot4.getDistributedNodes(), [fallback3]); |
+ |
+ assert_array_equals(slot_a.getDistributedNodes(), [fallback1, child1, fallback_a]); |
+ assert_array_equals(slot_b.getDistributedNodes(), [fallback1, child1]); |
+}, "getDistributedNodes"); |
+</script> |