<!DOCTYPE html>
<html>
<head>
    <title>Variables work in ::before/::after pseudos</title>

    <meta rel="author" title="Kevin Babbitt">
    <meta rel="author" title="Greg Whitworth">
    <link rel="author" title="Microsoft Corporation" href="http://microsoft.com" />
    <link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact/">
    <link rel="help" href="http://www.w3.org/TR/css-variables-1/#defining-variables">

    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>

    <style>
        :root {
            --color: green;
            --color2: red;
        }
        div::before {
            content: '[before]';
        }
        div::after {
            content: '[after]';
        }

        #div1 {
            color: red;
        }
        #div1::before, #div1::after {
            color: var(--color2);
            --color2: green;
        }

        #div2 {
            color: var(--color2);
        }
        #div2::before, #div2::after {
            color: var(--color);
        }

        #div3 {
            color: var(--color);
        }
        #div3::before, #div3::after {
            --color: red;
        }
    </style>

    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
    <span id="control" style="color: green;"></span>

<script>
    "use strict";

    [...document.querySelectorAll("div")].forEach(function (div) {
        test( function () {
            const expectedColor = getComputedStyle(document.querySelector("#control")).color;
            var actualBeforeColor = window.getComputedStyle(div, ':before').getPropertyValue('color');
            var actualAfterColor = window.getComputedStyle(div, ':after').getPropertyValue('color');
            assert_equals(actualBeforeColor, expectedColor);
            assert_equals(actualAfterColor, expectedColor);
        }, div.getAttribute("id"));
    });
</script>

</body>
</html>
