<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="../../resources/js-test-pre.js"></script>
<style>
[style="display:none"] * {
    color: rgb(0, 0, 0);
    background-color: rgb(0, 0, 0);
}
:lang(fr):lang(fr-be):lang(fr) #target1 {
    color: rgb(1, 2, 3);
}
:lang(fr):lang(fr-ca) #target2 {
    color: rgb(4, 5, 6);
}
:lang(fr-ch):lang(fr) #target3 {
    color: rgb(7, 8, 9);
}

:lang(es):lang(es-ar):lang(es) #target4 {
    color: rgb(10, 11, 12);
}
:lang(es):lang(es-co) #target5 {
    color: rgb(13, 14, 15);
}
:lang(es-mx):lang(es) #target6 {
    color: rgb(16, 17, 18);
}

:lang(xml):lang(xml-lang1):lang(xml) #target7 {
    color: rgb(19, 20, 21);
}
:lang(xml):lang(xml-lang2) #target8 {
    color: rgb(22, 23, 24);
}
:lang(xml-lang3):lang(xml) #target9 {
    color: rgb(25, 26, 27);
}

/* None of those should match. */
:lang(html):lang(html-lang):lang(html) * {
    background-color: rgb(1, 1, 1);
}
:lang(html):lang(html-lang) * {
    background-color: rgb(1, 1, 1);
}
:lang(html-lang):lang(html) * {
    background-color: rgb(1, 1, 1);
}
</style>
</head>
<body>
    <div style="display:none">
        <!-- HTML lang cases. -->
        <a lang="FR-BE">
            <b>
                <c id="target1"></c>
            </b>
        </a>
        <a lang="FR-CA">
            <b>
                <c id="target2"></c>
            </b>
        </a>
        <a lang="FR-CH">
            <b>
                <c id="target3"></c>
            </b>
        </a>

        <!-- XML lang cases. -->
        <a xml:lang="es-ar">
            <b>
                <c id="target4"></c>
            </b>
        </a>
        <a xml:lang="es-co">
            <b>
                <c id="target5"></c>
            </b>
        </a>
        <a xml:lang="es-mx">
            <b>
                <c id="target6"></c>
            </b>
        </a>

        <!-- XML + HTML lang cases. -->
        <a xml:lang="xml-lang1" lang="html-lang">
            <b>
                <c id="target7"></c>
            </b>
        </a>
        <a xml:lang="xml-lang2" lang="html-lang">
            <b>
                <c id="target8"></c>
            </b>
        </a>
        <a xml:lang="xml-lang3" lang="html-lang">
            <b>
                <c id="target9"></c>
            </b>
        </a>
    </div>
</body>
<script>
description('Verify selector specifying multiple :lang() pseudo class.');

debug("HTML lang only")
shouldBe('document.querySelectorAll(":lang(fr):lang(fr-be):lang(fr) #target1").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target1")).color', 'rgb(1, 2, 3)');
shouldBe('document.querySelectorAll(":lang(fr):lang(fr-ca) #target2").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target2")).color', 'rgb(4, 5, 6)');
shouldBe('document.querySelectorAll(":lang(fr):lang(fr-ch) #target3").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target3")).color', 'rgb(7, 8, 9)');

debug("XML lang only")
shouldBe('document.querySelectorAll(":lang(es):lang(es-ar):lang(es) #target4").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target4")).color', 'rgb(10, 11, 12)');
shouldBe('document.querySelectorAll(":lang(es):lang(es-co) #target5").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target5")).color', 'rgb(13, 14, 15)');
shouldBe('document.querySelectorAll(":lang(es):lang(es-mx) #target6").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target6")).color', 'rgb(16, 17, 18)');

debug("XML and HTML lang")
shouldBe('document.querySelectorAll(":lang(xml):lang(xml-lang1):lang(xml) #target7").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target7")).color', 'rgb(19, 20, 21)');
shouldBe('document.querySelectorAll(":lang(xml):lang(xml-lang2) #target8").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target8")).color', 'rgb(22, 23, 24)');
shouldBe('document.querySelectorAll(":lang(xml):lang(xml-lang3) #target9").length', '1');
shouldBeEqualToString('getComputedStyle(document.getElementById("target9")).color', 'rgb(25, 26, 27)');

</script>
<script src="../../resources/js-test-post.js"></script>
</html>
