<!DOCTYPE html>
<html>
<head>
    <title>CSS Scoping Module Level 1 - :slotted pseudo element must allow selecting elements assigned to a slot element</title>
    <link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"/>
    <link rel="help" href="http://www.w3.org/TR/css-scoping-1/#slotted-pseudo">
    <link rel="match" href="reference/green-box.html"/>
</head>
<body>
    <style>
        my-host {
            display: block;
            width: 100px;
            height: 100px;
            color: red;
            background: green;
        }
        my-host > div, nested-host {
            display: block;
            width: 100px;
            height: 25px;
        }
    </style>
    <p>Test passes if you see a single 100px by 100px green box below.</p>
    <my-host>
        <div class="green">FAIL1</div>
        <myelem><span>FAIL2</span></myelem>
        <nested-host>
            <span>FAIL3</span>
        </nested-host>
        <another-host>
            <b>FAIL4</b>
        </another-host>
    </my-host>
    <script>

        try {
            var shadowHost = document.querySelector('my-host');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<slot></slot><style> ::slotted(.green), ::slotted(myelem) { color:green; } </style>';

            shadowHost = document.querySelector('nested-host');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<style> .mydiv ::slotted(*) { color:green; } </style><div class=mydiv><slot></slot></div>';

            shadowHost = document.querySelector('another-host');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<style> ::slotted(*) { color:green; } </style><slot></slot>';
        } catch (exception) {
            document.body.appendChild(document.createTextNode(exception));
        }

    </script>
</body>
</html>
