<html>
<head id="head">
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>

description("This tests parsing and re-serialization of some CSS selectors.");

function parseThenSerializeRule(rule)
{
    var styleElement = document.getElementById("style");
    var head = document.getElementById("head");
    if (styleElement)
        head.removeChild(styleElement);

    styleElement = document.createElement("style");
    styleElement.id = "style";
    var head = document.getElementById("head");
    head.appendChild(styleElement);
    
    styleElement.appendChild(document.createTextNode(rule));
    return styleElement.sheet.cssRules[0].cssText;
}

function expectedSerializedLangSelector(selector)
{
    var args = /:lang\(([^)]+)/.exec(selector);
    if (!args || !args[1])
        return selector;

    args = args[1].split(/\s*,\s*/);
    var expected = ':lang(';
    for (var i = 0; i < args.length; ++i) {
        var arg = args[i];
        var hasQuotes = arg.indexOf('"') == 0 && arg.lastIndexOf('"') == arg.length - 1;
        if (!hasQuotes)
            expected += '"';
        expected += args[i];
        if (!hasQuotes)
            expected += '"';
        if (i < args.length - 1)
            expected += ', ';
    }
    expected += ')';
    return expected;
}

function testSelectorSerialization(selector, expectedSelector)
{
    shouldBe("parseThenSerializeRule('" + selector + " { }')", "'" + expectedSelector + " { }'");
}

function testSelectorRoundTrip(selector)
{
    var expected = selector.indexOf(":lang") == 0 ? expectedSerializedLangSelector(selector) : selector;
    shouldBe("parseThenSerializeRule('" + selector + " { }')", "'" + expected + " { }'");
}

testSelectorRoundTrip('*');
testSelectorRoundTrip('a');
testSelectorRoundTrip('#a');
testSelectorRoundTrip('.a');
testSelectorRoundTrip(':active');
testSelectorRoundTrip('[a]');
testSelectorRoundTrip('[a="b"]');
testSelectorRoundTrip('[a~="b"]');
testSelectorRoundTrip('[a|="b"]');
testSelectorRoundTrip('[a^="b"]');
testSelectorRoundTrip('[a$="b"]');
testSelectorRoundTrip('[a*="b"]');
testSelectorRoundTrip('[a="b" i]');
testSelectorRoundTrip('[a~="b" i]');
testSelectorRoundTrip('[a|="b" i]');
testSelectorRoundTrip('[a^="b" i]');
testSelectorRoundTrip('[a$="b" i]');
testSelectorRoundTrip('[a*="b" i]');

debug('');

shouldBe("parseThenSerializeRule('*|a { }')", "'a { }'");
shouldBe("parseThenSerializeRule('*|* { }')", "'* { }'");
testSelectorRoundTrip('|a');
testSelectorRoundTrip('|*');
testSelectorRoundTrip('[*|a]');
shouldBe("parseThenSerializeRule('[|a] { }')", "'[a] { }'");

debug('');

testSelectorRoundTrip('a:active');
testSelectorRoundTrip('a b');
testSelectorRoundTrip('a + b');
testSelectorRoundTrip('a ~ b');
testSelectorRoundTrip('a > b');

debug('');

testSelectorRoundTrip(":active");
testSelectorRoundTrip(":any-link");
testSelectorRoundTrip(":checked");
testSelectorRoundTrip(":disabled");
testSelectorRoundTrip(":empty");
testSelectorRoundTrip(":enabled");
testSelectorRoundTrip(":first-child");
testSelectorRoundTrip(":first-of-type");
testSelectorRoundTrip(":focus");
testSelectorRoundTrip(":hover");
testSelectorRoundTrip(":indeterminate");
testSelectorRoundTrip(":link");
testSelectorRoundTrip(":not(:placeholder-shown)");
testSelectorRoundTrip(":placeholder-shown");
testSelectorRoundTrip(":root");
testSelectorRoundTrip(":target");
testSelectorRoundTrip(":visited");

debug('');

testSelectorRoundTrip(':lang("*-ab")');
testSelectorRoundTrip(':lang("*-ab-")');
testSelectorRoundTrip(':lang("*-DE-1996")');

debug('');

testSelectorRoundTrip(":lang(a)");
testSelectorRoundTrip(":lang(a, b, c)");
testSelectorRoundTrip(":lang(fr, de, en, id)");
testSelectorRoundTrip(":lang(fr, fr-ca, fr-be)");
testSelectorRoundTrip(":lang(de-DE, de-DE-1996, de-Latn-DE, de-Latf-DE, de-Latn-DE-1996)");
testSelectorRoundTrip(":lang(de-CH, it-CH, fr-CH, rm-CH)");
testSelectorRoundTrip(":lang(de-DE, de-DE-1996, de-Latn-DE, de-Latf-DE, de-Latn-DE-1996, de-CH, it-CH, fr-CH, rm-CH)");

