chromium/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/dir-pseudo-class-in-has.html

<!DOCTYPE html>
<html class="reftest-wait">
<head>
    <link rel="author" title="Ryosuke Niwa" href="mailto:[email protected]"/>
    <link rel="help" href="https://drafts.csswg.org/selectors/#relational"/>
    <link rel="help" href="https://drafts.csswg.org/selectors/#dir-pseudo"/>
    <link rel="match" href="../../reference/ref-filled-green-100px-square.xht"/>
</head>
<body>
    <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
    <section><div id="ltr1" class="ltr"></div></section>
    <section id="ltr2" dir="rtl"><div class="ltr"><span></span></div></section>
    <section dir="ltr"><div class="ltr"><span></span></div></section>
    <section><div id="rtl1" class="rtl"><span></span></div></section>
    <section id="rtl2"><div class="rtl"><span></span></div></section>
    <style>
        div, section { width: 100px; height: 20px; }
        section { background: red; }
        .ltr:has(*:dir(ltr)) { background: green; }
        .ltr:has(*:dir(rtl)) { background: red; }
        .rtl:has(*:dir(rtl)) { background: green; }
        .rtl:has(*:dir(ltr)) { background: red; }
    </style>
    <script>
        requestAnimationFrame(() => {
            setTimeout(() => {
                ltr1.appendChild(document.createElement('span'));
                ltr2.dir = 'ltr';
                rtl1.dir = 'rtl';
                rtl2.dir = 'rtl';
                document.documentElement.className = '';
            }, 0);
        });
    </script>
</body>
</html>