blob: 009be7cf70b25186e495824947e8f15489bdb33d [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">
<div id="shadow_child1"></div>
<slot id="default_slot"></slot>
<slot id="slot1" name="slot1"></slot>
<div id="shadow_child2"></div>
</template>
<div id="child1" slot="slot1"></div>
Hello
<div id="child2"></div>
World
<div id="child3" slot="nonexistent"></div>
<!-- comment node -->
</div>
<script>
'use strict';
let n = createTestTree(host);
removeWhiteSpaceOnlyTextNodes(n.host);
let textHello = n.host.childNodes[1];
let textWorld = n.host.childNodes[3];
let commentNode = n.child3.nextSibling;
test(() => {
assert_equals(textHello.nodeValue.trim(), 'Hello');
assert_equals(textWorld.nodeValue.trim(), 'World');
assert_equals(commentNode.nodeType, Node.COMMENT_NODE);
assert_equals(textHello.assignedSlot, n.default_slot);
assert_equals(textWorld.assignedSlot, n.default_slot);
assert_equals(commentNode.assignedSlot, undefined, "Comment Node does not define assignedSlot");
assert_equals(n.child1.assignedSlot, n.slot1);
assert_equals(n.child2.assignedSlot, n.default_slot);
assert_equals(n.child3.assignedSlot, null);
}, "assignedSlot");
test(() => {
assert_array_equals(n.default_slot.assignedNodes({flatten: true}), [textHello, n.child2, textWorld]);
assert_array_equals(n.slot1.assignedNodes({flatten: true}), [n.child1]);
}, "assignedNodes");
</script>