debug('');

testSelectorRoundTrip(":lang(a, a, a)");
testSelectorRoundTrip(":lang(en, en, en)");
testSelectorRoundTrip(":lang(en-us, en-us, en-us)");
testSelectorRoundTrip(":lang(de-DE-1996, de-DE-1996, de-DE-1996)");
testSelectorRoundTrip(":lang(de-Latn-DE-1996, de-Latn-DE-1996, de-Latn-DE-1996)");
testSelectorRoundTrip(":lang(java, java, java)");

debug('');

testSelectorRoundTrip(":not(a)");
testSelectorRoundTrip(":-webkit-any(a, b, p)");

debug('');

testSelectorRoundTrip("::after");
testSelectorRoundTrip("::before");
testSelectorRoundTrip("::first-letter");
testSelectorRoundTrip("::first-line");
testSelectorRoundTrip("::selection");

debug('');

testSelectorRoundTrip(":-webkit-any-link");
testSelectorRoundTrip(":-webkit-autofill");
testSelectorRoundTrip(":-webkit-drag");

debug('');

testSelectorSerialization(":nth-child(odd)", ":nth-child(2n+1)");
testSelectorSerialization(":nth-child(even)", ":nth-child(2n)");
testSelectorRoundTrip(":nth-child(n)");
testSelectorRoundTrip(":nth-child(-n)");
testSelectorRoundTrip(":nth-child(5)");
testSelectorRoundTrip(":nth-child(-5)");
testSelectorRoundTrip(":nth-child(5n+7)");
testSelectorRoundTrip(":nth-child(-5n+7)");
testSelectorRoundTrip(":nth-child(5n-7)");
testSelectorRoundTrip(":nth-child(-5n-7)");

debug('');

testSelectorSerialization(":nth-child(odd of .foo, :nth-child(odd))", ":nth-child(2n+1 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(even of .foo, :nth-child(odd))", ":nth-child(2n of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(n of .foo, :nth-child(odd))", ":nth-child(n of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(-n of .foo, :nth-child(odd))", ":nth-child(-n of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(5 of .foo, :nth-child(odd))", ":nth-child(5 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(-5 of .foo, :nth-child(odd))", ":nth-child(-5 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(5n+7 of .foo, :nth-child(odd))", ":nth-child(5n+7 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(-5n+7 of .foo, :nth-child(odd))", ":nth-child(-5n+7 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(5n-7 of .foo, :nth-child(odd))", ":nth-child(5n-7 of .foo, :nth-child(2n+1))");
testSelectorSerialization(":nth-child(-5n-7 of .foo, :nth-child(odd))", ":nth-child(-5n-7 of .foo, :nth-child(2n+1))");

debug('');

testSelectorSerialization(":nth-last-child(odd of .foo, :nth-last-child(odd))", ":nth-last-child(2n+1 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(even of .foo, :nth-last-child(odd))", ":nth-last-child(2n of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(n of .foo, :nth-last-child(odd))", ":nth-last-child(n of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(-n of .foo, :nth-last-child(odd))", ":nth-last-child(-n of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(5 of .foo, :nth-last-child(odd))", ":nth-last-child(5 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(-5 of .foo, :nth-last-child(odd))", ":nth-last-child(-5 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(5n+7 of .foo, :nth-last-child(odd))", ":nth-last-child(5n+7 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(-5n+7 of .foo, :nth-last-child(odd))", ":nth-last-child(-5n+7 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(5n-7 of .foo, :nth-last-child(odd))", ":nth-last-child(5n-7 of .foo, :nth-last-child(2n+1))");
testSelectorSerialization(":nth-last-child(-5n-7 of .foo, :nth-last-child(odd))", ":nth-last-child(-5n-7 of .foo, :nth-last-child(2n+1))");

debug('');

