<!DOCTYPE html>
<html>
<head>
    <script src="../../resources/js-test.js"></script>
</head>
<body>
    <script>
        const shadowHost = document.body.appendChild(document.createElement('div'));
        const shadowRoot = shadowHost.attachShadow({mode: 'closed'});
        shadowHost.innerHTML = '<b>hello</b><b slot="second">world</b>';
        shadowRoot.innerHTML = '<span><slot></slot> <slot name="second"></slot></span>';
        const shadowNode = shadowRoot.firstChild;
        const nodeInSlot = document.querySelector('b[slot=second]').firstChild;

        function selectionAddRange(startContainer, startOffset, endContainer, endOffset)
        {
            const range = document.createRange();
            range.setStart(startContainer, startOffset);
            range.setEnd(endContainer, endOffset);
            getSelection().addRange(range);
        }

        shouldBe("getSelection().setBaseAndExtent(document.body, 0, nodeInSlot, 5); selectionAddRange(shadowNode, 0, shadowRoot, 1); getSelection().focusNode", "nodeInSlot");

        shouldBeFalse("getSelection().selectAllChildren(document.body); getSelection().containsNode(shadowNode)");
        shouldBeFalse("getSelection().selectAllChildren(document.body); getSelection().containsNode(shadowNode, true)");

        getSelection().empty();
        document.body.removeChild(shadowHost);

        successfullyParsed = true;
    </script>
</html>
