4 <script src="../../js/resources/js-test-pre.js"></script>
8 This tests the correctness of includers of forwarded children.
9 Note that this test needs internals object thus cannot run outside DRT.
11 <div id="container"></div>
13 var container = document.getElementById("container");
15 var shadowRoot = null;
17 var elementWithoutShadow = document.createElement("div");
18 container.appendChild(elementWithoutShadow);
19 var childOfElementWithoutShadow = document.createElement("span");
20 elementWithoutShadow.appendChild(childOfElementWithoutShadow);
22 shouldBe("internals.includerFor(childOfElementWithoutShadow)", "null");
24 var elementWithShadow = document.createElement("div");
25 container.appendChild(elementWithShadow);
26 var shadowRootOfElementWithShadow = internals.ensureShadowRoot(elementWithShadow);
27 shadowRootOfElementWithShadow.appendChild(document.createElement("div")); // Gives non-content child.
28 var childOfElementWithShadow = document.createElement("span");
29 elementWithShadow.appendChild(childOfElementWithShadow);
31 shouldBe("internals.includerFor(childOfElementWithShadow)", "null");
33 var elementWithShadowContent = document.createElement("div");
34 container.appendChild(elementWithShadowContent);
35 var shadowRootOfElementWithShadowContent = internals.ensureShadowRoot(elementWithShadowContent);
36 var shadowContentOfElementWithShadowContent = internals.createShadowContentElement(document);
37 shadowRootOfElementWithShadowContent.appendChild(shadowContentOfElementWithShadowContent);
38 var childOfElementWithShadowContent = document.createElement("span");
39 elementWithShadowContent.appendChild(childOfElementWithShadowContent);
41 shouldBe("internals.includerFor(childOfElementWithShadowContent)", "shadowContentOfElementWithShadowContent");
44 // Testing dynamic change
46 var movingChild = childOfElementWithShadowContent;
49 elementWithShadowContent.removeChild(movingChild);
50 shouldBe("internals.includerFor(movingChild)", "null");
52 // Moving to content-less tree
53 elementWithShadow.appendChild(movingChild);
54 shouldBe("internals.includerFor(movingChild)", "null");
55 elementWithShadow.removeChild(movingChild);
57 // Moving to another content-full tree
58 var anotherElementWithShadowContent = document.createElement("div");
59 container.appendChild(anotherElementWithShadowContent);
60 var anotherShadowRootOfElementWithShadowContent = internals.ensureShadowRoot(anotherElementWithShadowContent);
61 var anotherShadowContentOfElementWithShadowContent = internals.createShadowContentElement(document);
62 anotherShadowRootOfElementWithShadowContent.appendChild(anotherShadowContentOfElementWithShadowContent);
64 anotherElementWithShadowContent.appendChild(movingChild);
66 shouldBe("internals.includerFor(movingChild)", "anotherShadowContentOfElementWithShadowContent");
68 <script src="../../js/resources/js-test-post.js"></script>