chromium/third_party/blink/web_tests/fast/xpath/node-name-case-sensitivity.html

<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<p id="sometext">
<STRONG>strong</STRONG><strong>strong</strong><FOO>FOO</FOO><foo>foo</foo>
</p>
<div id="console"></div>
<script type="text/javascript">

    function testHTML(query, expectedCount)
    {
        res = document.evaluate(query, document, function() { return "http://www.w3.org/1999/xhtml" }, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
        debug("HTML " + query);
        shouldBe('res.snapshotLength', expectedCount);
    }

    function testXML(query, expectedCount)
    {
        res = doc.evaluate(query, doc, function() { return "http://www.w3.org/1999/xhtml" }, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
        debug("XML " + query);
        shouldBe('res.snapshotLength', expectedCount);
    }

    testHTML('//*[@id="sometext"]//strong', '2');
    testHTML('//*[@id="sometext"]//Strong', '2');
    testHTML('//*[@id="Sometext"]//strong', '0');
    testHTML('//*[@id="sometext"]//foo', '2');
    testHTML('//*[@id="sometext"]//FOO', '2');

    var doc = (new DOMParser).parseFromString('<p id="sometext" xmlns="http://www.w3.org/1999/xhtml"><STRONG>strong</STRONG><strong>strong</strong><FOO xmlns="">FOO</FOO><foo xmlns="">foo</foo></p>', 'application/xhtml+xml');

    testXML('//*[@id="sometext"]//x:strong', '1');
    testXML('//*[@id="sometext"]//x:Strong', '0');
    testXML('//*[@id="Sometext"]//x:strong', '0');
    testXML('//*[@id="sometext"]//foo', '1');
    testXML('//*[@id="sometext"]//FOO', '1');

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