blob: 32425ef193fb1300d21cd1e3682e3de2daccc5cc [file] [log] [blame]
This tests parsing and re-serialization of some CSS selectors.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS parseThenSerializeRule('* { }') is '* { }'
PASS parseThenSerializeRule('a { }') is 'a { }'
PASS parseThenSerializeRule('#a { }') is '#a { }'
PASS parseThenSerializeRule('.a { }') is '.a { }'
PASS parseThenSerializeRule(':active { }') is ':active { }'
PASS parseThenSerializeRule('[a] { }') is '[a] { }'
PASS parseThenSerializeRule('[a="b"] { }') is '[a="b"] { }'
PASS parseThenSerializeRule('[a~="b"] { }') is '[a~="b"] { }'
PASS parseThenSerializeRule('[a|="b"] { }') is '[a|="b"] { }'
PASS parseThenSerializeRule('[a^="b"] { }') is '[a^="b"] { }'
PASS parseThenSerializeRule('[a$="b"] { }') is '[a$="b"] { }'
PASS parseThenSerializeRule('[a*="b"] { }') is '[a*="b"] { }'
PASS parseThenSerializeRule('*|a { }') is 'a { }'
PASS parseThenSerializeRule('n|a { }') is 'n|a { }'
PASS parseThenSerializeRule('*|* { }') is '* { }'
PASS parseThenSerializeRule('n|* { }') is 'n|* { }'
PASS parseThenSerializeRule('[*|a] { }') is '[*|a] { }'
PASS parseThenSerializeRule('[n|a] { }') is '[n|a] { }'
PASS parseThenSerializeRule('a:active { }') is 'a:active { }'
PASS parseThenSerializeRule('a b { }') is 'a b { }'
PASS parseThenSerializeRule('a + b { }') is 'a + b { }'
PASS parseThenSerializeRule('a ~ b { }') is 'a ~ b { }'
PASS parseThenSerializeRule('a > b { }') is 'a > b { }'
PASS parseThenSerializeRule(':active { }') is ':active { }'
PASS parseThenSerializeRule(':checked { }') is ':checked { }'
PASS parseThenSerializeRule(':disabled { }') is ':disabled { }'
PASS parseThenSerializeRule(':empty { }') is ':empty { }'
PASS parseThenSerializeRule(':enabled { }') is ':enabled { }'
PASS parseThenSerializeRule(':first-child { }') is ':first-child { }'
PASS parseThenSerializeRule(':first-of-type { }') is ':first-of-type { }'
PASS parseThenSerializeRule(':focus { }') is ':focus { }'
PASS parseThenSerializeRule(':focus-within { }') is ':focus-within { }'
PASS parseThenSerializeRule(':hover { }') is ':hover { }'
PASS parseThenSerializeRule(':indeterminate { }') is ':indeterminate { }'
PASS parseThenSerializeRule(':link { }') is ':link { }'
PASS parseThenSerializeRule(':not(:placeholder-shown) { }') is ':not(:placeholder-shown) { }'
PASS parseThenSerializeRule(':placeholder-shown { }') is ':placeholder-shown { }'
PASS parseThenSerializeRule(':root { }') is ':root { }'
PASS parseThenSerializeRule(':target { }') is ':target { }'
PASS parseThenSerializeRule(':visited { }') is ':visited { }'
PASS parseThenSerializeRule(':lang(a) { }') is ':lang(a) { }'
PASS parseThenSerializeRule(':not(a) { }') is ':not(a) { }'
PASS parseThenSerializeRule(':-webkit-any(a,b,p) { }') is ':-webkit-any(a,b,p) { }'
PASS parseThenSerializeRule('::after { }') is '::after { }'
PASS parseThenSerializeRule('::before { }') is '::before { }'
PASS parseThenSerializeRule('::first-letter { }') is '::first-letter { }'
PASS parseThenSerializeRule('::first-line { }') is '::first-line { }'
PASS parseThenSerializeRule('::selection { }') is '::selection { }'
PASS parseThenSerializeRule(':-webkit-any-link { }') is ':-webkit-any-link { }'
PASS parseThenSerializeRule(':-webkit-autofill { }') is ':-webkit-autofill { }'
PASS parseThenSerializeRule(':-webkit-drag { }') is ':-webkit-drag { }'
PASS parseThenSerializeRule('::-webkit-file-upload-button { }') is '::-webkit-file-upload-button { }'
PASS parseThenSerializeRule('::-webkit-search-cancel-button { }') is '::-webkit-search-cancel-button { }'
PASS parseThenSerializeRule('::-webkit-search-decoration { }') is '::-webkit-search-decoration { }'
PASS parseThenSerializeRule('::-webkit-search-results-button { }') is '::-webkit-search-results-button { }'
PASS parseThenSerializeRule('::-webkit-search-results-decoration { }') is '::-webkit-search-results-decoration { }'
PASS parseThenSerializeRule('::-webkit-slider-thumb { }') is '::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a::-webkit-slider-thumb { }') is 'a::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a ::-webkit-slider-thumb { }') is 'a ::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('[a]::-webkit-slider-thumb { }') is '[a]::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('[a] ::-webkit-slider-thumb { }') is '[a] ::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('.a::-webkit-slider-thumb { }') is '.a::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('.a ::-webkit-slider-thumb { }') is '.a ::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('#a::-webkit-slider-thumb { }') is '#a::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('#a ::-webkit-slider-thumb { }') is '#a ::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('* ::-webkit-slider-thumb { }') is '* ::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a[b]::-webkit-slider-thumb { }') is 'a[b]::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a.b::-webkit-slider-thumb { }') is 'a.b::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a#b::-webkit-slider-thumb { }') is 'a#b::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('a[b].c#d::-webkit-slider-thumb { }') is 'a[b].c#d::-webkit-slider-thumb { }'
PASS parseThenSerializeRule('input:not([type="file"]):focus { }') is 'input:not([type="file"]):focus { }'
PASS parseThenSerializeRule('input:not([type="file"]):focus-within { }') is 'input:not([type="file"]):focus-within { }'
PASS parseThenSerializeRule(':-webkit-any([type="file"]) { }') is ':-webkit-any([type="file"]) { }'
PASS parseThenSerializeRule(':-webkit-any(:hover) { }') is ':-webkit-any(:hover) { }'
PASS parseThenSerializeRule('input:-webkit-any([type="file"],:hover,:focus):enabled { }') is 'input:-webkit-any([type="file"],:hover,:focus):enabled { }'
PASS parseThenSerializeRule(':-webkit-any(input[type="file"],a:hover,button:focus) { }') is ':-webkit-any(input[type="file"],a:hover,button:focus) { }'
PASS parseThenSerializeRule(':-webkit-any(.class1.class2.class3) { }') is ':-webkit-any(.class1.class2.class3) { }'
PASS parseThenSerializeRule(':-webkit-any(.class1:hover) { }') is ':-webkit-any(.class1:hover) { }'
PASS parseThenSerializeRule(':-webkit-any(a.class1.class2.class3:hover) { }') is ':-webkit-any(a.class1.class2.class3:hover) { }'
PASS parseThenSerializeRule('*:active { }') is ':active { }'
PASS parseThenSerializeRule('|a { }') is '|a { }'
PASS parseThenSerializeRule('input[type=file]:focus { }') is 'input[type="file"]:focus { }'
PASS parseThenSerializeRule('input[type=file]:focus-within { }') is 'input[type="file"]:focus-within { }'
PASS parseThenSerializeRule('a+b { }') is 'a + b { }'
PASS parseThenSerializeRule('a~b { }') is 'a ~ b { }'
PASS parseThenSerializeRule('a>b { }') is 'a > b { }'
PASS parseThenSerializeRule(':after { }') is '::after { }'
PASS parseThenSerializeRule(':before { }') is '::before { }'
PASS parseThenSerializeRule(':first-letter { }') is '::first-letter { }'
PASS parseThenSerializeRule(':first-line { }') is '::first-line { }'
PASS parseThenSerializeRule(':-webkit-any( a.class1 , #id,[attr] ) { }') is ':-webkit-any(a.class1,#id,[attr]) { }'
PASS successfullyParsed is true
TEST COMPLETE