<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<div style="display:none">
    <div id="target1" data-æøå="WebKit!"></div>
    <div id="target2" data-Æøå="WebKit!"></div>
    <div id="target3" data-ÆØÅ="WebKit!"></div>
    <div id="target4" data-æøå="WebKit!" data-Æøå="WebKit!" data-ÆØÅ="WebKit!"></div>
</div>
</body>
<script>
description('Attribute matching is ASCII case-insensitive in HTML.');

function testSelector(selector, expected) {
    var allTargets = document.querySelectorAll('[id^=target]');
    for (var i = 0; i < allTargets.length; ++i) {
        if (expected.indexOf(i + 1) >= 0)
            shouldBeTrue('document.querySelectorAll(\'[id^=target]\')[' + i + '].matches(\'' + selector + '\')');
        else
            shouldBeFalse('document.querySelectorAll(\'[id^=target]\')[' + i + '].matches(\'' + selector + '\')');
    }
}

// Simple selectors.
testSelector('[data-æøå]', [1, 4]);
testSelector('[data-Æøå]', [2, 4]);
testSelector('[data-ÆØÅ]', [3, 4]);
testSelector('[data-æØå]', []);

testSelector('[Data-æøå="WebKit!"]', [1, 4]);
testSelector('[Data-Æøå="WebKit!"]', [2, 4]);
testSelector('[Data-ÆØÅ="WebKit!"]', [3, 4]);
testSelector('[Data-æØå="WebKit!"]', []);

testSelector('[DATA-æøå^="Web"]', [1, 4]);
testSelector('[DATA-Æøå^="Web"]', [2, 4]);
testSelector('[DATA-ÆØÅ^="Web"]', [3, 4]);
testSelector('[DATA-æØå^="Web"]', []);

// Complex selectors.
testSelector(':root :is(body, html) [data-æøå]', [1, 4]);
testSelector(':root :is(body, html) [data-Æøå]', [2, 4]);
testSelector(':root :is(body, html) [data-ÆØÅ]', [3, 4]);
testSelector(':root :is(body, html) [data-æØå]', []);

testSelector(':root :is(body, html) [Data-æøå="WebKit!"]', [1, 4]);
testSelector(':root :is(body, html) [Data-Æøå="WebKit!"]', [2, 4]);
testSelector(':root :is(body, html) [Data-ÆØÅ="WebKit!"]', [3, 4]);
testSelector(':root :is(body, html) [Data-æØå="WebKit!"]', []);

testSelector(':root :is(body, html) [DATA-æøå^="Web"]', [1, 4]);
testSelector(':root :is(body, html) [DATA-Æøå^="Web"]', [2, 4]);
testSelector(':root :is(body, html) [DATA-ÆØÅ^="Web"]', [3, 4]);
testSelector(':root :is(body, html) [DATA-æØå^="Web"]', []);

testSelector(':root :matches(body, html) [data-æøå]', [1, 4]);
testSelector(':root :matches(body, html) [data-Æøå]', [2, 4]);
testSelector(':root :matches(body, html) [data-ÆØÅ]', [3, 4]);
testSelector(':root :matches(body, html) [data-æØå]', []);

testSelector(':root :matches(body, html) [Data-æøå="WebKit!"]', [1, 4]);
testSelector(':root :matches(body, html) [Data-Æøå="WebKit!"]', [2, 4]);
testSelector(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]', [3, 4]);
testSelector(':root :matches(body, html) [Data-æØå="WebKit!"]', []);

testSelector(':root :matches(body, html) [DATA-æøå^="Web"]', [1, 4]);
testSelector(':root :matches(body, html) [DATA-Æøå^="Web"]', [2, 4]);
testSelector(':root :matches(body, html) [DATA-ÆØÅ^="Web"]', [3, 4]);
testSelector(':root :matches(body, html) [DATA-æØå^="Web"]', []);
</script>
<script src="../../resources/js-test-post.js"></script>
</html>
