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

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

var bogusSelector = "_foo";

function setThenReadSelectorText(selector)
{
    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);

    // First, create a rule with a bogus selector.
    styleElement.appendChild(document.createTextNode(bogusSelector + " { }"));
    // Now, set the desired selector text.
    styleElement.sheet.cssRules[0].selectorText = selector;
    return styleElement.sheet.cssRules[0].selectorText;
}

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("setThenReadSelectorText('" + selector + "')", "'" + expectedSelector + "'");
}

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

testSelectorRoundTrip('', true);
testSelectorRoundTrip('123', true);
testSelectorRoundTrip('-', true);
testSelectorRoundTrip('$', true);
testSelectorRoundTrip(':', true);
testSelectorRoundTrip('.', true);
testSelectorRoundTrip('#', true);
testSelectorRoundTrip('[]', true);
testSelectorRoundTrip('()', true);

debug('');

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("setThenReadSelectorText('*|a')", "'a'");
shouldBe("setThenReadSelectorText('*|*')", "'*'");
testSelectorRoundTrip('[*|a]');
testSelectorRoundTrip('|*');
testSelectorRoundTrip('[*|a]');
shouldBe("setThenReadSelectorText('[|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(":dir(a)");
testSelectorRoundTrip(":lang(\"a\")");
testSelectorRoundTrip(":lang(a)");
testSelectorRoundTrip(":not(a)");
testSelectorRoundTrip(":role(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-drag");
testSelectorRoundTrip(":autofill");
testSelectorSerialization(":-webkit-autofill", ":autofill");

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('');

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(':is(single)');
testSelectorRoundTrip(':is(a, b, p)');
testSelectorRoundTrip(':is(#alice, #bob, #chris)');
testSelectorRoundTrip(':is(.selector, #tama, #hanayo, #midoriko)');
testSelectorRoundTrip(':is(.name, #ok, :visited)');
testSelectorRoundTrip(':is(.name, #ok, :visited, :link)');
testSelectorRoundTrip(':is(.name, #ok, :is(:visited))');
testSelectorRoundTrip(':is(.name, #ok, :not(:link))');
testSelectorRoundTrip(':is(.name, #ok, :not(:link))');
testSelectorRoundTrip(':is(.name, #ok, :-webkit-any(hello))');
testSelectorRoundTrip(':is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':is([type="file"])');
testSelectorRoundTrip(':is(:hover)');
testSelectorRoundTrip('input:is([type="file"], :hover, :focus):enabled');
testSelectorRoundTrip(':is(input[type="file"], a:hover, button:focus)');
testSelectorRoundTrip(':is(.class1.class2.class3)');
testSelectorRoundTrip(':is(.class1:hover)');
testSelectorRoundTrip(':is(a.class1.class2.class3:hover)');
testSelectorRoundTrip(':where(single)');
testSelectorRoundTrip(':where(a, b, p)');
testSelectorRoundTrip(':where(#alice, #bob, #chris)');
testSelectorRoundTrip(':where(.selector, #tama, #hanayo, #midoriko)');
testSelectorRoundTrip(':where(.name, #ok, :visited)');
testSelectorRoundTrip(':where(.name, #ok, :visited, :link)');
testSelectorRoundTrip(':where(.name, #ok, :where(:visited))');
testSelectorRoundTrip(':where(.name, #ok, :not(:link))');
testSelectorRoundTrip(':where(.name, #ok, :not(:link))');
testSelectorRoundTrip(':where(.name, #ok, :where(hello))');
testSelectorRoundTrip(':where(.name, #ok, :where(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':where([type="file"])');
testSelectorRoundTrip(':where(:hover)');
testSelectorRoundTrip('input:where([type="file"], :hover, :focus):enabled');
testSelectorRoundTrip(':where(input[type="file"], a:hover, button:focus)');
testSelectorRoundTrip(':where(.class1.class2.class3)');
testSelectorRoundTrip(':where(.class1:hover)');
testSelectorRoundTrip(':where(a.class1.class2.class3:hover)');
testSelectorRoundTrip(':matches(:is(single))');
testSelectorRoundTrip(':matches(:is(a, b, p))');
testSelectorRoundTrip(':matches(:is(#alice, #bob, #chris))');
testSelectorRoundTrip(':matches(:is(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :visited))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :visited, :link))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :is(:visited)))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :matches(hello)))');
testSelectorRoundTrip(':matches(:is(.name, #ok, :matches(.selector, #tama, #hanayo, #midoriko)))');
testSelectorRoundTrip(':matches(:is([type="file"]))');
testSelectorRoundTrip(':matches(:is(:hover))');
testSelectorRoundTrip(':matches(input:is([type="file"], :hover, :focus):enabled)');
testSelectorRoundTrip(':matches(:is(input[type="file"], a:hover, button:focus))');
testSelectorRoundTrip(':matches(:is(.class1.class2.class3))');
testSelectorRoundTrip(':matches(:is(.class1:hover))');
testSelectorRoundTrip(':matches(:is(a.class1.class2.class3:hover))');
testSelectorRoundTrip(':-webkit-any(:is(single))');
testSelectorRoundTrip(':-webkit-any(:is(a, b, p))');
testSelectorRoundTrip(':-webkit-any(:is(#alice, #bob, #chris))');
testSelectorRoundTrip(':-webkit-any(:is(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :visited))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :visited, :link))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :is(:visited)))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :-webkit-any(hello)))');
testSelectorRoundTrip(':-webkit-any(:is(.name, #ok, :-webkit-any(.selector, #tama, #hanayo, #midoriko)))');
testSelectorRoundTrip(':-webkit-any(:is([type="file"]))');
testSelectorRoundTrip(':-webkit-any(:is(:hover))');
testSelectorRoundTrip(':-webkit-any(input:is([type="file"], :hover, :focus):enabled)');
testSelectorRoundTrip(':-webkit-any(:is(input[type="file"], a:hover, button:focus))');
testSelectorRoundTrip(':-webkit-any(:is(.class1.class2.class3))');
testSelectorRoundTrip(':-webkit-any(:is(.class1:hover))');
testSelectorRoundTrip(':-webkit-any(:is(a.class1.class2.class3:hover))');

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(':is(:matches(single))');
testSelectorRoundTrip(':is(:matches(a, b, p))');
testSelectorRoundTrip(':is(:matches(#alice, #bob, #chris))');
testSelectorRoundTrip(':is(:matches(.selector, #tama, #hanayo, #midoriko))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :visited))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :visited, :link))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :matches(:visited)))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :not(:link)))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :is(hello)))');
testSelectorRoundTrip(':is(:matches(.name, #ok, :is(.selector, #tama, #hanayo, #midoriko)))');
testSelectorRoundTrip(':is(:matches([type="file"]))');
testSelectorRoundTrip(':is(:matches(:hover))');
testSelectorRoundTrip(':is(input:matches([type="file"], :hover, :focus):enabled)');
testSelectorRoundTrip(':is(:matches(input[type="file"], a:hover, button:focus))');
testSelectorRoundTrip(':is(:matches(.class1.class2.class3))');
testSelectorRoundTrip(':is(:matches(.class1:hover))');
testSelectorRoundTrip(':is(:matches(a.class1.class2.class3:hover))');
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))');

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(:is(*))');
testSelectorRoundTrip(':not(:is(foo, bar))');
testSelectorRoundTrip(':not(:is(foo, bar), :is(.foo, .bar), :is(#foo, #bar), :is([foo], [bar]))');
testSelectorRoundTrip(':not(:is(foo, bar:not(:empty)), :is(.foo, .bar:not(:not(.mosaic))), :is(#foo, #bar), :is([foo], [bar]))');

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("setThenReadSelectorText('::-webkit-file-upload-button')", "'::-webkit-file-upload-button'");
shouldBe("setThenReadSelectorText('::-webkit-search-cancel-button')", "'::-webkit-search-cancel-button'");
shouldBe("setThenReadSelectorText('::-webkit-search-decoration')", "'::-webkit-search-decoration'");
shouldBe("setThenReadSelectorText('::-webkit-search-results-button')", "'::-webkit-search-results-button'");
shouldBe("setThenReadSelectorText('::-webkit-search-results-decoration')", "'::-webkit-search-results-decoration'");
shouldBe("setThenReadSelectorText('::-webkit-slider-thumb')", "'::-webkit-slider-thumb'");

debug('');

testSelectorRoundTrip("a::-webkit-slider-thumb");
shouldBe("setThenReadSelectorText('a ::-webkit-slider-thumb')", "'a ::-webkit-slider-thumb'");
testSelectorRoundTrip("[a]::-webkit-slider-thumb");
shouldBe("setThenReadSelectorText('[a] ::-webkit-slider-thumb')", "'[a] ::-webkit-slider-thumb'");
testSelectorRoundTrip(".a::-webkit-slider-thumb");
shouldBe("setThenReadSelectorText('.a ::-webkit-slider-thumb')", "'.a ::-webkit-slider-thumb'");
testSelectorRoundTrip("#a::-webkit-slider-thumb");
shouldBe("setThenReadSelectorText('#a ::-webkit-slider-thumb')", "'#a ::-webkit-slider-thumb'");
shouldBe("setThenReadSelectorText('* ::-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)');

debug('');

shouldBe("setThenReadSelectorText('*:active')", "':active'");

debug('');

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

debug('');

shouldBe("setThenReadSelectorText('a+b')", "'a + b'");
shouldBe("setThenReadSelectorText('a~b')", "'a ~ b'");
shouldBe("setThenReadSelectorText('a>b')", "'a > b'");

debug('');

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

debug('');

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

debug('');

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

debug('');

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

debug('');

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