testSelectorRoundTrip(':matches(single)');
testSelectorRoundTrip(':matches(a, b, p)');
testSelectorRoundTrip(':matches(#alice, #bob, #chris)');
testSelectorRoundTrip(':matches(.selector, #tama, #hanayo, #midoriko)');
testSelectorRoundTrip(':matches(.name, #ok, :visited)');
testSelectorRoundTrip(':matches(.name, #ok, :visited, :link)');
testSelectorRoundTrip(':matches(.name, #ok, :matches(:visited))');
testSelectorRoundTrip(':matches(.name, #ok, :not(:link))');
testSelectorRoundTrip(':matches(.name, #ok, :not(:link))');
testSelectorRoundTrip(':matches(.name, #ok, :-webkit-any(hello))');
testSelectorRoundTrip(':matches(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':matches([type="file"])');
testSelectorRoundTrip(':matches(:hover)');
testSelectorRoundTrip('input:matches([type="file"], :hover, :focus):enabled');
testSelectorRoundTrip(':matches(input[type="file"], a:hover, button:focus)');
testSelectorRoundTrip(':matches(.class1.class2.class3)');
testSelectorRoundTrip(':matches(.class1:hover)');
testSelectorRoundTrip(':matches(a.class1.class2.class3:hover)');
testSelectorRoundTrip(':matches(::first-letter, ::first-line)');
testSelectorRoundTrip(':matches(a > ::first-letter, b ~ ::first-line, c ::after, d + ::before)');
testSelectorRoundTrip(':matches(.ok a > ::first-letter, .ok b ~ ::first-line, .ok c ::after, .ok d + ::before)');
testSelectorRoundTrip(':matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before)');
testSelectorRoundTrip(':-webkit-any(:matches(single))');
testSelectorRoundTrip(':-webkit-any(:matches(a, b, p))');
testSelectorRoundTrip(':-webkit-any(:matches(#alice, #bob, #chris))');
testSelectorRoundTrip(':-webkit-any(:matches(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :visited))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :visited, :link))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :matches(:visited)))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :-webkit-any(hello)))');
testSelectorRoundTrip(':-webkit-any(:matches(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))');
testSelectorRoundTrip(':-webkit-any(:matches([type="file"]))');
testSelectorRoundTrip(':-webkit-any(:matches(:hover))');
testSelectorRoundTrip(':-webkit-any(input:matches([type="file"], :hover, :focus):enabled)');
testSelectorRoundTrip(':-webkit-any(:matches(input[type="file"], a:hover, button:focus))');
testSelectorRoundTrip(':-webkit-any(:matches(.class1.class2.class3))');
testSelectorRoundTrip(':-webkit-any(:matches(.class1:hover))');
testSelectorRoundTrip(':-webkit-any(:matches(a.class1.class2.class3:hover))');
testSelectorRoundTrip(':-webkit-any(:matches(::first-letter, ::first-line))');
testSelectorRoundTrip(':-webkit-any(:matches(a > ::first-letter, b ~ ::first-line, c ::after, d + ::before))');
testSelectorRoundTrip(':-webkit-any(:matches(.ok a > ::first-letter, .ok b ~ ::first-line, .ok c ::after, .ok d + ::before))');
testSelectorRoundTrip(':-webkit-any(:matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before))');

debug('');

testSelectorRoundTrip(':not(div)');
testSelectorRoundTrip(':not(.div)');
testSelectorRoundTrip(':not(#div)');
testSelectorRoundTrip(':not([div])');
testSelectorRoundTrip(':not(:empty)');
testSelectorRoundTrip(':not(div.div#div[div]:empty)');
testSelectorRoundTrip(':not(div.div:empty[div]#div)');
testSelectorRoundTrip(':not(div.div, #div[div], :empty)');
testSelectorRoundTrip(':not(div, .div, #div, [div], :empty)');

testSelectorRoundTrip(':not(:not(div))');
testSelectorRoundTrip(':not(:not(div)):not(:not(foo)):not(:not(bar))');
testSelectorRoundTrip(':not(:not(div, :not(foo, bar))):not(:not(foo)):not(:not(bar, baz))');

testSelectorRoundTrip(':not(:matches(*))');
testSelectorRoundTrip(':not(:matches(foo, bar))');
testSelectorRoundTrip(':not(:matches(foo, bar), :matches(.foo, .bar), :matches(#foo, #bar), :matches([foo], [bar]))');
testSelectorRoundTrip(':not(:matches(foo, bar:not(:empty)), :matches(.foo, .bar:not(:not(.mosaic))), :matches(#foo, #bar), :matches([foo], [bar]))');

testSelectorRoundTrip(':nth-child(2n of :not(a.b, c#d.e))');
testSelectorRoundTrip(':not(:nth-child(2n of :not(a.b, c#d.e)))');

testSelectorRoundTrip(':not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');
testSelectorRoundTrip('a:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) b + c:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) ~ d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child) > d:not(a .b, #c > [d], e + f:empty, .g ~ #h:first-child)');

debug('');

shouldBe("parseThenSerializeRule('::-webkit-file-upload-button { }')", "'::-webkit-file-upload-button { }'");
shouldBe("parseThenSerializeRule('::-webkit-search-cancel-button { }')", "'::-webkit-search-cancel-button { }'");
shouldBe("parseThenSerializeRule('::-webkit-search-decoration { }')", "'::-webkit-search-decoration { }'");
shouldBe("parseThenSerializeRule('::-webkit-search-results-button { }')", "'::-webkit-search-results-button { }'");
shouldBe("parseThenSerializeRule('::-webkit-search-results-decoration { }')", "'::-webkit-search-results-decoration { }'");
shouldBe("parseThenSerializeRule('::-webkit-slider-thumb { }')", "'::-webkit-slider-thumb { }'");

debug('');

testSelectorRoundTrip("a::-webkit-slider-thumb");
shouldBe("parseThenSerializeRule('a ::-webkit-slider-thumb { }')", "'a ::-webkit-slider-thumb { }'");
testSelectorRoundTrip("[a]::-webkit-slider-thumb");
shouldBe("parseThenSerializeRule('[a] ::-webkit-slider-thumb { }')", "'[a] ::-webkit-slider-thumb { }'");
testSelectorRoundTrip(".a::-webkit-slider-thumb");
shouldBe("parseThenSerializeRule('.a ::-webkit-slider-thumb { }')", "'.a ::-webkit-slider-thumb { }'");
testSelectorRoundTrip("#a::-webkit-slider-thumb");
shouldBe("parseThenSerializeRule('#a ::-webkit-slider-thumb { }')", "'#a ::-webkit-slider-thumb { }'");
shouldBe("parseThenSerializeRule('* ::-webkit-slider-thumb { }')", "'* ::-webkit-slider-thumb { }'");

debug('');

testSelectorRoundTrip("a[b]::-webkit-slider-thumb");
testSelectorRoundTrip("a.b::-webkit-slider-thumb");
testSelectorRoundTrip("a#b::-webkit-slider-thumb");
testSelectorRoundTrip("a[b].c#d::-webkit-slider-thumb");

debug('');

testSelectorRoundTrip("a[b]::placeholder");
testSelectorRoundTrip("a.b::placeholder");
testSelectorRoundTrip("a#b::placeholder");
testSelectorRoundTrip("a[b].c#d::placeholder");
testSelectorRoundTrip("a[b]::-webkit-input-placeholder");
testSelectorRoundTrip("a.b::-webkit-input-placeholder");
testSelectorRoundTrip("a#b::-webkit-input-placeholder");
testSelectorRoundTrip("a[b].c#d::-webkit-input-placeholder");

debug('');

testSelectorRoundTrip("a[b]:default");
testSelectorRoundTrip("a.b:default");
testSelectorRoundTrip("a#b:default");
testSelectorRoundTrip("a[b].c#d:default");

debug('');

testSelectorRoundTrip("a[b]:in-range");
testSelectorRoundTrip("a.b:in-range");
testSelectorRoundTrip("a#b:in-range");
testSelectorRoundTrip("a[b].c#d:in-range");

debug('');

testSelectorRoundTrip("a[b]:out-of-range");
testSelectorRoundTrip("a.b:out-of-range");
testSelectorRoundTrip("a#b:out-of-range");
testSelectorRoundTrip("a[b].c#d:out-of-range");

debug('');

testSelectorRoundTrip("a[b]:focus-within");
testSelectorRoundTrip("a.b:focus-within");
testSelectorRoundTrip("a#b:focus-within");
testSelectorRoundTrip("a[b].c#d:focus-within");

debug('');

testSelectorRoundTrip('input:not([type="file"]):focus');
testSelectorRoundTrip(':-webkit-any([type="file"])');
testSelectorRoundTrip(':-webkit-any(:hover)');
testSelectorRoundTrip('input:-webkit-any([type="file"], :hover, :focus):enabled');
testSelectorRoundTrip(':-webkit-any(input[type="file"], a:hover, button:focus)');
testSelectorRoundTrip(':-webkit-any(.class1.class2.class3)');
testSelectorRoundTrip(':-webkit-any(.class1:hover)');
testSelectorRoundTrip(':-webkit-any(a.class1.class2.class3:hover)');
testSelectorRoundTrip('a:any-link');
testSelectorRoundTrip('a :any-link');
testSelectorRoundTrip('div:any-link');
testSelectorRoundTrip('div :any-link');
testSelectorRoundTrip(':any-link > div');
testSelectorRoundTrip(':any-link + div');
testSelectorRoundTrip(':not(:any-link)');

debug('');

shouldBe("parseThenSerializeRule('*:active { }')", "':active { }'");

debug('');

shouldBe("parseThenSerializeRule('input[type=file]:focus { }')", "'input[type=\"file\"]:focus { }'");

debug('');

shouldBe("parseThenSerializeRule('a+b { }')", "'a + b { }'");
shouldBe("parseThenSerializeRule('a~b { }')", "'a ~ b { }'");
shouldBe("parseThenSerializeRule('a>b { }')", "'a > b { }'");

debug('');

shouldBe("parseThenSerializeRule(':after { }')", "'::after { }'");
shouldBe("parseThenSerializeRule(':before { }')", "'::before { }'");
shouldBe("parseThenSerializeRule(':first-letter { }')", "'::first-letter { }'");
shouldBe("parseThenSerializeRule(':first-line { }')", "'::first-line { }'");
shouldBe("parseThenSerializeRule(':-webkit-any(    a.class1  ,  	#id,[attr]  ) { }')","':-webkit-any(a.class1, #id, [attr]) { }'");

debug('');

shouldBe("parseThenSerializeRule(':matches(single    ) { }')", "':matches(single) { }'");
shouldBe("parseThenSerializeRule(':matches(a,b    ,p) { }')", "':matches(a, b, p) { }'");
shouldBe("parseThenSerializeRule(':matches(#alice,                   #bob,#chris) { }')", "':matches(#alice, #bob, #chris) { }'");
shouldBe("parseThenSerializeRule(':matches(  .selector,#tama,                #hanayo,#midoriko) { }')", "':matches(.selector, #tama, #hanayo, #midoriko) { }'");
shouldBe("parseThenSerializeRule(':matches(    .name,#ok,:visited   ) { }')", "':matches(.name, #ok, :visited) { }'");
shouldBe("parseThenSerializeRule(':matches(    .name,#ok,    :visited, :link) { }')", "':matches(.name, #ok, :visited, :link) { }'");
shouldBe("parseThenSerializeRule(':matches(    .name,#ok,    :matches(:visited    )) { }')", "':matches(.name, #ok, :matches(:visited)) { }'");
shouldBe("parseThenSerializeRule(':matches(.name,  #ok,:not(:link)) { }')", "':matches(.name, #ok, :not(:link)) { }'");
shouldBe("parseThenSerializeRule(':matches(.name,#ok,:not(:link)) { }')", "':matches(.name, #ok, :not(:link)) { }'");
shouldBe("parseThenSerializeRule(':matches(    .name,#ok,:-webkit-any(   hello)) { }')", "':matches(.name, #ok, :-webkit-any(hello)) { }'");
shouldBe("parseThenSerializeRule(':matches(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }')", "':matches(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }'");
shouldBe("parseThenSerializeRule(':matches(       [type=\"file\"]) { }')", "':matches([type=\"file\"]) { }'");
shouldBe("parseThenSerializeRule(':matches(  :hover    ) { }')", "':matches(:hover) { }'");
shouldBe("parseThenSerializeRule('input:matches([type=\"file\"],:hover,:focus):enabled { }')", "'input:matches([type=\"file\"], :hover, :focus):enabled { }'");
shouldBe("parseThenSerializeRule(':matches(input[type=\"file\"], a:hover, button:focus) { }')", "':matches(input[type=\"file\"], a:hover, button:focus) { }'");
shouldBe("parseThenSerializeRule(':matches( .class1.class2.class3   ) { }')", "':matches(.class1.class2.class3) { }'");
shouldBe("parseThenSerializeRule(':matches(.class1:hover   ) { }')", "':matches(.class1:hover) { }'");
shouldBe("parseThenSerializeRule(':matches(a.class1.class2.class3:hover   ) { }')", "':matches(a.class1.class2.class3:hover) { }'");
shouldBe("parseThenSerializeRule(':matches(:first-letter,::first-line) { }')", "':matches(::first-letter, ::first-line) { }'");
shouldBe("parseThenSerializeRule(':matches(a>:first-letter,b   ~ ::first-line, c :after, d+ :before) { }')", "':matches(a > ::first-letter, b ~ ::first-line, c ::after, d + ::before) { }'");
shouldBe("parseThenSerializeRule(':matches(.ok a >    ::first-letter, .ok b~ ::first-line, .ok c :after, .ok d +:before) { }')", "':matches(.ok a > ::first-letter, .ok b ~ ::first-line, .ok c ::after, .ok d + ::before) { }'");
shouldBe("parseThenSerializeRule(':matches(.ok a> .ok ::first-letter, .ok b   ~.ok :first-line, .ok c .ok    ::after, .ok d + .ok ::before) { }')", "':matches(.ok a > .ok ::first-letter, .ok b ~ .ok ::first-line, .ok c .ok ::after, .ok d + .ok ::before) { }'");

debug('');

shouldBe("parseThenSerializeRule(':not(single    ) { }')", "':not(single) { }'");
shouldBe("parseThenSerializeRule(':not(a,b    ,p) { }')", "':not(a, b, p) { }'");
shouldBe("parseThenSerializeRule(':not(#alice,                   #bob,#chris) { }')", "':not(#alice, #bob, #chris) { }'");
shouldBe("parseThenSerializeRule(':not(  .selector,#tama,                #hanayo,#midoriko) { }')", "':not(.selector, #tama, #hanayo, #midoriko) { }'");
shouldBe("parseThenSerializeRule(':not(    .name,#ok,:visited   ) { }')", "':not(.name, #ok, :visited) { }'");
shouldBe("parseThenSerializeRule(':not(    .name,#ok,    :visited, :link) { }')", "':not(.name, #ok, :visited, :link) { }'");
shouldBe("parseThenSerializeRule(':not(    .name,#ok,    :not(:visited    )) { }')", "':not(.name, #ok, :not(:visited)) { }'");
shouldBe("parseThenSerializeRule(':not(.name,  #ok,:not(:link)) { }')", "':not(.name, #ok, :not(:link)) { }'");
shouldBe("parseThenSerializeRule(':not(.name,#ok,:not(:link)) { }')", "':not(.name, #ok, :not(:link)) { }'");
shouldBe("parseThenSerializeRule(':not(    .name,#ok,:-webkit-any(   hello)) { }')", "':not(.name, #ok, :-webkit-any(hello)) { }'");
shouldBe("parseThenSerializeRule(':not(    .name,#ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }')", "':not(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)) { }'");
shouldBe("parseThenSerializeRule(':not(       [type=\"file\"]) { }')", "':not([type=\"file\"]) { }'");
shouldBe("parseThenSerializeRule(':not(  :hover    ) { }')", "':not(:hover) { }'");
shouldBe("parseThenSerializeRule('input:not([type=\"file\"],:hover,:focus):enabled { }')", "'input:not([type=\"file\"], :hover, :focus):enabled { }'");
shouldBe("parseThenSerializeRule(':not(input[type=\"file\"], a:hover, button:focus) { }')", "':not(input[type=\"file\"], a:hover, button:focus) { }'");
shouldBe("parseThenSerializeRule(':not( .class1.class2.class3   ) { }')", "':not(.class1.class2.class3) { }'");
shouldBe("parseThenSerializeRule(':not(.class1:hover   ) { }')", "':not(.class1:hover) { }'");
shouldBe("parseThenSerializeRule(':not(a.class1.class2.class3:hover   ) { }')", "':not(a.class1.class2.class3:hover) { }'");
shouldBe("parseThenSerializeRule(':not(:matches(single    ),:matches(a,b    ,p),:matches(#alice,                   #bob,#chris)) { }')", "':not(:matches(single), :matches(a, b, p), :matches(#alice, #bob, #chris)) { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(a    ) { }')", "':lang(\"a\") { }'");
shouldBe("parseThenSerializeRule(':lang(    a) { }')", "':lang(\"a\") { }'");
shouldBe("parseThenSerializeRule(':lang(a,    b,    c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(    a, b ,c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(  a  ,  b  ,  c  ) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(    a  ,b,c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(    a  ,b  ,c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(    a  ,b  ,c  ) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(a,b    ,c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(a,b,    c) { }')", "':lang(\"a\", \"b\", \"c\") { }'");
shouldBe("parseThenSerializeRule(':lang(a,b,    c    ) { }')", "':lang(\"a\", \"b\", \"c\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(en, en, en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(en,en,en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(en,en,    en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(en,    en,en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(en,    en,en    ) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(    en,    en,en    ) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(en,   en,   en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(    en,    en,    en) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(    en,    en,    en    ) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(    en    ,    en    ,   en    ) { }')", "':lang(\"en\", \"en\", \"en\") { }'");
shouldBe("parseThenSerializeRule(':lang(    en,en,en    ) { }')", "':lang(\"en\", \"en\", \"en\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(\"*-DE\", \"*-CH\", \"*-EN\") { }')", "':lang(\"*-DE\", \"*-CH\", \"*-EN\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-DE\",\"*-CH\",\"*-EN\") { }')", "':lang(\"*-DE\", \"*-CH\", \"*-EN\") { }'");
shouldBe("parseThenSerializeRule(':lang(   \"*-DE\"  ,  \"*-CH\"  ,  \"*-EN\"  ) { }')", "':lang(\"*-DE\", \"*-CH\", \"*-EN\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(\\\\*) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-\\\\*\") { }')", "':lang(\"*-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-\\\\*-\\\\*\") { }')", "':lang(\"*-*-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-\\\\*-\\\\*-\\\\*\") { }')", "':lang(\"*-*-*-*\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(ab-\\\\*) { }')", "':lang(\"ab-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-ab-\\\\*\") { }')", "':lang(\"*-ab-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-ab-\\\\*-\") { }')", "':lang(\"*-ab-*-\") { }'");

shouldBe("parseThenSerializeRule(':lang(\"*-foo-\\\\3A\") { }')", "':lang(\"*-foo-:\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-foo-\\\\3A\\\\`\\\\)\") { }')", "':lang(\"*-foo-:`)\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-foo-\\\\*\") { }')", "':lang(\"*-foo-*\") { }'");

shouldBe("parseThenSerializeRule(':lang(\"*-foo-\\\\0072 aisin\") { }')", "':lang(\"*-foo-raisin\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-foo-\\\\0062 \\\\0061 r\") { }')", "':lang(\"*-foo-bar\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-foo-col\\\\6Fr\") { }')", "':lang(\"*-foo-color\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(\\\\*    ) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en\"    ) { }')", "':lang(\"*-en\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*\"    ) { }')", "':lang(\"*-en-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\"    ) { }')", "':lang(\"*-en-*-fr\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\", br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",   br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(  \"*-en-\\\\*-fr\",   br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(    \"*-en-\\\\*-fr\",   br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(    \"*-en-\\\\*-fr\"  ,   br    ) { }')", "':lang(\"*-en-*-fr\", \"br\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",\"*-br-zh\"    ) { }')", "':lang(\"*-en-*-fr\", \"*-br-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\", \"*-br-zh\"    ) { }')", "':lang(\"*-en-*-fr\", \"*-br-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",   \"*-br-zh\"    ) { }')", "':lang(\"*-en-*-fr\", \"*-br-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",     \"*-br-zh\"    ) { }')", "':lang(\"*-en-*-fr\", \"*-br-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",       \"*-br-zh\"    ) { }')", "':lang(\"*-en-*-fr\", \"*-br-zh\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\", br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",   br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(\"*-en-\\\\*-fr\",      br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(  \"*-en-\\\\*-fr\",      br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(  \"*-en-\\\\*-fr\" ,      br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");
shouldBe("parseThenSerializeRule(':lang(  \"*-en-\\\\*-fr\"  ,      br-\\\\*-zh    ) { }')", "':lang(\"*-en-*-fr\", \"br-*-zh\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(\\\\*) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\\\\* ) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(\\\\*   ) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang( \\\\*   ) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(  \\\\*) { }')", "':lang(\"*\") { }'");
shouldBe("parseThenSerializeRule(':lang(   \\\\*   ) { }')", "':lang(\"*\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(   \\\\*,id-\\\\*-sumatra   ) { }')", "':lang(\"*\", \"id-*-sumatra\") { }'");
shouldBe("parseThenSerializeRule(':lang(   \\\\* ,id-\\\\*-sumatra) { }')", "':lang(\"*\", \"id-*-sumatra\") { }'");
shouldBe("parseThenSerializeRule(':lang(   \\\\*  ,  id-\\\\*-sumatra  ) { }')", "':lang(\"*\", \"id-*-sumatra\") { }'");
shouldBe("parseThenSerializeRule(':lang(   \\\\*   ,    id-\\\\*-sumatra  ) { }')", "':lang(\"*\", \"id-*-sumatra\") { }'");

debug('');

shouldBe("parseThenSerializeRule(':lang(en-\\\\*) { }')", "':lang(\"en-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(en-\\\\*, fr-\\\\*) { }')", "':lang(\"en-*\", \"fr-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(en-\\\\*, fr-\\\\* ) { }')", "':lang(\"en-*\", \"fr-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(   en-\\\\*   ,  fr-\\\\*   ) { }')", "':lang(\"en-*\", \"fr-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(   en-\\\\*   ,fr-\\\\*   ) { }')", "':lang(\"en-*\", \"fr-*\") { }'");
shouldBe("parseThenSerializeRule(':lang(   en-\\\\*,fr-\\\\*   ) { }')", "':lang(\"en-*\", \"fr-*\") { }'");

debug('');

shouldThrow("parseThenSerializeRule(':lang() { }')");
shouldThrow("parseThenSerializeRule(':lang(12, b, c) { }')");
shouldThrow("parseThenSerializeRule(':lang(a, 12, c) { }')");
shouldThrow("parseThenSerializeRule(':lang(a, b, 12) { }')");
shouldThrow("parseThenSerializeRule(':lang(a, 12, 12) { }')");
shouldThrow("parseThenSerializeRule(':lang(12, b, 12) { }')");
shouldThrow("parseThenSerializeRule(':lang(12, 12, 12) { }')");
shouldThrow("parseThenSerializeRule(':lang(lang()) { }')");
shouldThrow("parseThenSerializeRule(':lang(:lang()) { }')");
shouldThrow("parseThenSerializeRule(':lang(:lang(id)) { }')");
shouldThrow("parseThenSerializeRule(':lang(:lang(en, br)) { }')");
shouldThrow("parseThenSerializeRule(':lang(<0_0>) { }')");
shouldThrow("parseThenSerializeRule(':lang(99) { }')");
shouldThrow("parseThenSerializeRule(':lang(88) { }')");
shouldThrow("parseThenSerializeRule(':lang(00) { }')");
shouldThrow("parseThenSerializeRule(':lang(}) { }')");
shouldThrow("parseThenSerializeRule(':lang({) { }')");
shouldThrow("parseThenSerializeRule(':lang({}) { }')");
shouldThrow("parseThenSerializeRule(':lang(]) { }')");
shouldThrow("parseThenSerializeRule(':lang([) { }')");
shouldThrow("parseThenSerializeRule(':lang([]) { }')");
shouldThrow("parseThenSerializeRule(':lang(@media screen {}) { }')");

shouldThrow("parseThenSerializeRule(':lang(*-) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-    ) { }')");
shouldThrow("parseThenSerializeRule(':lang(*--) { }')");
shouldThrow("parseThenSerializeRule(':lang(*---) { }')");
shouldThrow("parseThenSerializeRule(':lang(*----) { }')");

shouldThrow("parseThenSerializeRule(':lang(*)' { })");
shouldThrow("parseThenSerializeRule(':lang(**) { }')");
shouldThrow("parseThenSerializeRule(':lang(-*-) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-*) { }')");
shouldThrow("parseThenSerializeRule(':lang(de-*)')");
shouldThrow("parseThenSerializeRule(':lang(*-en-*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-en-fr-*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-en-*fr) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-*en-fr) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-1997) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-1997-*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*a*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*a) { }')");
shouldThrow("parseThenSerializeRule(':lang(a*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, a*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, a**) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, *a) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, **a) { }')");
shouldThrow("parseThenSerializeRule(':lang(*- a*) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, br fr) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-a, br fr en *) { }')");

shouldThrow("parseThenSerializeRule(':lang(*-1996, *-1997) { }')");
shouldThrow("parseThenSerializeRule(':lang(*-1996, *-1997 ) { }')");
shouldThrow("parseThenSerializeRule(':lang(   *-1996   ,  *-1997   ) { }')");
shouldThrow("parseThenSerializeRule(':lang(   *-1996   ,*-1997   ) { }')");
shouldThrow("parseThenSerializeRule(':lang(   *-1996,*-1997   ) { }')");

debug('');

testSelectorRoundTrip(":role(a)");
testSelectorRoundTrip(":role(button)");
testSelectorRoundTrip(":role(LiNk)");
shouldBe("parseThenSerializeRule(':role( a    ) { }')", "':role(a) { }'");

debug('');

shouldThrow("parseThenSerializeRule(':role() { }')");
shouldThrow("parseThenSerializeRule(':role(42) { }')");
shouldThrow("parseThenSerializeRule(':role(a, b) { }')");
shouldThrow("parseThenSerializeRule(':role(}) { }')");
shouldThrow("parseThenSerializeRule(':role()) { }')");
shouldThrow("parseThenSerializeRule(':role(role()) { }')");
shouldThrow("parseThenSerializeRule(':role(:role()) { }')");
shouldThrow("parseThenSerializeRule(':role(:role(a)) { }')");

debug('');

testSelectorRoundTrip(":dir(ltr)");
testSelectorRoundTrip(":dir(rtl)");
testSelectorRoundTrip(":dir(LTR)");
testSelectorRoundTrip(":dir(aBcD)");
shouldBe("parseThenSerializeRule(':dir( a    ) { }')", "':dir(a) { }'");

debug('');

shouldThrow("parseThenSerializeRule(':dir() { }')");
shouldThrow("parseThenSerializeRule(':dir(42) { }')");
shouldThrow("parseThenSerializeRule(':dir(a, b) { }')");
shouldThrow("parseThenSerializeRule(':dir(}) { }')");
shouldThrow("parseThenSerializeRule(':dir()) { }')");
shouldThrow("parseThenSerializeRule(':dir(dir()) { }')");
shouldThrow("parseThenSerializeRule(':dir(:dir()) { }')");
shouldThrow("parseThenSerializeRule(':dir(:dir(ltr)) { }')");

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