blob: 0f9527c4b78dd413800409d667d50da1d375b096 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test-pre.js"></script>
<script src="resources/polyfill.js"></script>
<div id="wrapper"></div>
<pre id="console"></pre>
<script>
function createDivWithId(id)
{
var div = document.createElement('div');
div.id = id;
return div;
}
description("Tests to ensure ShadowRoot.getElementById works even if a ShadowRoot is orphan.");
var host = document.createElement('div');
var shadowRoot = host.webkitCreateShadowRoot();
var shadowChild1 = createDivWithId('child1');
var shadowChild2 = createDivWithId('child2');
var hostChild1 = createDivWithId('child3');
var hostChild2 = createDivWithId('child4');
host.appendChild(hostChild1);
host.appendChild(hostChild2);
shadowRoot.appendChild(shadowChild1);
shadowRoot.appendChild(shadowChild2);
shouldBe('shadowRoot.getElementById("child1")', 'shadowChild1');
shouldBe('shadowRoot.getElementById("child2")', 'shadowChild2');
shouldBe('shadowRoot.getElementById("child3")', 'null');
shouldBe('shadowRoot.getElementById("child4")', 'null');
shouldBe('document.getElementById("child1")', 'null');
shouldBe('document.getElementById("child2")', 'null');
shouldBe('document.getElementById("child3")', 'null');
shouldBe('document.getElementById("child4")', 'null');
debug('');
debug('Insert elements having the same id');
var shadowChild2_2 = createDivWithId('child2');
shadowRoot.appendChild(shadowChild2_2);
shouldBe('shadowRoot.getElementById("child2")', 'shadowChild2');
var shadowChild2_3 = createDivWithId('child2');
shadowRoot.insertBefore(shadowChild2_3, shadowRoot.firstChild);
shouldBe('shadowRoot.getElementById("child2")', 'shadowChild2_3');
debug('');
debug('Make the host in document');
wrapper.appendChild(host);
shouldBe('shadowRoot.getElementById("child1")', 'shadowChild1');
shouldBe('shadowRoot.getElementById("child2")', 'shadowChild2_3');
shouldBe('shadowRoot.getElementById("child3")', 'null');
shouldBe('shadowRoot.getElementById("child4")', 'null');
shouldBe('document.getElementById("child1")', 'null');
shouldBe('document.getElementById("child2")', 'null');
shouldBe('document.getElementById("child3")', 'child3');
shouldBe('document.getElementById("child4")', 'child4');
debug('');
debug('Add a child and make the host not in document');
var shadowChild5 = createDivWithId('child5');
shadowRoot.appendChild(shadowChild5);
wrapper.removeChild(host);
shouldBe('shadowRoot.getElementById("child5")', 'shadowChild5');
debug('');
wrapper.innerHTML = "";
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>