| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="polyfill.js"></script> |
| </head> |
| <body> |
| |
| <div id="container"> |
| <div id="container1"><div id="host1"></div></div> |
| <div id="container2"><div id="host2"></div></div> |
| </div> |
| <pre id="console"></pre> |
| |
| <script> |
| var shadowRoot1 = host1.webkitCreateShadowRoot(); |
| shadowRoot1.innerHTML = '<div id="target1">Element in Shadow DOM</div>'; |
| |
| var shadowRoot2 = host2.webkitCreateShadowRoot(); |
| var host3 = document.createElement('div'); |
| var shadowRoot3 = host3.webkitCreateShadowRoot(); |
| shadowRoot2.appendChild(host3); |
| shadowRoot3.innerHTML = '<div id="target2">Element in nested Shadow DOM</div>'; |
| |
| var target1 = shadowRoot1.getElementById('target1'); |
| var target2 = shadowRoot3.getElementById('target2'); |
| |
| // non-nested ShadowDOM case. |
| debug('Select text in non-nested ShadowDOM and remove an element containing shadow host.'); |
| debug('Then the anchor node of the selection should become be the parent element of the removed element (container).'); |
| eventSender.mouseMoveTo(target1.offsetLeft + 2, target1.offsetTop + target1.offsetHeight / 2); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(target1.offsetLeft + target1.offsetWidth - 2, target1.offsetTop + target1.offsetHeight / 2); |
| eventSender.mouseUp(); |
| container.removeChild(container1); |
| shouldBe('window.getSelection().anchorNode', 'container'); |
| debug(''); |
| |
| // nested ShadowDOM case. |
| debug('Select text in nested ShadowDOM and remove an element containing shadow host.'); |
| debug('In this case, the anchor node of the selection should also become be the parent element of the removed element (container).'); |
| eventSender.mouseMoveTo(target2.offsetLeft + 2, target2.offsetTop + target2.offsetHeight / 2); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(target2.offsetLeft + target2.offsetWidth - 2, target2.offsetTop + target2.offsetHeight / 2); |
| eventSender.mouseUp(); |
| container.removeChild(container2); |
| shouldBe('window.getSelection().anchorNode', 'container'); |
| debug(''); |
| </script> |
| |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| |
| </html> |