| <!DOCTYPE html> |
| <html> |
| <body> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="../../fast/dom/resources/event-sender-util.js"></script> |
| <script src="../../fast/dom/shadow/resources/polyfill.js"></script> |
| |
| <p>This test confirms that selecting an element having Shadow DOM doesn't cross editing boundaries errornously.</p> |
| |
| <div> |
| <div id="before">BEFORE</div> |
| <div id="host" contenteditable>HOST</div> |
| <div id="after">AFTER</div> |
| </div> |
| |
| <pre id="console"></pre> |
| |
| <script> |
| |
| var shadowRoot = host.webkitCreateShadowRoot(); |
| shadowRoot.innerHTML = "SHADOW DOM"; |
| |
| var selection = shadowRoot.getSelection(); |
| |
| debug('Move mouse from BEFORE to HOST'); |
| |
| mouseMoveToElem(before); |
| eventSender.mouseDown(); |
| mouseMoveToElem(host); |
| eventSender.mouseUp(); |
| shouldBeNull('selection.anchorNode'); |
| shouldBeNull('selection.focusNode'); |
| |
| // Check crash won't happen. |
| document.execCommand('delete'); |
| debug('PASS document.execCommand("delete") did not crash.'); |
| |
| debug(''); |
| debug('Move mouse from AFTER to HOST'); |
| |
| mouseMoveToElem(after); |
| eventSender.mouseDown(); |
| mouseMoveToElem(host); |
| eventSender.mouseUp(); |
| shouldBeNull('selection.anchorNode'); |
| shouldBeNull('selection.focusNode'); |
| // Check crash won't happen. |
| document.execCommand('delete'); |
| debug('PASS document.execCommand("delete") did not crash.'); |
| |
| var successfullyParsed = true; |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| |
| </html> |