blob: c0e2d9212997c8cc7a38e1caecc02d9af4ae563f [file] [log] [blame]
<!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 name='slot1'></slot>
<slot name='slot2'></slot>
<slot name='slot3'></slot>
</template>
<div id='child1' slot='slot1'></div>
<div id='child2' slot='slot1'></div>
<div id='child3' slot='slot2'></div>
<div id='child4' slot='nonexistent'></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]');
test(() => {
assert_equals(host.assignedSlot, null);
assert_equals(child1.assignedSlot, slot1);
assert_equals(child2.assignedSlot, slot1);
assert_equals(child3.assignedSlot, slot2);
assert_equals(child4.assignedSlot, null);
}, "assignedSlot");
test(() => {
assert_array_equals(slot1.assignedNodes(), [child1, child2]);
assert_array_equals(slot2.assignedNodes(), [child3]);
assert_array_equals(slot3.assignedNodes(), []);
}, "assignedNodes");
test(() => {
assert_array_equals(slot1.assignedNodes({flatten: true}), [child1, child2]);
assert_array_equals(slot2.assignedNodes({flatten: true}), [child3]);
assert_array_equals(slot3.assignedNodes({flatten: true}), []);
}, "assignedNodes({flatten: true})");
</script>