<!DOCTYPE html>
<html>
<body>
<p>This tests selecting content starting in a shadow tree inside a non-editable region in an editable region to outside the editable region.<br>
To manually test, select "hello world WebKit" below by a mouse drag from the bottom right to the top left.<br>
WebKit should not extend the selection to outside the shadow tree.</p>
<div id="container" contenteditable>hello <div contenteditable="false">world</div></div>
<script>

const host = document.createElement('div');
container.lastChild.append(host);
const shadowRoot = host.attachShadow({mode: 'closed'});
shadowRoot.textContent = ' WebKit';

if (window.eventSender) {
    eventSender.dragMode = false;
    eventSender.mouseMoveTo(container.offsetLeft + container.offsetWidth - 5, container.offsetTop + container.offsetHeight - 5);
    eventSender.mouseDown();
    eventSender.mouseMoveTo(container.offsetLeft + 1, container.offsetTop + 5);
    eventSender.mouseUp();
    if (getSelection().startContainer.getRootNode() != document)
        document.write("The start container's root node was not the document");
    if (getSelection().startContainer != getSelection().endContainer)
        document.write("The end container was different from the start container");
    if (getSelection().getRangeAt(0).startContainer.getRootNode() != document)
        document.write("The range's start container's root node was not the document");
    if (getSelection().getRangeAt(0).endContainer != getSelection().getRangeAt(0).startContainer)
        document.write("The range's end container was different from its start container");
}

</script>
</body>
</html>
