<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
<script src="resources/shadow-dom.js"></script>
</head>
<body>

<div id="container"></div>
<pre id="console"></pre>

<script>
description("getDistributedNodes() should work out of Document");

function assertNodeList(nodeList, expectedNodes)
{
    window.nodeList = nodeList;
    window.expectedNodes = expectedNodes;
    shouldBe("nodeList.length", "expectedNodes.length");
    for (var i = 0; i < nodeList.length; ++i) {
        shouldBe("nodeList.item(" + i + ")", "expectedNodes[" + i + "]");
    }
}

var host = document.createElement('div');
var shadowRoot = host.webkitCreateShadowRoot();
var child = document.createElement('div');
var rootChild = document.createElement('div');
var content = document.createElement('content');

host.appendChild(child);
rootChild.appendChild(content);
shadowRoot.appendChild(rootChild);

debug('getDistributedNodes() should work out of Document');
assertNodeList(content.getDistributedNodes(), [child]);
debug('');

debug('When a content element is disconnected from ShadowRoot, it should not work.');
shadowRoot.removeChild(rootChild);
assertNodeList(content.getDistributedNodes(), []);
debug('');

debug('Reprojection case');
shadowRoot.appendChild(rootChild);
var shadowRoot2 = rootChild.webkitCreateShadowRoot();
var content2 = document.createElement('content');
var rootChildChild = document.createElement('div');
shadowRoot2.appendChild(content2);
rootChild.appendChild(rootChildChild);

assertNodeList(content.getDistributedNodes(), [child]);
assertNodeList(content2.getDistributedNodes(), [child, rootChildChild]);
debug('');

debug('rootChild is disconnected. Now content became inactive, so content element itself should be distributed.');
shadowRoot.removeChild(rootChild);
assertNodeList(content.getDistributedNodes(), []);
assertNodeList(content2.getDistributedNodes(), [content, rootChildChild]);
debug('');
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
