<!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'>
    <slot id='slot1'></slot>
    <slot id='slot2'></slot>
    <slot id='slot3' name='slot3'></slot>
  </template>
  <div id='child1' slot='nonexistent'></div>
  <div id='child2'></div>
  <div id='child3' slot='slot3'></div>
  <div id='child4'></div>
</div>
<script>
'use strict';
convertTemplatesToShadowRootsWithin(host);
removeWhiteSpaceOnlyTextNodes(host);
document.body.offsetLeft;

const slot1 = host.shadowRoot.querySelector('#slot1');
const slot2 = host.shadowRoot.querySelector('#slot2');
const slot3 = host.shadowRoot.querySelector('#slot3');

test(() => {
  assert_equals(child1.assignedSlot, null);
  assert_equals(child2.assignedSlot, slot1);
  assert_equals(child3.assignedSlot, slot3);
  assert_equals(child4.assignedSlot, slot1);
}, "assignedSlot");

test(() => {
  assert_array_equals(slot1.assignedNodes(), [child2, child4]);
  assert_array_equals(slot2.assignedNodes(), []);
  assert_array_equals(slot3.assignedNodes(), [child3]);
}, "assignedNodes");

test(() => {
  assert_array_equals(slot1.assignedNodes({flatten: true}), [child2, child4]);
  assert_array_equals(slot2.assignedNodes({flatten: true}), []);
  assert_array_equals(slot3.assignedNodes({flatten: true}), [child3]);
}, "getDistributedNodes");
</script>
