<!DOCTYPE html>
<html>
<head>
    <title>CSS Scoping Module Level 1 - ::before and ::after pseudo class' contents on a node assigned to a slot element must be rendered</title>
    <link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org"/>
    <link rel="help" href="http://www.w3.org/TR/css-scoping-1/#selectors-data-model">
    <link rel="match" href="reference/green-box.html"/>
</head>
<body>
    <style>
        my-host {
            display: block;
            width: 100px;
            height: 100px;
            background: red;
        }
        div {
            display: block;
            background: red;
            line-height: 0px;
            width: 100%;
            height: 50px;
        }
        [slot=foo]::before,
        [slot=foo]::after {
            display: block;
            content: "";
            width: 100%;
            height: 25px;
        }
        [slot=foo]::before,
        [slot=foo]::after {
            background: green;
        }
        [slot=bar]::before,
        [slot=bar]::after {
            background: yellow;
        }
    </style>
    <p>Test passes if you see a single 100px by 100px green box below.</p> 
    <my-host>
        <div slot="foo"></div>
        <div slot="bar"></div>
        <div slot="foo"></div>
    </my-host>
    <script>

        try {
            var shadowHost = document.querySelector('my-host');
            shadowRoot = shadowHost.attachShadow({mode: 'open'});
            shadowRoot.innerHTML = '<slot name="foo"></slot>';
        } catch (exception) {
            document.body.appendChild(document.createTextNode(exception));
        }

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