<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
    <!-- Testing that in XHTML documents CSS selectors use case-sensitive tag name matching. -->
    <div id="content">
        <div style="display: none">
            <ul>
                <li>
                    <textarea id="textarea1"></textarea>
                    <SPAN id="upper1"></SPAN>
                </li>
            </ul>
            <unknownTag id="unknownTag1"></unknownTag>
        </div>
    </div>
    <script>
    <![CDATA[ 
        var content = document.getElementById("content");
        function checkMatchingSelector(selector, elementId) {
            shouldBe("content.querySelector('" + selector + "')", "document.getElementById('" + elementId + "')");
            shouldBeTrue("document.getElementById('" + elementId + "').webkitMatchesSelector('" + selector + "')");
        }

        function checkNonMatchingSelector(selector) {
            shouldBeNull("content.querySelector('" + selector + "')");
        }

        checkMatchingSelector("div ul li SPAN", "upper1");
        checkMatchingSelector("div ul li textarea + SPAN", "upper1");
        checkNonMatchingSelector("div ul li span");
        checkNonMatchingSelector("div ul li spAn");
        checkNonMatchingSelector("DIV ul li span");
        checkNonMatchingSelector("div UL li span");

        checkMatchingSelector("unknownTag", "unknownTag1");
        checkMatchingSelector("div unknownTag", "unknownTag1");
        checkMatchingSelector("ul + unknownTag", "unknownTag1");
        checkNonMatchingSelector("DIV unknownTag");
        checkNonMatchingSelector("UL + unknownTag");
        checkNonMatchingSelector("unknownTag1");
        checkNonMatchingSelector("unknowntag");
        checkNonMatchingSelector("Unknowntag");
        checkNonMatchingSelector("div unknowntag");
    ]]> 
    </script>
    <script src="../../../resources/js-test-post.js"></script>
</body>
</html>
