<!doctype html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<style id="style-container">
</style>
</head>
<body>
</body>
<script>
description('Test the parsing of :is(selectorList) for querySelector and style.');

function testInvalidSelector(selectorString) {
    var styleContainer = document.getElementById('style-container');
    styleContainer.innerHTML = ':is(' + selectorString + ') { }';
    const parsed = document.getElementById('style-container').sheet.cssRules.length == 1;
    debug(`selector '${styleContainer.innerHTML}' parsed: ${parsed ? "YES" : "NO"}`);
    styleContainer.innerHTML = '';
}

var validSelectors = [
    // Basic types.
    "*",
    "foobar",
    "#id",
    ".class",
    ":first-child",
    ":last-child",
    ":visited",

    // Pseudo elements.
    "::first-letter",
    "::first-line",
    "::before",
    "::after",

    // Compound selectors.
    "foobar#id.class",
    ".class:not(.notclass)",
    "#id:empty",

    // Complex selectors.
    "a > b",
    "a b",
    "a + b",
    "a ~ b",
    "a + b > c ~ d e + g",

    // Functional pseudo classes.
    ":-webkit-any(.selector,#tama,#hanayo,#midoriko)",
    ":not(:link)",
    ":not(:is(cocoa, cappuccino))",
    ":nth-child(even of a, b, c)",
];

var invalidSelectors = [
    // Not selectors.
    "",
    "    ",
    ",",

    ".123class",
    "#123id",
    "[]",
    "()",
    ")",
    "{}",
    "}",

    // Unbalanced parenthesized functional pseudo classes.
    ":not(",
    ":is(",
    ":nth-child(2n+1 of",
];

debug("2 :is(valid, invalid) selectors");
for (var i = 0; i < validSelectors.length; ++i) {
    for (var j = 0; j < invalidSelectors.length; ++j) {
        var selectorString = validSelectors[i] + ',' + invalidSelectors[j];
        testInvalidSelector(selectorString);
    }
}

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