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

<body>

<p>When an optgroup element became 'enabled' or not-'enabled', distribution should happen.</p>
<p>Since an optgroup element does not create a renderer, we cannot check this using reftest.</p>

<div id="container">
    <div id="host1">
        <optgroup id="optgroup1">optgroup 1</optgroup>
        <optgroup id="optgroup2">optgroup 2</optgroup>
    </div>

    <div id="host2">
        <optgroup id="optgroup3" disabled>optgroup 3</optgroup>
        <optgroup id="optgroup4" disabled>optgroup 4</optgroup>
    </div>
</div>

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

<script>
jsTestIsAsync = true;

var shadowRoot1 = host1.webkitCreateShadowRoot();
var shadowRoot2 = host2.webkitCreateShadowRoot();

shadowRoot1.innerHTML = '<content select=":enabled">';
shadowRoot2.innerHTML = '<content select=":enabled">';

var content1 = shadowRoot1.querySelector('content');
var content2 = shadowRoot2.querySelector('content');

setTimeout(function() {
    optgroup2.setAttribute('disabled', true);
    optgroup4.removeAttribute('disabled');

    nodes1 = content1.getDistributedNodes();
    shouldBe('nodes1.length', '1');
    shouldBe('nodes1.item(0).innerHTML', '"optgroup 1"');

    nodes2 = content2.getDistributedNodes();
    shouldBe('nodes2.length', '1');
    shouldBe('nodes2.item(0).innerHTML', '"optgroup 4"');

    container.innerHTML = "";
    finishJSTest();
}, 0);

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