Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / editing / shadow / shadow-selection-not-exported.html
blob97f99bf4bd82f4351f8452cc74cb004b36e74808
1 <!DOCTYPE html>
2 <html>
3 <pre id="console"></pre>
5 <p>This test ensures shadow root won't expose to JS layer.<p>
6 <div id='div1'>BEFORE</div>
7 <div id='container'>CONTAINER</div>
8 <div id='div4'>AFTER</di>
9 <script src="../editing.js"></script>
10 <script src="../../resources/js-test.js"></script>
11 <script>
12 if (window.testRunner)
13 testRunner.dumpAsText();
15 var container = document.getElementById('container');
16 var shadowRoot = container.createShadowRoot();
18 var div2 = document.createElement('div');
19 div2.appendChild(document.createTextNode('IN SHADOW TREE 1'));
20 var div3 = document.createElement('div');
21 div3.appendChild(document.createTextNode('IN SHADOW TREE 2'));
23 shadowRoot.appendChild(div2);
24 shadowRoot.appendChild(div3);
26 function midX(element) {
27 return element.offsetLeft + element.offsetWidth / 2;
30 function midY(element) {
31 return element.offsetTop + element.offsetHeight / 2;
34 function assertNotInShadow(element) {
35 if (element == div2 || element == div2.firstChild)
36 return false;
37 if (element == div3 || element == div3.firstChild)
38 return false;
39 return true;
42 if (window.eventSender) {
43 // Try select from outside of a shadow subtree to inside of a shadow subtree.
44 eventSender.mouseMoveTo(midX(div1), midY(div1));
45 eventSender.mouseDown();
46 eventSender.mouseMoveTo(midX(div2), midY(div2));
47 eventSender.mouseUp();
49 var selection = window.getSelection();
50 shouldBe('assertNotInShadow(selection.anchorNode)', 'true');
51 shouldBe('assertNotInShadow(selection.focusNode)', 'true');
53 selection.removeAllRanges();
55 // Try select from inside of a shadow subtree to outside of a shadow subtree.
56 eventSender.mouseMoveTo(midX(div3), midY(div3));
57 eventSender.mouseDown();
58 eventSender.mouseMoveTo(midX(div4), midY(div4));
59 eventSender.mouseUp();
61 selection = window.getSelection();
62 shouldBe('assertNotInShadow(selection.anchorNode)', 'true');
63 shouldBe('assertNotInShadow(selection.focusNode)', 'true');
64 selection.removeAllRanges();
66 // Try select inside shadow subtrees.
67 eventSender.mouseMoveTo(midX(div2), midY(div2));
68 eventSender.mouseDown();
69 eventSender.mouseMoveTo(midX(div3), midY(div3));
70 eventSender.mouseUp();
72 selection = window.getSelection();
73 shouldBe('assertNotInShadow(selection.anchorNode)', 'true');
74 shouldBe('assertNotInShadow(selection.focusNode)', 'true');
75 selection.removeAllRanges();
78 var successfullyParsed = true;
79 </script>
80 </html>