<!DOCTYPE html>
<html>
<head>
    <title>CSS Scoping Module Level 1 - :host rules must apply to the shadow host.</title>
    <link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"/>
    <link rel="help" href="http://www.w3.org/TR/css-scoping-1/#host-selector">
    <link rel="match" href="reference/green-box.html"/>
</head>
<body>
    <style>
        my-host, my-host2, my-host3, my-host4 {
            display: block;
            width: 100px;
            height: 25px;
        }
        my-host2 {
            background: green;
        }
        my-host3 {
            background: red;
            color: green;
        }
        my-host4 {
            background: green;
            color: green;
        }
    </style>
    <p>Test passes if you see a single 100px by 100px green box below.</p>
    <my-host>
        <div>FAIL</div>
    </my-host>
    <my-host2>
        <div>FAIL</div>
    </my-host2>
    <my-host3>
        <div>FAIL</div>
    </my-host3>
    <div class="container">
        <my-host4>
            <div>FAIL</div>
        </my-host4>
    </div>
    <script>

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

            shadowHost = document.querySelector('my-host2');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<style> :host { color: red; background: red; } div { color: green }</style><div>FAIL</div>';

            shadowHost = document.querySelector('my-host3');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<style> :host { background: green !important; color: green !important; } </style><div>FAIL</div>';

            shadowHost = document.querySelector('my-host4');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<style> .container :host { background: red !important; } </style><div>FAIL</div>';
        } catch (exception) {
            document.body.appendChild(document.createTextNode(exception));
        }

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