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

<p>When we modify host children and get distributed nodes in nested ShadowDOM, distribution should occur from the host.</p>

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

<script>
jsTestIsAsync = true;

var shadowRoot11 = host1.createShadowRoot();
shadowRoot11.innerHTML = '<div></div><shadow></shadow>';
var div1 = shadowRoot11.firstChild;
var shadow1 = shadowRoot11.lastChild;

var shadowRoot12 = host1.createShadowRoot();
shadowRoot12.innerHTML = '<div><shadow></shadow></div>';
var host2 = shadowRoot12.firstChild;

var shadowRoot21 = host2.createShadowRoot();
shadowRoot21.innerHTML = '<content></content>';

var shadowRoot22 = host2.createShadowRoot();
shadowRoot22.innerHTML = '<div><shadow></shadow></div>';
var host3 = shadowRoot22.firstChild;

var shadowRoot31 = host3.createShadowRoot();
shadowRoot31.innerHTML = '<content></content>';

var content = shadowRoot31.firstChild;

setTimeout(function() {
    debug('Adds a div to ShadowRoot.');
    addedDiv = document.createElement('div');
    shadowRoot11.appendChild(addedDiv);
    shouldBe('content.getDistributedNodes().length', '2');
    shouldBe('content.getDistributedNodes().item(0)', 'div1');
    shouldBe('content.getDistributedNodes().item(1)', 'addedDiv');
    debug('');


    debug('Adds a div as fallback content, which should not be used.');
    anotherAddedDiv = document.createElement('div');
    shadow1.appendChild(anotherAddedDiv);
    shouldBe('content.getDistributedNodes().length', '2');
    shouldBe('content.getDistributedNodes().item(0)', 'div1');
    shouldBe('content.getDistributedNodes().item(1)', 'addedDiv');
    debug('');

    debug('Removes the first added div');
    addedDiv.remove();
    shouldBe('content.getDistributedNodes().length', '1');
    shouldBe('content.getDistributedNodes().item(0)', 'div1');
    debug('');

    debug('Removes the second added div');
    anotherAddedDiv.remove();
    shouldBe('content.getDistributedNodes().length', '1');
    shouldBe('content.getDistributedNodes().item(0)', 'div1');
    debug('');

    container.innerHTML = "";
    finishJSTest();
}, 0);
</script>
</body></html>
