| 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> | 
|  |