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>
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
)
37 if (element
== div3
|| element
== div3
.firstChild
)
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;