Changeset 221788 in webkit


Ignore:
Timestamp:
Sep 8, 2017, 9:35:45 AM (8 years ago)
Author:
Antti Koivisto
Message:

Remove support for >> descendant combinator syntax
https://bugs.webkit.org/show_bug.cgi?id=175765

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Tests for these have been removed in WPT master, just update expectations until new version is imported.

  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:

Source/WebCore:

This is an alternative syntax for the normal descendant combinator (just space) that was
advertised as being consistent with > (child combinator) and >>> (shadow piercing combinator).
The latter has been killed so it is not consistent with anything anymore.

No other engine besides WebKit has implemented this and the WPT tests have been removed
(in https://github.com/w3c/web-platform-tests/pull/6785). Full removal from spec is still
open (https://github.com/w3c/csswg-drafts/issues/641) but we shouldn't encourage adoption of
this pointless feature.

While this has shipped the compatibility risk is low as no other engine implemented it and
there were no incentives to use it over the standard syntax.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:

(WebCore::CSSSelector::hasDescendantRelation const):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):

  • css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::appendTagHistory):

  • css/parser/CSSParserSelector.h:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::isDescendantCombinator):
(WebCore::CSSSelectorParser::consumeCombinator):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):

LayoutTests:

  • fast/css/ancestor-of-hovered-element-removed.html:
  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:
  • fast/css/currentColor-value-style-update.html:
  • fast/css/descendant-combinator-doubled-child-syntax-styling-expected.html: Removed.
  • fast/css/descendant-combinator-doubled-child-syntax-styling.html: Removed.
  • fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-1.html:
  • fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-4.html:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html: Removed.
  • fast/selectors/case-insensitive-attribute-register-requirement-2.html:
  • fast/selectors/element-closest-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
  • fast/selectors/element-closest-descendant-combinator-doubled-child-syntax.html: Removed.
  • fast/selectors/element-matches-attribute-ascii-case-insensitive-html.html:
  • fast/selectors/element-matches-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
  • fast/selectors/element-matches-descendant-combinator-doubled-child-syntax.html: Removed.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html:
  • fast/selectors/id-attribute-querySelector-used-as-id-selector.html:
  • fast/selectors/nth-child-matching-first.html:
  • fast/selectors/nth-last-child-matching-first.html:
  • fast/selectors/querySelector-attribute-ascii-case-insensitive-html.html:
  • fast/selectors/querySelector-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
  • fast/selectors/querySelector-descendant-combinator-doubled-child-syntax.html: Removed.
Location:
trunk
Files:
10 deleted
40 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r221786 r221788  
     12017-09-08  Antti Koivisto  <antti@apple.com>
     2
     3        Remove support for >> descendant combinator syntax
     4        https://bugs.webkit.org/show_bug.cgi?id=175765
     5
     6        Reviewed by Sam Weinig.
     7
     8        * fast/css/ancestor-of-hovered-element-removed.html:
     9        * fast/css/css-selector-text-expected.txt:
     10        * fast/css/css-selector-text.html:
     11        * fast/css/css-set-selector-text-expected.txt:
     12        * fast/css/css-set-selector-text.html:
     13        * fast/css/currentColor-value-style-update.html:
     14        * fast/css/descendant-combinator-doubled-child-syntax-styling-expected.html: Removed.
     15        * fast/css/descendant-combinator-doubled-child-syntax-styling.html: Removed.
     16        * fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
     17        * fast/css/parsing-css-attribute-case-insensitive-value-1.html:
     18        * fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt:
     19        * fast/css/parsing-css-attribute-case-insensitive-value-4.html:
     20        * fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
     21        * fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html: Removed.
     22        * fast/selectors/case-insensitive-attribute-register-requirement-2.html:
     23        * fast/selectors/element-closest-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
     24        * fast/selectors/element-closest-descendant-combinator-doubled-child-syntax.html: Removed.
     25        * fast/selectors/element-matches-attribute-ascii-case-insensitive-html.html:
     26        * fast/selectors/element-matches-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
     27        * fast/selectors/element-matches-descendant-combinator-doubled-child-syntax.html: Removed.
     28        * fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html:
     29        * fast/selectors/id-attribute-querySelector-used-as-id-selector.html:
     30        * fast/selectors/nth-child-matching-first.html:
     31        * fast/selectors/nth-last-child-matching-first.html:
     32        * fast/selectors/querySelector-attribute-ascii-case-insensitive-html.html:
     33        * fast/selectors/querySelector-descendant-combinator-doubled-child-syntax-expected.txt: Removed.
     34        * fast/selectors/querySelector-descendant-combinator-doubled-child-syntax.html: Removed.
     35
    1362017-09-08  Per Arne Vollan  <pvollan@apple.com>
    237
  • trunk/LayoutTests/fast/css/ancestor-of-hovered-element-removed.html

    r203321 r221788  
    1111        background-color: rgb(50, 100, 150) !important;
    1212    }
    13     #prime-ancestor >> div {
     13    #prime-ancestor div {
    1414        width: 100px;
    1515        height: 100px;
  • trunk/LayoutTests/fast/css/css-selector-text-expected.txt

    r209547 r221788  
    3232PASS parseThenSerializeRule('a:active { }') is 'a:active { }'
    3333PASS parseThenSerializeRule('a b { }') is 'a b { }'
    34 PASS parseThenSerializeRule('a >> b { }') is 'a >> b { }'
    3534PASS parseThenSerializeRule('a + b { }') is 'a + b { }'
    3635PASS parseThenSerializeRule('a ~ b { }') is 'a ~ b { }'
     
    257256PASS parseThenSerializeRule('input[type=file]:focus { }') is 'input[type="file"]:focus { }'
    258257
    259 PASS parseThenSerializeRule('a>>b { }') is 'a >> b { }'
    260 PASS parseThenSerializeRule('a >>b { }') is 'a >> b { }'
    261 PASS parseThenSerializeRule('a        >>b { }') is 'a >> b { }'
    262 PASS parseThenSerializeRule('a>> b { }') is 'a >> b { }'
    263 PASS parseThenSerializeRule('a>>       b { }') is 'a >> b { }'
    264 PASS parseThenSerializeRule('a        >>       b { }') is 'a >> b { }'
    265258PASS parseThenSerializeRule('a+b { }') is 'a + b { }'
    266259PASS parseThenSerializeRule('a~b { }') is 'a ~ b { }'
  • trunk/LayoutTests/fast/css/css-selector-text.html

    r209547 r221788  
    8585testSelectorRoundTrip('a:active');
    8686testSelectorRoundTrip('a b');
    87 testSelectorRoundTrip('a >> b');
    8887testSelectorRoundTrip('a + b');
    8988testSelectorRoundTrip('a ~ b');
     
    362361debug('');
    363362
    364 shouldBe("parseThenSerializeRule('a>>b { }')", "'a >> b { }'");
    365 shouldBe("parseThenSerializeRule('a >>b { }')", "'a >> b { }'");
    366 shouldBe("parseThenSerializeRule('a        >>b { }')", "'a >> b { }'");
    367 shouldBe("parseThenSerializeRule('a>> b { }')", "'a >> b { }'");
    368 shouldBe("parseThenSerializeRule('a>>       b { }')", "'a >> b { }'");
    369 shouldBe("parseThenSerializeRule('a        >>       b { }')", "'a >> b { }'");
    370363shouldBe("parseThenSerializeRule('a+b { }')", "'a + b { }'");
    371364shouldBe("parseThenSerializeRule('a~b { }')", "'a ~ b { }'");
  • trunk/LayoutTests/fast/css/css-set-selector-text-expected.txt

    r209547 r221788  
    4242PASS setThenReadSelectorText('a:active') is 'a:active'
    4343PASS setThenReadSelectorText('a b') is 'a b'
    44 PASS setThenReadSelectorText('a >> b') is 'a >> b'
    4544PASS setThenReadSelectorText('a + b') is 'a + b'
    4645PASS setThenReadSelectorText('a ~ b') is 'a ~ b'
     
    252251PASS setThenReadSelectorText('input[type=file]:focus') is 'input[type="file"]:focus'
    253252
    254 PASS setThenReadSelectorText('a>>b') is 'a >> b'
    255 PASS setThenReadSelectorText('a >>b') is 'a >> b'
    256 PASS setThenReadSelectorText('a        >>b') is 'a >> b'
    257 PASS setThenReadSelectorText('a>> b') is 'a >> b'
    258 PASS setThenReadSelectorText('a>>       b') is 'a >> b'
    259 PASS setThenReadSelectorText('a        >>       b') is 'a >> b'
    260253PASS setThenReadSelectorText('a+b') is 'a + b'
    261254PASS setThenReadSelectorText('a~b') is 'a ~ b'
  • trunk/LayoutTests/fast/css/css-set-selector-text.html

    r209547 r221788  
    102102testSelectorRoundTrip('a:active');
    103103testSelectorRoundTrip('a b');
    104 testSelectorRoundTrip('a >> b');
    105104testSelectorRoundTrip('a + b');
    106105testSelectorRoundTrip('a ~ b');
     
    359358debug('');
    360359
    361 shouldBe("setThenReadSelectorText('a>>b')", "'a >> b'");
    362 shouldBe("setThenReadSelectorText('a >>b')", "'a >> b'");
    363 shouldBe("setThenReadSelectorText('a        >>b')", "'a >> b'");
    364 shouldBe("setThenReadSelectorText('a>> b')", "'a >> b'");
    365 shouldBe("setThenReadSelectorText('a>>       b')", "'a >> b'");
    366 shouldBe("setThenReadSelectorText('a        >>       b')", "'a >> b'");
    367360shouldBe("setThenReadSelectorText('a+b')", "'a + b'");
    368361shouldBe("setThenReadSelectorText('a~b')", "'a ~ b'");
  • trunk/LayoutTests/fast/css/currentColor-value-style-update-expected.txt

    r182130 r221788  
    66
    77Initial state.
    8 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).borderColor is "rgb(4, 5, 6)"
    9 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).backgroundColor is "rgb(4, 5, 6)"
    10 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).borderColor is "rgb(4, 5, 6)"
    11 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).backgroundColor is "rgb(4, 5, 6)"
    12 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).borderColor is "rgb(4, 5, 6)"
    13 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).backgroundColor is "rgb(4, 5, 6)"
    14 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).borderColor is "rgb(4, 5, 6)"
    15 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).backgroundColor is "rgb(4, 5, 6)"
     8PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).borderColor is "rgb(4, 5, 6)"
     9PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).backgroundColor is "rgb(4, 5, 6)"
     10PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).borderColor is "rgb(4, 5, 6)"
     11PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).backgroundColor is "rgb(4, 5, 6)"
     12PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).borderColor is "rgb(4, 5, 6)"
     13PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).backgroundColor is "rgb(4, 5, 6)"
     14PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).borderColor is "rgb(4, 5, 6)"
     15PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).backgroundColor is "rgb(4, 5, 6)"
    1616
    1717Let's override the style of the wrapper through their style object.
    18 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).borderColor is "rgb(7, 8, 9)"
    19 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).backgroundColor is "rgb(7, 8, 9)"
    20 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).borderColor is "rgb(7, 8, 9)"
    21 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).backgroundColor is "rgb(7, 8, 9)"
    22 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).borderColor is "rgb(7, 8, 9)"
    23 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).backgroundColor is "rgb(7, 8, 9)"
    24 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).borderColor is "rgb(7, 8, 9)"
    25 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).backgroundColor is "rgb(7, 8, 9)"
     18PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).borderColor is "rgb(7, 8, 9)"
     19PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).backgroundColor is "rgb(7, 8, 9)"
     20PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).borderColor is "rgb(7, 8, 9)"
     21PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).backgroundColor is "rgb(7, 8, 9)"
     22PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).borderColor is "rgb(7, 8, 9)"
     23PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).backgroundColor is "rgb(7, 8, 9)"
     24PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).borderColor is "rgb(7, 8, 9)"
     25PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).backgroundColor is "rgb(7, 8, 9)"
    2626
    2727Let's remove the style attribute on the wrapper.
    28 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).borderColor is "rgb(4, 5, 6)"
    29 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).backgroundColor is "rgb(4, 5, 6)"
    30 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).borderColor is "rgb(4, 5, 6)"
    31 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).backgroundColor is "rgb(4, 5, 6)"
    32 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).borderColor is "rgb(4, 5, 6)"
    33 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).backgroundColor is "rgb(4, 5, 6)"
    34 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).borderColor is "rgb(4, 5, 6)"
    35 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).backgroundColor is "rgb(4, 5, 6)"
     28PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).borderColor is "rgb(4, 5, 6)"
     29PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).backgroundColor is "rgb(4, 5, 6)"
     30PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).borderColor is "rgb(4, 5, 6)"
     31PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).backgroundColor is "rgb(4, 5, 6)"
     32PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).borderColor is "rgb(4, 5, 6)"
     33PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).backgroundColor is "rgb(4, 5, 6)"
     34PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).borderColor is "rgb(4, 5, 6)"
     35PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).backgroundColor is "rgb(4, 5, 6)"
    3636
    3737Let's remove class on the wrappers.
    38 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).borderColor is "rgb(1, 2, 3)"
    39 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).backgroundColor is "rgb(1, 2, 3)"
    40 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).borderColor is "rgb(1, 2, 3)"
    41 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).backgroundColor is "rgb(1, 2, 3)"
    42 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).borderColor is "rgb(1, 2, 3)"
    43 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).backgroundColor is "rgb(1, 2, 3)"
    44 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).borderColor is "rgb(1, 2, 3)"
    45 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).backgroundColor is "rgb(1, 2, 3)"
     38PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).borderColor is "rgb(1, 2, 3)"
     39PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).backgroundColor is "rgb(1, 2, 3)"
     40PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).borderColor is "rgb(1, 2, 3)"
     41PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).backgroundColor is "rgb(1, 2, 3)"
     42PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).borderColor is "rgb(1, 2, 3)"
     43PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).backgroundColor is "rgb(1, 2, 3)"
     44PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).borderColor is "rgb(1, 2, 3)"
     45PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).backgroundColor is "rgb(1, 2, 3)"
    4646
    4747Then add it back.
    48 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).borderColor is "rgb(4, 5, 6)"
    49 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[0]).backgroundColor is "rgb(4, 5, 6)"
    50 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).borderColor is "rgb(4, 5, 6)"
    51 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[1]).backgroundColor is "rgb(4, 5, 6)"
    52 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).borderColor is "rgb(4, 5, 6)"
    53 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[2]).backgroundColor is "rgb(4, 5, 6)"
    54 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).borderColor is "rgb(4, 5, 6)"
    55 PASS getComputedStyle(document.querySelectorAll(".test-case >> target")[3]).backgroundColor is "rgb(4, 5, 6)"
     48PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).borderColor is "rgb(4, 5, 6)"
     49PASS getComputedStyle(document.querySelectorAll(".test-case target")[0]).backgroundColor is "rgb(4, 5, 6)"
     50PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).borderColor is "rgb(4, 5, 6)"
     51PASS getComputedStyle(document.querySelectorAll(".test-case target")[1]).backgroundColor is "rgb(4, 5, 6)"
     52PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).borderColor is "rgb(4, 5, 6)"
     53PASS getComputedStyle(document.querySelectorAll(".test-case target")[2]).backgroundColor is "rgb(4, 5, 6)"
     54PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).borderColor is "rgb(4, 5, 6)"
     55PASS getComputedStyle(document.querySelectorAll(".test-case target")[3]).backgroundColor is "rgb(4, 5, 6)"
    5656PASS successfullyParsed is true
    5757
  • trunk/LayoutTests/fast/css/currentColor-value-style-update.html

    r182130 r221788  
    1818    jsTestIsAsync = true;
    1919    function testColor(expectedColor) {
    20         var allTargets = document.querySelectorAll(".test-case >> target");
     20        var allTargets = document.querySelectorAll(".test-case target");
    2121        for (var i = 0; i < allTargets.length; ++i) {
    22             shouldBeEqualToString('getComputedStyle(document.querySelectorAll(".test-case >> target")[' + i + ']).borderColor', expectedColor);
    23             shouldBeEqualToString('getComputedStyle(document.querySelectorAll(".test-case >> target")[' + i + ']).backgroundColor', expectedColor);
     22            shouldBeEqualToString('getComputedStyle(document.querySelectorAll(".test-case target")[' + i + ']).borderColor', expectedColor);
     23            shouldBeEqualToString('getComputedStyle(document.querySelectorAll(".test-case target")[' + i + ']).backgroundColor', expectedColor);
    2424        }
    2525    }
  • trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt

    r209545 r221788  
    1414PASS document.getElementById('style-container').sheet.cssRules.length is 1
    1515PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo=\"bar\" i]"
    16 PASS document.querySelector("foo >> bar [foo=bar i]") did not throw exception.
    17 PASS document.querySelector("foo >> bar [*|foo=bar i]") did not throw exception.
    18 PASS document.querySelector("foo >> bar [|foo=bar i]") did not throw exception.
    19 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    20 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo=\"bar\" i]"
    21 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    22 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo=\"bar\" i]"
    23 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    24 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo=\"bar\" i]"
     16PASS document.querySelector("foo bar [foo=bar i]") did not throw exception.
     17PASS document.querySelector("foo bar [*|foo=bar i]") did not throw exception.
     18PASS document.querySelector("foo bar [|foo=bar i]") did not throw exception.
     19PASS document.getElementById('style-container').sheet.cssRules.length is 1
     20PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo=\"bar\" i]"
     21PASS document.getElementById('style-container').sheet.cssRules.length is 1
     22PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo=\"bar\" i]"
     23PASS document.getElementById('style-container').sheet.cssRules.length is 1
     24PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo=\"bar\" i]"
    2525PASS document.querySelector(":nth-child(2n+1 of [foo=bar i])") did not throw exception.
    2626PASS document.querySelector(":nth-child(2n+1 of [*|foo=bar i])") did not throw exception.
     
    6868PASS document.getElementById('style-container').sheet.cssRules.length is 1
    6969PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo=\"bar\" i]"
    70 PASS document.querySelector("foo >> bar [foo=\"bar\" i]") did not throw exception.
    71 PASS document.querySelector("foo >> bar [*|foo=\"bar\" i]") did not throw exception.
    72 PASS document.querySelector("foo >> bar [|foo=\"bar\" i]") did not throw exception.
    73 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    74 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo=\"bar\" i]"
    75 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    76 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo=\"bar\" i]"
    77 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    78 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo=\"bar\" i]"
     70PASS document.querySelector("foo bar [foo=\"bar\" i]") did not throw exception.
     71PASS document.querySelector("foo bar [*|foo=\"bar\" i]") did not throw exception.
     72PASS document.querySelector("foo bar [|foo=\"bar\" i]") did not throw exception.
     73PASS document.getElementById('style-container').sheet.cssRules.length is 1
     74PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo=\"bar\" i]"
     75PASS document.getElementById('style-container').sheet.cssRules.length is 1
     76PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo=\"bar\" i]"
     77PASS document.getElementById('style-container').sheet.cssRules.length is 1
     78PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo=\"bar\" i]"
    7979PASS document.querySelector(":nth-child(2n+1 of [foo=\"bar\" i])") did not throw exception.
    8080PASS document.querySelector(":nth-child(2n+1 of [*|foo=\"bar\" i])") did not throw exception.
     
    122122PASS document.getElementById('style-container').sheet.cssRules.length is 1
    123123PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo~=\"bar\" i]"
    124 PASS document.querySelector("foo >> bar [foo~=bar i]") did not throw exception.
    125 PASS document.querySelector("foo >> bar [*|foo~=bar i]") did not throw exception.
    126 PASS document.querySelector("foo >> bar [|foo~=bar i]") did not throw exception.
    127 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    128 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo~=\"bar\" i]"
    129 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    130 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo~=\"bar\" i]"
    131 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    132 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo~=\"bar\" i]"
     124PASS document.querySelector("foo bar [foo~=bar i]") did not throw exception.
     125PASS document.querySelector("foo bar [*|foo~=bar i]") did not throw exception.
     126PASS document.querySelector("foo bar [|foo~=bar i]") did not throw exception.
     127PASS document.getElementById('style-container').sheet.cssRules.length is 1
     128PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo~=\"bar\" i]"
     129PASS document.getElementById('style-container').sheet.cssRules.length is 1
     130PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo~=\"bar\" i]"
     131PASS document.getElementById('style-container').sheet.cssRules.length is 1
     132PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo~=\"bar\" i]"
    133133PASS document.querySelector(":nth-child(2n+1 of [foo~=bar i])") did not throw exception.
    134134PASS document.querySelector(":nth-child(2n+1 of [*|foo~=bar i])") did not throw exception.
     
    176176PASS document.getElementById('style-container').sheet.cssRules.length is 1
    177177PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo~=\"bar\" i]"
    178 PASS document.querySelector("foo >> bar [foo~=\"bar\" i]") did not throw exception.
    179 PASS document.querySelector("foo >> bar [*|foo~=\"bar\" i]") did not throw exception.
    180 PASS document.querySelector("foo >> bar [|foo~=\"bar\" i]") did not throw exception.
    181 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    182 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo~=\"bar\" i]"
    183 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    184 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo~=\"bar\" i]"
    185 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    186 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo~=\"bar\" i]"
     178PASS document.querySelector("foo bar [foo~=\"bar\" i]") did not throw exception.
     179PASS document.querySelector("foo bar [*|foo~=\"bar\" i]") did not throw exception.
     180PASS document.querySelector("foo bar [|foo~=\"bar\" i]") did not throw exception.
     181PASS document.getElementById('style-container').sheet.cssRules.length is 1
     182PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo~=\"bar\" i]"
     183PASS document.getElementById('style-container').sheet.cssRules.length is 1
     184PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo~=\"bar\" i]"
     185PASS document.getElementById('style-container').sheet.cssRules.length is 1
     186PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo~=\"bar\" i]"
    187187PASS document.querySelector(":nth-child(2n+1 of [foo~=\"bar\" i])") did not throw exception.
    188188PASS document.querySelector(":nth-child(2n+1 of [*|foo~=\"bar\" i])") did not throw exception.
     
    230230PASS document.getElementById('style-container').sheet.cssRules.length is 1
    231231PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo|=\"bar\" i]"
    232 PASS document.querySelector("foo >> bar [foo|=bar i]") did not throw exception.
    233 PASS document.querySelector("foo >> bar [*|foo|=bar i]") did not throw exception.
    234 PASS document.querySelector("foo >> bar [|foo|=bar i]") did not throw exception.
    235 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    236 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo|=\"bar\" i]"
    237 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    238 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo|=\"bar\" i]"
    239 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    240 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo|=\"bar\" i]"
     232PASS document.querySelector("foo bar [foo|=bar i]") did not throw exception.
     233PASS document.querySelector("foo bar [*|foo|=bar i]") did not throw exception.
     234PASS document.querySelector("foo bar [|foo|=bar i]") did not throw exception.
     235PASS document.getElementById('style-container').sheet.cssRules.length is 1
     236PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo|=\"bar\" i]"
     237PASS document.getElementById('style-container').sheet.cssRules.length is 1
     238PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo|=\"bar\" i]"
     239PASS document.getElementById('style-container').sheet.cssRules.length is 1
     240PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo|=\"bar\" i]"
    241241PASS document.querySelector(":nth-child(2n+1 of [foo|=bar i])") did not throw exception.
    242242PASS document.querySelector(":nth-child(2n+1 of [*|foo|=bar i])") did not throw exception.
     
    284284PASS document.getElementById('style-container').sheet.cssRules.length is 1
    285285PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo|=\"bar\" i]"
    286 PASS document.querySelector("foo >> bar [foo|=\"bar\" i]") did not throw exception.
    287 PASS document.querySelector("foo >> bar [*|foo|=\"bar\" i]") did not throw exception.
    288 PASS document.querySelector("foo >> bar [|foo|=\"bar\" i]") did not throw exception.
    289 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    290 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo|=\"bar\" i]"
    291 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    292 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo|=\"bar\" i]"
    293 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    294 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo|=\"bar\" i]"
     286PASS document.querySelector("foo bar [foo|=\"bar\" i]") did not throw exception.
     287PASS document.querySelector("foo bar [*|foo|=\"bar\" i]") did not throw exception.
     288PASS document.querySelector("foo bar [|foo|=\"bar\" i]") did not throw exception.
     289PASS document.getElementById('style-container').sheet.cssRules.length is 1
     290PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo|=\"bar\" i]"
     291PASS document.getElementById('style-container').sheet.cssRules.length is 1
     292PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo|=\"bar\" i]"
     293PASS document.getElementById('style-container').sheet.cssRules.length is 1
     294PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo|=\"bar\" i]"
    295295PASS document.querySelector(":nth-child(2n+1 of [foo|=\"bar\" i])") did not throw exception.
    296296PASS document.querySelector(":nth-child(2n+1 of [*|foo|=\"bar\" i])") did not throw exception.
     
    338338PASS document.getElementById('style-container').sheet.cssRules.length is 1
    339339PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo^=\"bar\" i]"
    340 PASS document.querySelector("foo >> bar [foo^=bar i]") did not throw exception.
    341 PASS document.querySelector("foo >> bar [*|foo^=bar i]") did not throw exception.
    342 PASS document.querySelector("foo >> bar [|foo^=bar i]") did not throw exception.
    343 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    344 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo^=\"bar\" i]"
    345 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    346 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo^=\"bar\" i]"
    347 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    348 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo^=\"bar\" i]"
     340PASS document.querySelector("foo bar [foo^=bar i]") did not throw exception.
     341PASS document.querySelector("foo bar [*|foo^=bar i]") did not throw exception.
     342PASS document.querySelector("foo bar [|foo^=bar i]") did not throw exception.
     343PASS document.getElementById('style-container').sheet.cssRules.length is 1
     344PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo^=\"bar\" i]"
     345PASS document.getElementById('style-container').sheet.cssRules.length is 1
     346PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo^=\"bar\" i]"
     347PASS document.getElementById('style-container').sheet.cssRules.length is 1
     348PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo^=\"bar\" i]"
    349349PASS document.querySelector(":nth-child(2n+1 of [foo^=bar i])") did not throw exception.
    350350PASS document.querySelector(":nth-child(2n+1 of [*|foo^=bar i])") did not throw exception.
     
    392392PASS document.getElementById('style-container').sheet.cssRules.length is 1
    393393PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo^=\"bar\" i]"
    394 PASS document.querySelector("foo >> bar [foo^=\"bar\" i]") did not throw exception.
    395 PASS document.querySelector("foo >> bar [*|foo^=\"bar\" i]") did not throw exception.
    396 PASS document.querySelector("foo >> bar [|foo^=\"bar\" i]") did not throw exception.
    397 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    398 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo^=\"bar\" i]"
    399 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    400 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo^=\"bar\" i]"
    401 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    402 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo^=\"bar\" i]"
     394PASS document.querySelector("foo bar [foo^=\"bar\" i]") did not throw exception.
     395PASS document.querySelector("foo bar [*|foo^=\"bar\" i]") did not throw exception.
     396PASS document.querySelector("foo bar [|foo^=\"bar\" i]") did not throw exception.
     397PASS document.getElementById('style-container').sheet.cssRules.length is 1
     398PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo^=\"bar\" i]"
     399PASS document.getElementById('style-container').sheet.cssRules.length is 1
     400PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo^=\"bar\" i]"
     401PASS document.getElementById('style-container').sheet.cssRules.length is 1
     402PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo^=\"bar\" i]"
    403403PASS document.querySelector(":nth-child(2n+1 of [foo^=\"bar\" i])") did not throw exception.
    404404PASS document.querySelector(":nth-child(2n+1 of [*|foo^=\"bar\" i])") did not throw exception.
     
    446446PASS document.getElementById('style-container').sheet.cssRules.length is 1
    447447PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo$=\"bar\" i]"
    448 PASS document.querySelector("foo >> bar [foo$=bar i]") did not throw exception.
    449 PASS document.querySelector("foo >> bar [*|foo$=bar i]") did not throw exception.
    450 PASS document.querySelector("foo >> bar [|foo$=bar i]") did not throw exception.
    451 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    452 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo$=\"bar\" i]"
    453 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    454 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo$=\"bar\" i]"
    455 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    456 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo$=\"bar\" i]"
     448PASS document.querySelector("foo bar [foo$=bar i]") did not throw exception.
     449PASS document.querySelector("foo bar [*|foo$=bar i]") did not throw exception.
     450PASS document.querySelector("foo bar [|foo$=bar i]") did not throw exception.
     451PASS document.getElementById('style-container').sheet.cssRules.length is 1
     452PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo$=\"bar\" i]"
     453PASS document.getElementById('style-container').sheet.cssRules.length is 1
     454PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo$=\"bar\" i]"
     455PASS document.getElementById('style-container').sheet.cssRules.length is 1
     456PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo$=\"bar\" i]"
    457457PASS document.querySelector(":nth-child(2n+1 of [foo$=bar i])") did not throw exception.
    458458PASS document.querySelector(":nth-child(2n+1 of [*|foo$=bar i])") did not throw exception.
     
    500500PASS document.getElementById('style-container').sheet.cssRules.length is 1
    501501PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo$=\"bar\" i]"
    502 PASS document.querySelector("foo >> bar [foo$=\"bar\" i]") did not throw exception.
    503 PASS document.querySelector("foo >> bar [*|foo$=\"bar\" i]") did not throw exception.
    504 PASS document.querySelector("foo >> bar [|foo$=\"bar\" i]") did not throw exception.
    505 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    506 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo$=\"bar\" i]"
    507 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    508 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo$=\"bar\" i]"
    509 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    510 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo$=\"bar\" i]"
     502PASS document.querySelector("foo bar [foo$=\"bar\" i]") did not throw exception.
     503PASS document.querySelector("foo bar [*|foo$=\"bar\" i]") did not throw exception.
     504PASS document.querySelector("foo bar [|foo$=\"bar\" i]") did not throw exception.
     505PASS document.getElementById('style-container').sheet.cssRules.length is 1
     506PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo$=\"bar\" i]"
     507PASS document.getElementById('style-container').sheet.cssRules.length is 1
     508PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo$=\"bar\" i]"
     509PASS document.getElementById('style-container').sheet.cssRules.length is 1
     510PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo$=\"bar\" i]"
    511511PASS document.querySelector(":nth-child(2n+1 of [foo$=\"bar\" i])") did not throw exception.
    512512PASS document.querySelector(":nth-child(2n+1 of [*|foo$=\"bar\" i])") did not throw exception.
     
    554554PASS document.getElementById('style-container').sheet.cssRules.length is 1
    555555PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo*=\"bar\" i]"
    556 PASS document.querySelector("foo >> bar [foo*=bar i]") did not throw exception.
    557 PASS document.querySelector("foo >> bar [*|foo*=bar i]") did not throw exception.
    558 PASS document.querySelector("foo >> bar [|foo*=bar i]") did not throw exception.
    559 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    560 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo*=\"bar\" i]"
    561 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    562 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo*=\"bar\" i]"
    563 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    564 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo*=\"bar\" i]"
     556PASS document.querySelector("foo bar [foo*=bar i]") did not throw exception.
     557PASS document.querySelector("foo bar [*|foo*=bar i]") did not throw exception.
     558PASS document.querySelector("foo bar [|foo*=bar i]") did not throw exception.
     559PASS document.getElementById('style-container').sheet.cssRules.length is 1
     560PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo*=\"bar\" i]"
     561PASS document.getElementById('style-container').sheet.cssRules.length is 1
     562PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo*=\"bar\" i]"
     563PASS document.getElementById('style-container').sheet.cssRules.length is 1
     564PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo*=\"bar\" i]"
    565565PASS document.querySelector(":nth-child(2n+1 of [foo*=bar i])") did not throw exception.
    566566PASS document.querySelector(":nth-child(2n+1 of [*|foo*=bar i])") did not throw exception.
     
    608608PASS document.getElementById('style-container').sheet.cssRules.length is 1
    609609PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "[*|foo*=\"bar\" i]"
    610 PASS document.querySelector("foo >> bar [foo*=\"bar\" i]") did not throw exception.
    611 PASS document.querySelector("foo >> bar [*|foo*=\"bar\" i]") did not throw exception.
    612 PASS document.querySelector("foo >> bar [|foo*=\"bar\" i]") did not throw exception.
    613 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    614 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo*=\"bar\" i]"
    615 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    616 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [foo*=\"bar\" i]"
    617 PASS document.getElementById('style-container').sheet.cssRules.length is 1
    618 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo >> bar [*|foo*=\"bar\" i]"
     610PASS document.querySelector("foo bar [foo*=\"bar\" i]") did not throw exception.
     611PASS document.querySelector("foo bar [*|foo*=\"bar\" i]") did not throw exception.
     612PASS document.querySelector("foo bar [|foo*=\"bar\" i]") did not throw exception.
     613PASS document.getElementById('style-container').sheet.cssRules.length is 1
     614PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo*=\"bar\" i]"
     615PASS document.getElementById('style-container').sheet.cssRules.length is 1
     616PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [foo*=\"bar\" i]"
     617PASS document.getElementById('style-container').sheet.cssRules.length is 1
     618PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is "foo bar [*|foo*=\"bar\" i]"
    619619PASS document.querySelector(":nth-child(2n+1 of [foo*=\"bar\" i])") did not throw exception.
    620620PASS document.querySelector(":nth-child(2n+1 of [*|foo*=\"bar\" i])") did not throw exception.
  • trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-1.html

    r209545 r221788  
    5151
    5252    // Used in function pseudo classes.
    53     testValidSelector("foo >> bar " + testCase[0], "foo >> bar " + testCase[1]);
     53    testValidSelector("foo bar " + testCase[0], "foo bar " + testCase[1]);
    5454    testValidSelector(":nth-child(2n+1 of " + testCase[0] + ")", ":nth-child(2n+1 of " + testCase[1] + ")");
    5555    testValidSelector(":nth-last-child(2n+1 of " + testCase[0] + ")", ":nth-last-child(2n+1 of " + testCase[1] + ")");
  • trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt

    r179819 r221788  
    77PASS getComputedStyle(document.getElementById('target')).backgroundColor is "rgb(255, 0, 0)"
    88PASS document.getElementById('style-container').sheet.cssRules.length is 2
    9 PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":matches(#notthere >> div, #target)"
    10 PASS document.getElementById('style-container').sheet.cssRules[0].cssText is ":matches(#notthere >> div, #target) { background-color: red; }"
    11 PASS document.getElementById('style-container').sheet.cssRules[1].selectorText is ":matches(#notthere >> foobar, #target)"
    12 PASS document.getElementById('style-container').sheet.cssRules[1].cssText is ":matches(#notthere >> foobar, #target) { color: lime; }"
     9PASS document.getElementById('style-container').sheet.cssRules[0].selectorText is ":matches(#notthere div, #target)"
     10PASS document.getElementById('style-container').sheet.cssRules[0].cssText is ":matches(#notthere div, #target) { background-color: red; }"
     11PASS document.getElementById('style-container').sheet.cssRules[1].selectorText is ":matches(#notthere foobar, #target)"
     12PASS document.getElementById('style-container').sheet.cssRules[1].cssText is ":matches(#notthere foobar, #target) { color: lime; }"
    1313PASS successfullyParsed is true
    1414
  • trunk/LayoutTests/fast/css/parsing-css-attribute-case-insensitive-value-4.html

    r179819 r221788  
    44<script src="../../resources/js-test-pre.js"></script>
    55<style id="style-container">
    6     :matches(#notthere >> div, #target) {
     6    :matches(#notthere div, #target) {
    77        background-color: red;
    88    }
    99
    1010    /* This selector list is invalid because the attribute flag "invalid" is invalid. */
    11     :matches(#nothere >> valid, #notthere >> [invalid="yep" invalid], #target) {
     11    :matches(#nothere valid, #notthere [invalid="yep" invalid], #target) {
    1212        background-color: blue;
    1313    }
    1414
    15     :matches(#notthere >> foobar, #target) {
     15    :matches(#notthere foobar, #target) {
    1616        color: lime;
    1717    }
    1818
    1919    /* This selector list is invalid because the attribute flag "u" is invalid. */
    20     :matches(#nothere >> valid, #notthere >> [invalid="yep" u], #target) {
     20    :matches(#nothere valid, #notthere [invalid="yep" u], #target) {
    2121        color: blue;
    2222    }
     
    3333shouldBeEqualToString("getComputedStyle(document.getElementById('target')).backgroundColor", "rgb(255, 0, 0)");
    3434shouldBe("document.getElementById('style-container').sheet.cssRules.length", "2");
    35 shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[0].selectorText", ":matches(#notthere >> div, #target)");
    36 shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[0].cssText", ":matches(#notthere >> div, #target) { background-color: red; }");
    37 shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[1].selectorText", ":matches(#notthere >> foobar, #target)");
    38 shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[1].cssText", ":matches(#notthere >> foobar, #target) { color: lime; }");
     35shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[0].selectorText", ":matches(#notthere div, #target)");
     36shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[0].cssText", ":matches(#notthere div, #target) { background-color: red; }");
     37shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[1].selectorText", ":matches(#notthere foobar, #target)");
     38shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[1].cssText", ":matches(#notthere foobar, #target) { color: lime; }");
    3939</script>
    4040<script src="../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/fast/selectors/case-insensitive-attribute-register-requirement-2-expected.txt

    r180544 r221788  
    44
    55
    6 Testing "[type=foobar i] > * > * >> innerTestCase"
    7 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase').length is 8
    8 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    9 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    10 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    11 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    12 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    13 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    14 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    15 PASS document.querySelectorAll('[type=foobar i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    16 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    17 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    18 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    19 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    20 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    21 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    22 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    23 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    24 
    25 Testing "[attribute1=VALUE1 i] > * > * >> innerTestCase"
    26 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase').length is 7
    27 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    28 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    29 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    30 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[3].id is "innertestcase5"
    31 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[4].id is "innertestcase6"
    32 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[5].id is "innertestcase7"
    33 PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * >> innerTestCase')[6].id is "innertestcase8"
     6Testing "[type=foobar i] > * > * innerTestCase"
     7PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase').length is 8
     8PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[0].id is "innertestcase1"
     9PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[1].id is "innertestcase2"
     10PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[2].id is "innertestcase3"
     11PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[3].id is "innertestcase4"
     12PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[4].id is "innertestcase5"
     13PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[5].id is "innertestcase6"
     14PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[6].id is "innertestcase7"
     15PASS document.querySelectorAll('[type=foobar i] > * > * innerTestCase')[7].id is "innertestcase8"
     16PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     17PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     18PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     19PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     20PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     21PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     22PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     23PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     24
     25Testing "[attribute1=VALUE1 i] > * > * innerTestCase"
     26PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase').length is 7
     27PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[0].id is "innertestcase1"
     28PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[1].id is "innertestcase2"
     29PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[2].id is "innertestcase3"
     30PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[3].id is "innertestcase5"
     31PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[4].id is "innertestcase6"
     32PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[5].id is "innertestcase7"
     33PASS document.querySelectorAll('[attribute1=VALUE1 i] > * > * innerTestCase')[6].id is "innertestcase8"
    3434PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    3535PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     
    4141PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    4242
    43 Testing "[type=foobar i] ~ * ~ * >> innerTestCase"
    44 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase').length is 7
    45 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    46 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    47 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    48 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    49 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    50 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    51 PASS document.querySelectorAll('[type=foobar i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    52 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    53 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    54 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    55 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    56 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    57 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    58 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    59 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    60 
    61 Testing "[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase"
    62 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase').length is 7
    63 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    64 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    65 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    66 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    67 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    68 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    69 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    70 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    71 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    72 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    73 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    74 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    75 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    76 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    77 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    78 
    79 Testing "[type=foobar i] ~ * ~ *  > * > * >> innerTestCase"
    80 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    81 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    82 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    83 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    84 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    85 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    86 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    87 PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    88 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    89 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    90 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    91 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    92 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    93 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    94 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    95 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    96 
    97 Testing "[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase"
    98 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    99 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    100 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    101 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    102 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    103 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    104 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    105 PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    106 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    107 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    108 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    109 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    110 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    111 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    112 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    113 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    114 
    115 Testing "[type~=fOobar i] > * > * >> innerTestCase"
    116 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase').length is 8
    117 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    118 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    119 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    120 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    121 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    122 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    123 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    124 PASS document.querySelectorAll('[type~=fOobar i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    125 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    126 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    127 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    128 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    129 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    130 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    131 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    132 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    133 
    134 Testing "[type~=foObar i] ~ * ~ * >> innerTestCase"
    135 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase').length is 7
    136 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    137 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    138 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    139 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    140 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    141 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    142 PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    143 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    144 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    145 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    146 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    147 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    148 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    149 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    150 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    151 
    152 Testing "[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase"
    153 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    154 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    155 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    156 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    157 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    158 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    159 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    160 PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    161 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    162 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    163 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    164 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    165 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    166 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    167 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    168 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    169 
    170 Testing "[type|=foObar i] > * > * >> innerTestCase"
    171 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase').length is 8
    172 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    173 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    174 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    175 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    176 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    177 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    178 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    179 PASS document.querySelectorAll('[type|=foObar i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    180 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    181 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    182 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    183 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    184 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    185 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    186 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    187 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    188 
    189 Testing "[type|=fooBar i] ~ * ~ * >> innerTestCase"
    190 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase').length is 7
    191 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    192 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    193 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    194 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    195 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    196 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    197 PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    198 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    199 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    200 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    201 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    202 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    203 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    204 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    205 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    206 
    207 Testing "[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase"
    208 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    209 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    210 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    211 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    212 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    213 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    214 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    215 PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    216 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    217 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    218 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    219 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    220 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    221 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    222 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    223 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    224 
    225 Testing "[type^=fooBa i] > * > * >> innerTestCase"
    226 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase').length is 8
    227 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    228 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    229 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    230 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    231 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    232 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    233 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    234 PASS document.querySelectorAll('[type^=fooBa i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    235 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    236 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    237 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    238 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    239 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    240 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    241 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    242 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    243 
    244 Testing "[type^=fOoba i] ~ * ~ * >> innerTestCase"
    245 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase').length is 7
    246 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    247 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    248 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    249 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    250 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    251 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    252 PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    253 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    254 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    255 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    256 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    257 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    258 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    259 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    260 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    261 
    262 Testing "[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase"
    263 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    264 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    265 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    266 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    267 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    268 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    269 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    270 PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    271 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    272 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    273 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    274 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    275 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    276 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    277 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    278 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    279 
    280 Testing "[type$=oobAr i] > * > * >> innerTestCase"
    281 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase').length is 8
    282 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    283 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    284 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    285 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    286 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    287 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    288 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    289 PASS document.querySelectorAll('[type$=oobAr i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    290 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    291 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    292 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    293 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    294 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    295 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    296 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    297 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    298 
    299 Testing "[type$=oObar i] ~ * ~ * >> innerTestCase"
    300 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase').length is 7
    301 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    302 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    303 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    304 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    305 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    306 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    307 PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    308 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    309 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    310 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    311 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    312 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    313 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    314 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    315 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    316 
    317 Testing "[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase"
    318 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    319 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    320 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    321 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    322 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    323 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    324 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    325 PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
    326 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    327 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    328 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    329 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    330 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    331 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    332 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    333 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    334 
    335 Testing "[type*=oOba i] > * > * >> innerTestCase"
    336 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase').length is 8
    337 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[0].id is "innertestcase1"
    338 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[1].id is "innertestcase2"
    339 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[2].id is "innertestcase3"
    340 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[3].id is "innertestcase4"
    341 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[4].id is "innertestcase5"
    342 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[5].id is "innertestcase6"
    343 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[6].id is "innertestcase7"
    344 PASS document.querySelectorAll('[type*=oOba i] > * > * >> innerTestCase')[7].id is "innertestcase8"
    345 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
    346 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    347 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    348 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    349 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    350 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    351 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    352 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    353 
    354 Testing "[type*=ooBa i] ~ * ~ * >> innerTestCase"
    355 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase').length is 7
    356 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[0].id is "innertestcase2"
    357 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[1].id is "innertestcase3"
    358 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[2].id is "innertestcase4"
    359 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[3].id is "innertestcase5"
    360 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[4].id is "innertestcase6"
    361 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[5].id is "innertestcase7"
    362 PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * >> innerTestCase')[6].id is "innertestcase8"
    363 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    364 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
    365 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
    366 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
    367 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
    368 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
    369 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
    370 PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
    371 
    372 Testing "[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase"
    373 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase').length is 7
    374 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[0].id is "innertestcase2"
    375 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[1].id is "innertestcase3"
    376 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[2].id is "innertestcase4"
    377 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[3].id is "innertestcase5"
    378 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[4].id is "innertestcase6"
    379 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[5].id is "innertestcase7"
    380 PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase')[6].id is "innertestcase8"
     43Testing "[type=foobar i] ~ * ~ * innerTestCase"
     44PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase').length is 7
     45PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     46PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     47PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     48PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     49PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     50PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     51PASS document.querySelectorAll('[type=foobar i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     52PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     53PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     54PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     55PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     56PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     57PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     58PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     59PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     60
     61Testing "[attribute1=VALUE1 i] ~ * ~ * innerTestCase"
     62PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase').length is 7
     63PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     64PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     65PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     66PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     67PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     68PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     69PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     70PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     71PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     72PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     73PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     74PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     75PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     76PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     77PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     78
     79Testing "[type=foobar i] ~ * ~ *  > * > * innerTestCase"
     80PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase').length is 7
     81PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     82PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     83PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     84PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     85PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     86PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     87PASS document.querySelectorAll('[type=foobar i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     88PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     89PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     90PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     91PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     92PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     93PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     94PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     95PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     96
     97Testing "[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase"
     98PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase').length is 7
     99PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     100PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     101PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     102PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     103PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     104PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     105PASS document.querySelectorAll('[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     106PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     107PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     108PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     109PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     110PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     111PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     112PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     113PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     114
     115Testing "[type~=fOobar i] > * > * innerTestCase"
     116PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase').length is 8
     117PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[0].id is "innertestcase1"
     118PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[1].id is "innertestcase2"
     119PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[2].id is "innertestcase3"
     120PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[3].id is "innertestcase4"
     121PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[4].id is "innertestcase5"
     122PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[5].id is "innertestcase6"
     123PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[6].id is "innertestcase7"
     124PASS document.querySelectorAll('[type~=fOobar i] > * > * innerTestCase')[7].id is "innertestcase8"
     125PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     126PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     127PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     128PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     129PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     130PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     131PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     132PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     133
     134Testing "[type~=foObar i] ~ * ~ * innerTestCase"
     135PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase').length is 7
     136PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     137PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     138PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     139PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     140PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     141PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     142PASS document.querySelectorAll('[type~=foObar i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     143PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     144PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     145PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     146PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     147PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     148PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     149PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     150PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     151
     152Testing "[type~=foobar i] ~ * ~ *  > * > * innerTestCase"
     153PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase').length is 7
     154PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     155PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     156PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     157PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     158PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     159PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     160PASS document.querySelectorAll('[type~=foobar i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     161PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     162PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     163PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     164PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     165PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     166PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     167PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     168PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     169
     170Testing "[type|=foObar i] > * > * innerTestCase"
     171PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase').length is 8
     172PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[0].id is "innertestcase1"
     173PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[1].id is "innertestcase2"
     174PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[2].id is "innertestcase3"
     175PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[3].id is "innertestcase4"
     176PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[4].id is "innertestcase5"
     177PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[5].id is "innertestcase6"
     178PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[6].id is "innertestcase7"
     179PASS document.querySelectorAll('[type|=foObar i] > * > * innerTestCase')[7].id is "innertestcase8"
     180PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     181PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     182PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     183PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     184PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     185PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     186PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     187PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     188
     189Testing "[type|=fooBar i] ~ * ~ * innerTestCase"
     190PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase').length is 7
     191PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     192PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     193PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     194PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     195PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     196PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     197PASS document.querySelectorAll('[type|=fooBar i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     198PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     199PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     200PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     201PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     202PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     203PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     204PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     205PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     206
     207Testing "[type|=foobar i] ~ * ~ *  > * > * innerTestCase"
     208PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase').length is 7
     209PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     210PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     211PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     212PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     213PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     214PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     215PASS document.querySelectorAll('[type|=foobar i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     216PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     217PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     218PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     219PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     220PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     221PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     222PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     223PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     224
     225Testing "[type^=fooBa i] > * > * innerTestCase"
     226PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase').length is 8
     227PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[0].id is "innertestcase1"
     228PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[1].id is "innertestcase2"
     229PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[2].id is "innertestcase3"
     230PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[3].id is "innertestcase4"
     231PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[4].id is "innertestcase5"
     232PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[5].id is "innertestcase6"
     233PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[6].id is "innertestcase7"
     234PASS document.querySelectorAll('[type^=fooBa i] > * > * innerTestCase')[7].id is "innertestcase8"
     235PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     236PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     237PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     238PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     239PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     240PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     241PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     242PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     243
     244Testing "[type^=fOoba i] ~ * ~ * innerTestCase"
     245PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase').length is 7
     246PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     247PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     248PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     249PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     250PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     251PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     252PASS document.querySelectorAll('[type^=fOoba i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     253PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     254PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     255PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     256PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     257PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     258PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     259PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     260PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     261
     262Testing "[type^=fooba i] ~ * ~ *  > * > * innerTestCase"
     263PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase').length is 7
     264PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     265PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     266PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     267PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     268PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     269PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     270PASS document.querySelectorAll('[type^=fooba i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     271PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     272PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     273PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     274PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     275PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     276PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     277PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     278PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     279
     280Testing "[type$=oobAr i] > * > * innerTestCase"
     281PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase').length is 8
     282PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[0].id is "innertestcase1"
     283PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[1].id is "innertestcase2"
     284PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[2].id is "innertestcase3"
     285PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[3].id is "innertestcase4"
     286PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[4].id is "innertestcase5"
     287PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[5].id is "innertestcase6"
     288PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[6].id is "innertestcase7"
     289PASS document.querySelectorAll('[type$=oobAr i] > * > * innerTestCase')[7].id is "innertestcase8"
     290PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     291PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     292PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     293PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     294PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     295PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     296PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     297PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     298
     299Testing "[type$=oObar i] ~ * ~ * innerTestCase"
     300PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase').length is 7
     301PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     302PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     303PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     304PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     305PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     306PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     307PASS document.querySelectorAll('[type$=oObar i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     308PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     309PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     310PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     311PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     312PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     313PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     314PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     315PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     316
     317Testing "[type$=oobar i] ~ * ~ *  > * > * innerTestCase"
     318PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase').length is 7
     319PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     320PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     321PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     322PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     323PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     324PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     325PASS document.querySelectorAll('[type$=oobar i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
     326PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     327PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     328PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     329PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     330PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     331PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     332PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     333PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     334
     335Testing "[type*=oOba i] > * > * innerTestCase"
     336PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase').length is 8
     337PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[0].id is "innertestcase1"
     338PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[1].id is "innertestcase2"
     339PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[2].id is "innertestcase3"
     340PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[3].id is "innertestcase4"
     341PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[4].id is "innertestcase5"
     342PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[5].id is "innertestcase6"
     343PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[6].id is "innertestcase7"
     344PASS document.querySelectorAll('[type*=oOba i] > * > * innerTestCase')[7].id is "innertestcase8"
     345PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(10, 100, 200)"
     346PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     347PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     348PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     349PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     350PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     351PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     352PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     353
     354Testing "[type*=ooBa i] ~ * ~ * innerTestCase"
     355PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase').length is 7
     356PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[0].id is "innertestcase2"
     357PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[1].id is "innertestcase3"
     358PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[2].id is "innertestcase4"
     359PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[3].id is "innertestcase5"
     360PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[4].id is "innertestcase6"
     361PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[5].id is "innertestcase7"
     362PASS document.querySelectorAll('[type*=ooBa i] ~ * ~ * innerTestCase')[6].id is "innertestcase8"
     363PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
     364PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
     365PASS getComputedStyle(document.querySelectorAll("innerTestCase")[2]).backgroundColor is "rgb(10, 100, 200)"
     366PASS getComputedStyle(document.querySelectorAll("innerTestCase")[3]).backgroundColor is "rgb(10, 100, 200)"
     367PASS getComputedStyle(document.querySelectorAll("innerTestCase")[4]).backgroundColor is "rgb(10, 100, 200)"
     368PASS getComputedStyle(document.querySelectorAll("innerTestCase")[5]).backgroundColor is "rgb(10, 100, 200)"
     369PASS getComputedStyle(document.querySelectorAll("innerTestCase")[6]).backgroundColor is "rgb(10, 100, 200)"
     370PASS getComputedStyle(document.querySelectorAll("innerTestCase")[7]).backgroundColor is "rgb(10, 100, 200)"
     371
     372Testing "[type*=ooba i] ~ * ~ *  > * > * innerTestCase"
     373PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase').length is 7
     374PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[0].id is "innertestcase2"
     375PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[1].id is "innertestcase3"
     376PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[2].id is "innertestcase4"
     377PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[3].id is "innertestcase5"
     378PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[4].id is "innertestcase6"
     379PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[5].id is "innertestcase7"
     380PASS document.querySelectorAll('[type*=ooba i] ~ * ~ *  > * > * innerTestCase')[6].id is "innertestcase8"
    381381PASS getComputedStyle(document.querySelectorAll("innerTestCase")[0]).backgroundColor is "rgb(255, 0, 0)"
    382382PASS getComputedStyle(document.querySelectorAll("innerTestCase")[1]).backgroundColor is "rgb(10, 100, 200)"
  • trunk/LayoutTests/fast/selectors/case-insensitive-attribute-register-requirement-2.html

    r180544 r221788  
    5555
    5656var simpleCases = [
    57     ["[type=foobar i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    58     ["[attribute1=VALUE1 i] > * > * >> innerTestCase",["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    59     ["[type=foobar i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    60     ["[attribute1=VALUE1 i] ~ * ~ * >> innerTestCase",["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    61     ["[type=foobar i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    62     ["[attribute1=VALUE1 i] ~ * ~ *  > * > * >> innerTestCase",["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     57    ["[type=foobar i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     58    ["[attribute1=VALUE1 i] > * > * innerTestCase",["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     59    ["[type=foobar i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     60    ["[attribute1=VALUE1 i] ~ * ~ * innerTestCase",["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     61    ["[type=foobar i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     62    ["[attribute1=VALUE1 i] ~ * ~ *  > * > * innerTestCase",["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    6363
    64     ["[type~=fOobar i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    65     ["[type~=foObar i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    66     ["[type~=foobar i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     64    ["[type~=fOobar i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     65    ["[type~=foObar i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     66    ["[type~=foobar i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    6767
    68     ["[type|=foObar i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    69     ["[type|=fooBar i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    70     ["[type|=foobar i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     68    ["[type|=foObar i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     69    ["[type|=fooBar i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     70    ["[type|=foobar i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    7171
    72     ["[type^=fooBa i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    73     ["[type^=fOoba i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    74     ["[type^=fooba i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     72    ["[type^=fooBa i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     73    ["[type^=fOoba i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     74    ["[type^=fooba i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    7575
    76     ["[type$=oobAr i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    77     ["[type$=oObar i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    78     ["[type$=oobar i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     76    ["[type$=oobAr i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     77    ["[type$=oObar i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     78    ["[type$=oobar i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    7979
    80     ["[type*=oOba i] > * > * >> innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    81     ["[type*=ooBa i] ~ * ~ * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    82     ["[type*=ooba i] ~ * ~ *  > * > * >> innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     80    ["[type*=oOba i] > * > * innerTestCase", ["innertestcase1", "innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     81    ["[type*=ooBa i] ~ * ~ * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
     82    ["[type*=ooba i] ~ * ~ *  > * > * innerTestCase", ["innertestcase2", "innertestcase3", "innertestcase4", "innertestcase5", "innertestcase6", "innertestcase7", "innertestcase8"]],
    8383];
    8484
  • trunk/LayoutTests/fast/selectors/element-matches-attribute-ascii-case-insensitive-html-expected.txt

    r179323 r221788  
    5252PASS document.querySelectorAll('[id^=target]')[2].matches('[DATA-æØå^="Web"]') is false
    5353PASS document.querySelectorAll('[id^=target]')[3].matches('[DATA-æØå^="Web"]') is false
    54 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [data-æøå]') is true
    55 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [data-æøå]') is false
    56 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [data-æøå]') is false
    57 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [data-æøå]') is true
    58 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [data-Æøå]') is false
    59 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [data-Æøå]') is true
    60 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [data-Æøå]') is false
    61 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [data-Æøå]') is true
    62 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [data-ÆØÅ]') is false
    63 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [data-ÆØÅ]') is false
    64 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [data-ÆØÅ]') is true
    65 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [data-ÆØÅ]') is true
    66 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [data-æØå]') is false
    67 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [data-æØå]') is false
    68 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [data-æØå]') is false
    69 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [data-æØå]') is false
    70 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]') is true
    71 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]') is false
    72 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]') is false
    73 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]') is true
    74 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]') is false
    75 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]') is true
    76 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]') is false
    77 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]') is true
    78 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]') is false
    79 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]') is false
    80 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]') is true
    81 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]') is true
    82 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]') is false
    83 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]') is false
    84 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]') is false
    85 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]') is false
    86 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [DATA-æøå^="Web"]') is true
    87 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [DATA-æøå^="Web"]') is false
    88 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [DATA-æøå^="Web"]') is false
    89 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [DATA-æøå^="Web"]') is true
    90 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]') is false
    91 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]') is true
    92 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]') is false
    93 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]') is true
    94 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]') is false
    95 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]') is false
    96 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]') is true
    97 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]') is true
    98 PASS document.querySelectorAll('[id^=target]')[0].matches(':root >> :matches(body, html) >> [DATA-æØå^="Web"]') is false
    99 PASS document.querySelectorAll('[id^=target]')[1].matches(':root >> :matches(body, html) >> [DATA-æØå^="Web"]') is false
    100 PASS document.querySelectorAll('[id^=target]')[2].matches(':root >> :matches(body, html) >> [DATA-æØå^="Web"]') is false
    101 PASS document.querySelectorAll('[id^=target]')[3].matches(':root >> :matches(body, html) >> [DATA-æØå^="Web"]') is false
     54PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [data-æøå]') is true
     55PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [data-æøå]') is false
     56PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [data-æøå]') is false
     57PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [data-æøå]') is true
     58PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [data-Æøå]') is false
     59PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [data-Æøå]') is true
     60PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [data-Æøå]') is false
     61PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [data-Æøå]') is true
     62PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [data-ÆØÅ]') is false
     63PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [data-ÆØÅ]') is false
     64PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [data-ÆØÅ]') is true
     65PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [data-ÆØÅ]') is true
     66PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [data-æØå]') is false
     67PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [data-æØå]') is false
     68PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [data-æØå]') is false
     69PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [data-æØå]') is false
     70PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [Data-æøå="WebKit!"]') is true
     71PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [Data-æøå="WebKit!"]') is false
     72PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [Data-æøå="WebKit!"]') is false
     73PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [Data-æøå="WebKit!"]') is true
     74PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [Data-Æøå="WebKit!"]') is false
     75PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [Data-Æøå="WebKit!"]') is true
     76PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [Data-Æøå="WebKit!"]') is false
     77PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [Data-Æøå="WebKit!"]') is true
     78PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]') is false
     79PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]') is false
     80PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]') is true
     81PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]') is true
     82PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [Data-æØå="WebKit!"]') is false
     83PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [Data-æØå="WebKit!"]') is false
     84PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [Data-æØå="WebKit!"]') is false
     85PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [Data-æØå="WebKit!"]') is false
     86PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [DATA-æøå^="Web"]') is true
     87PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [DATA-æøå^="Web"]') is false
     88PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [DATA-æøå^="Web"]') is false
     89PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [DATA-æøå^="Web"]') is true
     90PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [DATA-Æøå^="Web"]') is false
     91PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [DATA-Æøå^="Web"]') is true
     92PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [DATA-Æøå^="Web"]') is false
     93PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [DATA-Æøå^="Web"]') is true
     94PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [DATA-ÆØÅ^="Web"]') is false
     95PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [DATA-ÆØÅ^="Web"]') is false
     96PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [DATA-ÆØÅ^="Web"]') is true
     97PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [DATA-ÆØÅ^="Web"]') is true
     98PASS document.querySelectorAll('[id^=target]')[0].matches(':root :matches(body, html) [DATA-æØå^="Web"]') is false
     99PASS document.querySelectorAll('[id^=target]')[1].matches(':root :matches(body, html) [DATA-æØå^="Web"]') is false
     100PASS document.querySelectorAll('[id^=target]')[2].matches(':root :matches(body, html) [DATA-æØå^="Web"]') is false
     101PASS document.querySelectorAll('[id^=target]')[3].matches(':root :matches(body, html) [DATA-æØå^="Web"]') is false
    102102PASS successfullyParsed is true
    103103
  • trunk/LayoutTests/fast/selectors/element-matches-attribute-ascii-case-insensitive-html.html

    r179323 r221788  
    4343
    4444// Complex selectors.
    45 testSelector(':root >> :matches(body, html) >> [data-æøå]', [1, 4]);
    46 testSelector(':root >> :matches(body, html) >> [data-Æøå]', [2, 4]);
    47 testSelector(':root >> :matches(body, html) >> [data-ÆØÅ]', [3, 4]);
    48 testSelector(':root >> :matches(body, html) >> [data-æØå]', []);
     45testSelector(':root :matches(body, html) [data-æøå]', [1, 4]);
     46testSelector(':root :matches(body, html) [data-Æøå]', [2, 4]);
     47testSelector(':root :matches(body, html) [data-ÆØÅ]', [3, 4]);
     48testSelector(':root :matches(body, html) [data-æØå]', []);
    4949
    50 testSelector(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]', [1, 4]);
    51 testSelector(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]', [2, 4]);
    52 testSelector(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]', [3, 4]);
    53 testSelector(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]', []);
     50testSelector(':root :matches(body, html) [Data-æøå="WebKit!"]', [1, 4]);
     51testSelector(':root :matches(body, html) [Data-Æøå="WebKit!"]', [2, 4]);
     52testSelector(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]', [3, 4]);
     53testSelector(':root :matches(body, html) [Data-æØå="WebKit!"]', []);
    5454
    55 testSelector(':root >> :matches(body, html) >> [DATA-æøå^="Web"]', [1, 4]);
    56 testSelector(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]', [2, 4]);
    57 testSelector(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]', [3, 4]);
    58 testSelector(':root >> :matches(body, html) >> [DATA-æØå^="Web"]', []);
     55testSelector(':root :matches(body, html) [DATA-æøå^="Web"]', [1, 4]);
     56testSelector(':root :matches(body, html) [DATA-Æøå^="Web"]', [2, 4]);
     57testSelector(':root :matches(body, html) [DATA-ÆØÅ^="Web"]', [3, 4]);
     58testSelector(':root :matches(body, html) [DATA-æØå^="Web"]', []);
    5959</script>
    6060<script src="../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/fast/selectors/id-attribute-querySelector-used-as-id-selector-expected.txt

    r203439 r221788  
    1313PASS document.querySelectorAll("div[id=simple_duplicated][data-case]").length is 0
    1414Trivial Selector used as ancestor filter
    15 PASS document.querySelectorAll("[id=Ancestor_Unique] >> *").length is 4
    16 PASS document.querySelectorAll("[id=Ancestor_Unique] > * >> *").length is 2
    17 PASS document.querySelectorAll("[id=Ancestor_Unique] >> * > *").length is 2
    18 PASS document.querySelectorAll("[id=ancestor_unique] >> *").length is 0
    19 PASS document.querySelectorAll("[id=ancestor_unique] > * >> *").length is 0
    20 PASS document.querySelectorAll("[id=ancestor_unique] >> * > *").length is 0
    21 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] >> *").length is 5
    22 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] > * >> *").length is 2
    23 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] >> * > *").length is 2
    24 PASS document.querySelectorAll("[id=ancestor_duplicated] >> *").length is 0
    25 PASS document.querySelectorAll("[id=ancestor_duplicated] > * >> *").length is 0
    26 PASS document.querySelectorAll("[id=ancestor_duplicated] >> * > *").length is 0
     15PASS document.querySelectorAll("[id=Ancestor_Unique] *").length is 4
     16PASS document.querySelectorAll("[id=Ancestor_Unique] > * *").length is 2
     17PASS document.querySelectorAll("[id=Ancestor_Unique] * > *").length is 2
     18PASS document.querySelectorAll("[id=ancestor_unique] *").length is 0
     19PASS document.querySelectorAll("[id=ancestor_unique] > * *").length is 0
     20PASS document.querySelectorAll("[id=ancestor_unique] * > *").length is 0
     21PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] *").length is 5
     22PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] > * *").length is 2
     23PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] * > *").length is 2
     24PASS document.querySelectorAll("[id=ancestor_duplicated] *").length is 0
     25PASS document.querySelectorAll("[id=ancestor_duplicated] > * *").length is 0
     26PASS document.querySelectorAll("[id=ancestor_duplicated] * > *").length is 0
    2727Non-Trivial Selector used as ancestor filter
    28 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] >> *").length is 4
    29 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] > * >> *").length is 2
    30 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] >> * > *").length is 2
    31 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] >> *").length is 0
    32 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] > * >> *").length is 0
    33 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] >> * > *").length is 0
    34 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] >> *").length is 5
    35 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] > * >> *").length is 2
    36 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] >> * > *").length is 2
    37 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] >> *").length is 0
    38 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] > * >> *").length is 0
    39 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] >> * > *").length is 0
     28PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] *").length is 4
     29PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] > * *").length is 2
     30PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] * > *").length is 2
     31PASS document.querySelectorAll("div[id=ancestor_unique][data-case] *").length is 0
     32PASS document.querySelectorAll("div[id=ancestor_unique][data-case] > * *").length is 0
     33PASS document.querySelectorAll("div[id=ancestor_unique][data-case] * > *").length is 0
     34PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] *").length is 5
     35PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] > * *").length is 2
     36PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] * > *").length is 2
     37PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] *").length is 0
     38PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] > * *").length is 0
     39PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] * > *").length is 0
    4040Trivial Selector used as sibling filter
    4141PASS document.querySelectorAll("[id=simple_unique] + *").length is 1
  • trunk/LayoutTests/fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks-expected.txt

    r203439 r221788  
    1313PASS document.querySelectorAll("div[id=simple_duplicated][data-case]").length is 0
    1414Trivial Selector used as ancestor filter
    15 PASS document.querySelectorAll("[id=Ancestor_Unique] >> *").length is 4
    16 PASS document.querySelectorAll("[id=Ancestor_Unique] > * >> *").length is 2
    17 PASS document.querySelectorAll("[id=Ancestor_Unique] >> * > *").length is 2
    18 PASS document.querySelectorAll("[id=ancestor_unique] >> *").length is 0
    19 PASS document.querySelectorAll("[id=ancestor_unique] > * >> *").length is 0
    20 PASS document.querySelectorAll("[id=ancestor_unique] >> * > *").length is 0
    21 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] >> *").length is 5
    22 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] > * >> *").length is 2
    23 PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] >> * > *").length is 2
    24 PASS document.querySelectorAll("[id=ancestor_duplicated] >> *").length is 0
    25 PASS document.querySelectorAll("[id=ancestor_duplicated] > * >> *").length is 0
    26 PASS document.querySelectorAll("[id=ancestor_duplicated] >> * > *").length is 0
     15PASS document.querySelectorAll("[id=Ancestor_Unique] *").length is 4
     16PASS document.querySelectorAll("[id=Ancestor_Unique] > * *").length is 2
     17PASS document.querySelectorAll("[id=Ancestor_Unique] * > *").length is 2
     18PASS document.querySelectorAll("[id=ancestor_unique] *").length is 0
     19PASS document.querySelectorAll("[id=ancestor_unique] > * *").length is 0
     20PASS document.querySelectorAll("[id=ancestor_unique] * > *").length is 0
     21PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] *").length is 5
     22PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] > * *").length is 2
     23PASS document.querySelectorAll("[id=ANCESTOR_DUPLICATED] * > *").length is 2
     24PASS document.querySelectorAll("[id=ancestor_duplicated] *").length is 0
     25PASS document.querySelectorAll("[id=ancestor_duplicated] > * *").length is 0
     26PASS document.querySelectorAll("[id=ancestor_duplicated] * > *").length is 0
    2727Non-Trivial Selector used as ancestor filter
    28 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] >> *").length is 4
    29 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] > * >> *").length is 2
    30 PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] >> * > *").length is 2
    31 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] >> *").length is 0
    32 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] > * >> *").length is 0
    33 PASS document.querySelectorAll("div[id=ancestor_unique][data-case] >> * > *").length is 0
    34 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] >> *").length is 5
    35 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] > * >> *").length is 2
    36 PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] >> * > *").length is 2
    37 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] >> *").length is 0
    38 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] > * >> *").length is 0
    39 PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] >> * > *").length is 0
     28PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] *").length is 4
     29PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] > * *").length is 2
     30PASS document.querySelectorAll("div[id=Ancestor_Unique][data-case] * > *").length is 2
     31PASS document.querySelectorAll("div[id=ancestor_unique][data-case] *").length is 0
     32PASS document.querySelectorAll("div[id=ancestor_unique][data-case] > * *").length is 0
     33PASS document.querySelectorAll("div[id=ancestor_unique][data-case] * > *").length is 0
     34PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] *").length is 5
     35PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] > * *").length is 2
     36PASS document.querySelectorAll("div[id=ANCESTOR_DUPLICATED][data-case] * > *").length is 2
     37PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] *").length is 0
     38PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] > * *").length is 0
     39PASS document.querySelectorAll("div[id=ancestor_duplicated][data-case] * > *").length is 0
    4040Trivial Selector used as sibling filter
    4141PASS document.querySelectorAll("[id=simple_unique] + *").length is 1
  • trunk/LayoutTests/fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html

    r203439 r221788  
    5454
    5555            debug("Trivial Selector used as ancestor filter");
    56             test("[id=Ancestor_Unique] >> *", [6, 7, 8, 9]);
    57             test("[id=Ancestor_Unique] > * >> *", [7, 9]);
    58             test("[id=Ancestor_Unique] >> * > *", [7, 9]);
    59             test("[id=ancestor_unique] >> *", []);
    60             test("[id=ancestor_unique] > * >> *", []);
    61             test("[id=ancestor_unique] >> * > *", []);
    62             test("[id=ANCESTOR_DUPLICATED] >> *", [9, 11, 12, 13, 14]);
    63             test("[id=ANCESTOR_DUPLICATED] > * >> *", [12, 14]);
    64             test("[id=ANCESTOR_DUPLICATED] >> * > *", [12, 14]);
    65             test("[id=ancestor_duplicated] >> *", []);
    66             test("[id=ancestor_duplicated] > * >> *", []);
    67             test("[id=ancestor_duplicated] >> * > *", []);
     56            test("[id=Ancestor_Unique] *", [6, 7, 8, 9]);
     57            test("[id=Ancestor_Unique] > * *", [7, 9]);
     58            test("[id=Ancestor_Unique] * > *", [7, 9]);
     59            test("[id=ancestor_unique] *", []);
     60            test("[id=ancestor_unique] > * *", []);
     61            test("[id=ancestor_unique] * > *", []);
     62            test("[id=ANCESTOR_DUPLICATED] *", [9, 11, 12, 13, 14]);
     63            test("[id=ANCESTOR_DUPLICATED] > * *", [12, 14]);
     64            test("[id=ANCESTOR_DUPLICATED] * > *", [12, 14]);
     65            test("[id=ancestor_duplicated] *", []);
     66            test("[id=ancestor_duplicated] > * *", []);
     67            test("[id=ancestor_duplicated] * > *", []);
    6868
    6969            debug("Non-Trivial Selector used as ancestor filter");
    70             test("div[id=Ancestor_Unique][data-case] >> *", [6, 7, 8, 9]);
    71             test("div[id=Ancestor_Unique][data-case] > * >> *", [7, 9]);
    72             test("div[id=Ancestor_Unique][data-case] >> * > *", [7, 9]);
    73             test("div[id=ancestor_unique][data-case] >> *", []);
    74             test("div[id=ancestor_unique][data-case] > * >> *", []);
    75             test("div[id=ancestor_unique][data-case] >> * > *", []);
    76             test("div[id=ANCESTOR_DUPLICATED][data-case] >> *", [9, 11, 12, 13, 14]);
    77             test("div[id=ANCESTOR_DUPLICATED][data-case] > * >> *", [12, 14]);
    78             test("div[id=ANCESTOR_DUPLICATED][data-case] >> * > *", [12, 14]);
    79             test("div[id=ancestor_duplicated][data-case] >> *", []);
    80             test("div[id=ancestor_duplicated][data-case] > * >> *", []);
    81             test("div[id=ancestor_duplicated][data-case] >> * > *", []);
     70            test("div[id=Ancestor_Unique][data-case] *", [6, 7, 8, 9]);
     71            test("div[id=Ancestor_Unique][data-case] > * *", [7, 9]);
     72            test("div[id=Ancestor_Unique][data-case] * > *", [7, 9]);
     73            test("div[id=ancestor_unique][data-case] *", []);
     74            test("div[id=ancestor_unique][data-case] > * *", []);
     75            test("div[id=ancestor_unique][data-case] * > *", []);
     76            test("div[id=ANCESTOR_DUPLICATED][data-case] *", [9, 11, 12, 13, 14]);
     77            test("div[id=ANCESTOR_DUPLICATED][data-case] > * *", [12, 14]);
     78            test("div[id=ANCESTOR_DUPLICATED][data-case] * > *", [12, 14]);
     79            test("div[id=ancestor_duplicated][data-case] *", []);
     80            test("div[id=ancestor_duplicated][data-case] > * *", []);
     81            test("div[id=ancestor_duplicated][data-case] * > *", []);
    8282
    8383            debug("Trivial Selector used as sibling filter");
  • trunk/LayoutTests/fast/selectors/id-attribute-querySelector-used-as-id-selector.html

    r203439 r221788  
    5555
    5656            debug("Trivial Selector used as ancestor filter");
    57             test("[id=Ancestor_Unique] >> *", [6, 7, 8, 9]);
    58             test("[id=Ancestor_Unique] > * >> *", [7, 9]);
    59             test("[id=Ancestor_Unique] >> * > *", [7, 9]);
    60             test("[id=ancestor_unique] >> *", []);
    61             test("[id=ancestor_unique] > * >> *", []);
    62             test("[id=ancestor_unique] >> * > *", []);
    63             test("[id=ANCESTOR_DUPLICATED] >> *", [9, 11, 12, 13, 14]);
    64             test("[id=ANCESTOR_DUPLICATED] > * >> *", [12, 14]);
    65             test("[id=ANCESTOR_DUPLICATED] >> * > *", [12, 14]);
    66             test("[id=ancestor_duplicated] >> *", []);
    67             test("[id=ancestor_duplicated] > * >> *", []);
    68             test("[id=ancestor_duplicated] >> * > *", []);
     57            test("[id=Ancestor_Unique] *", [6, 7, 8, 9]);
     58            test("[id=Ancestor_Unique] > * *", [7, 9]);
     59            test("[id=Ancestor_Unique] * > *", [7, 9]);
     60            test("[id=ancestor_unique] *", []);
     61            test("[id=ancestor_unique] > * *", []);
     62            test("[id=ancestor_unique] * > *", []);
     63            test("[id=ANCESTOR_DUPLICATED] *", [9, 11, 12, 13, 14]);
     64            test("[id=ANCESTOR_DUPLICATED] > * *", [12, 14]);
     65            test("[id=ANCESTOR_DUPLICATED] * > *", [12, 14]);
     66            test("[id=ancestor_duplicated] *", []);
     67            test("[id=ancestor_duplicated] > * *", []);
     68            test("[id=ancestor_duplicated] * > *", []);
    6969
    7070            debug("Non-Trivial Selector used as ancestor filter");
    71             test("div[id=Ancestor_Unique][data-case] >> *", [6, 7, 8, 9]);
    72             test("div[id=Ancestor_Unique][data-case] > * >> *", [7, 9]);
    73             test("div[id=Ancestor_Unique][data-case] >> * > *", [7, 9]);
    74             test("div[id=ancestor_unique][data-case] >> *", []);
    75             test("div[id=ancestor_unique][data-case] > * >> *", []);
    76             test("div[id=ancestor_unique][data-case] >> * > *", []);
    77             test("div[id=ANCESTOR_DUPLICATED][data-case] >> *", [9, 11, 12, 13, 14]);
    78             test("div[id=ANCESTOR_DUPLICATED][data-case] > * >> *", [12, 14]);
    79             test("div[id=ANCESTOR_DUPLICATED][data-case] >> * > *", [12, 14]);
    80             test("div[id=ancestor_duplicated][data-case] >> *", []);
    81             test("div[id=ancestor_duplicated][data-case] > * >> *", []);
    82             test("div[id=ancestor_duplicated][data-case] >> * > *", []);
     71            test("div[id=Ancestor_Unique][data-case] *", [6, 7, 8, 9]);
     72            test("div[id=Ancestor_Unique][data-case] > * *", [7, 9]);
     73            test("div[id=Ancestor_Unique][data-case] * > *", [7, 9]);
     74            test("div[id=ancestor_unique][data-case] *", []);
     75            test("div[id=ancestor_unique][data-case] > * *", []);
     76            test("div[id=ancestor_unique][data-case] * > *", []);
     77            test("div[id=ANCESTOR_DUPLICATED][data-case] *", [9, 11, 12, 13, 14]);
     78            test("div[id=ANCESTOR_DUPLICATED][data-case] > * *", [12, 14]);
     79            test("div[id=ANCESTOR_DUPLICATED][data-case] * > *", [12, 14]);
     80            test("div[id=ancestor_duplicated][data-case] *", []);
     81            test("div[id=ancestor_duplicated][data-case] > * *", []);
     82            test("div[id=ancestor_duplicated][data-case] * > *", []);
    8383
    8484            debug("Trivial Selector used as sibling filter");
  • trunk/LayoutTests/fast/selectors/nth-child-matching-first-expected.txt

    r181283 r221788  
    55
    66Testing ":nth-child(1)"
    7 PASS document.querySelectorAll('#test-root >> :nth-child(1)').length is 1
    8 PASS document.querySelectorAll('#test-root >> :nth-child(1)')[0].id is "testcase1"
     7PASS document.querySelectorAll('#test-root :nth-child(1)').length is 1
     8PASS document.querySelectorAll('#test-root :nth-child(1)')[0].id is "testcase1"
    99PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    1010PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    1414
    1515Testing ":nth-child(+1)"
    16 PASS document.querySelectorAll('#test-root >> :nth-child(+1)').length is 1
    17 PASS document.querySelectorAll('#test-root >> :nth-child(+1)')[0].id is "testcase1"
     16PASS document.querySelectorAll('#test-root :nth-child(+1)').length is 1
     17PASS document.querySelectorAll('#test-root :nth-child(+1)')[0].id is "testcase1"
    1818PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    1919PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    2323
    2424Testing ":nth-child(-n+1)"
    25 PASS document.querySelectorAll('#test-root >> :nth-child(-n+1)').length is 1
    26 PASS document.querySelectorAll('#test-root >> :nth-child(-n+1)')[0].id is "testcase1"
     25PASS document.querySelectorAll('#test-root :nth-child(-n+1)').length is 1
     26PASS document.querySelectorAll('#test-root :nth-child(-n+1)')[0].id is "testcase1"
    2727PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    2828PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    3232
    3333Testing ":nth-child(-2n+1)"
    34 PASS document.querySelectorAll('#test-root >> :nth-child(-2n+1)').length is 1
    35 PASS document.querySelectorAll('#test-root >> :nth-child(-2n+1)')[0].id is "testcase1"
     34PASS document.querySelectorAll('#test-root :nth-child(-2n+1)').length is 1
     35PASS document.querySelectorAll('#test-root :nth-child(-2n+1)')[0].id is "testcase1"
    3636PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    3737PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    4141
    4242Testing ":nth-child(-3n+1)"
    43 PASS document.querySelectorAll('#test-root >> :nth-child(-3n+1)').length is 1
    44 PASS document.querySelectorAll('#test-root >> :nth-child(-3n+1)')[0].id is "testcase1"
     43PASS document.querySelectorAll('#test-root :nth-child(-3n+1)').length is 1
     44PASS document.querySelectorAll('#test-root :nth-child(-3n+1)')[0].id is "testcase1"
    4545PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    4646PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    5050
    5151Testing ":nth-child(odd):nth-child(1):nth-child(2n+1)"
    52 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(1):nth-child(2n+1)').length is 1
    53 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(1):nth-child(2n+1)')[0].id is "testcase1"
     52PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(1):nth-child(2n+1)').length is 1
     53PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(1):nth-child(2n+1)')[0].id is "testcase1"
    5454PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    5555PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    5959
    6060Testing ":nth-child(odd):nth-child(+1):nth-child(2n+1)"
    61 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(+1):nth-child(2n+1)').length is 1
    62 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(+1):nth-child(2n+1)')[0].id is "testcase1"
     61PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(+1):nth-child(2n+1)').length is 1
     62PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(+1):nth-child(2n+1)')[0].id is "testcase1"
    6363PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    6464PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    6868
    6969Testing ":nth-child(odd):nth-child(-n+1):nth-child(2n+1)"
    70 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-n+1):nth-child(2n+1)').length is 1
    71 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-n+1):nth-child(2n+1)')[0].id is "testcase1"
     70PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-n+1):nth-child(2n+1)').length is 1
     71PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-n+1):nth-child(2n+1)')[0].id is "testcase1"
    7272PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    7373PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    7777
    7878Testing ":nth-child(odd):nth-child(-2n+1):nth-child(2n+1)"
    79 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-2n+1):nth-child(2n+1)').length is 1
    80 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-2n+1):nth-child(2n+1)')[0].id is "testcase1"
     79PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-2n+1):nth-child(2n+1)').length is 1
     80PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-2n+1):nth-child(2n+1)')[0].id is "testcase1"
    8181PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    8282PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    8686
    8787Testing ":nth-child(odd):nth-child(-3n+1):nth-child(2n+1)"
    88 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-3n+1):nth-child(2n+1)').length is 1
    89 PASS document.querySelectorAll('#test-root >> :nth-child(odd):nth-child(-3n+1):nth-child(2n+1)')[0].id is "testcase1"
     88PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-3n+1):nth-child(2n+1)').length is 1
     89PASS document.querySelectorAll('#test-root :nth-child(odd):nth-child(-3n+1):nth-child(2n+1)')[0].id is "testcase1"
    9090PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    9191PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    9595
    9696Testing ":nth-child(-n-1)"
    97 PASS document.querySelectorAll('#test-root >> :nth-child(-n-1)').length is 0
     97PASS document.querySelectorAll('#test-root :nth-child(-n-1)').length is 0
    9898PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    9999PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    103103
    104104Testing ":nth-child(n+1)"
    105 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)').length is 5
    106 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)')[0].id is "testcase1"
    107 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)')[1].id is "testcase2"
    108 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)')[2].id is "testcase3"
    109 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)')[3].id is "testcase4"
    110 PASS document.querySelectorAll('#test-root >> :nth-child(n+1)')[4].id is "testcase5"
     105PASS document.querySelectorAll('#test-root :nth-child(n+1)').length is 5
     106PASS document.querySelectorAll('#test-root :nth-child(n+1)')[0].id is "testcase1"
     107PASS document.querySelectorAll('#test-root :nth-child(n+1)')[1].id is "testcase2"
     108PASS document.querySelectorAll('#test-root :nth-child(n+1)')[2].id is "testcase3"
     109PASS document.querySelectorAll('#test-root :nth-child(n+1)')[3].id is "testcase4"
     110PASS document.querySelectorAll('#test-root :nth-child(n+1)')[4].id is "testcase5"
    111111PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    112112PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(10, 100, 200)"
     
    116116
    117117Testing ":nth-child(n-1)"
    118 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)').length is 5
    119 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)')[0].id is "testcase1"
    120 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)')[1].id is "testcase2"
    121 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)')[2].id is "testcase3"
    122 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)')[3].id is "testcase4"
    123 PASS document.querySelectorAll('#test-root >> :nth-child(n-1)')[4].id is "testcase5"
     118PASS document.querySelectorAll('#test-root :nth-child(n-1)').length is 5
     119PASS document.querySelectorAll('#test-root :nth-child(n-1)')[0].id is "testcase1"
     120PASS document.querySelectorAll('#test-root :nth-child(n-1)')[1].id is "testcase2"
     121PASS document.querySelectorAll('#test-root :nth-child(n-1)')[2].id is "testcase3"
     122PASS document.querySelectorAll('#test-root :nth-child(n-1)')[3].id is "testcase4"
     123PASS document.querySelectorAll('#test-root :nth-child(n-1)')[4].id is "testcase5"
    124124PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    125125PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(10, 100, 200)"
  • trunk/LayoutTests/fast/selectors/nth-child-matching-first.html

    r181283 r221788  
    4444function testSelector(selector, expectedIds) {
    4545    debug("Testing \"" + selector + "\"");
    46     testQuerySelector("#test-root >> " + selector, expectedIds);
    47     testStyling("#test-root >> " + selector, expectedIds);
     46    testQuerySelector("#test-root " + selector, expectedIds);
     47    testStyling("#test-root " + selector, expectedIds);
    4848    debug("");
    4949}
  • trunk/LayoutTests/fast/selectors/nth-last-child-matching-first-expected.txt

    r181283 r221788  
    55
    66Testing ":nth-last-child(1)"
    7 PASS document.querySelectorAll('#test-root >> :nth-last-child(1)').length is 1
    8 PASS document.querySelectorAll('#test-root >> :nth-last-child(1)')[0].id is "testcase5"
     7PASS document.querySelectorAll('#test-root :nth-last-child(1)').length is 1
     8PASS document.querySelectorAll('#test-root :nth-last-child(1)')[0].id is "testcase5"
    99PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    1010PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    1414
    1515Testing ":nth-last-child(+1)"
    16 PASS document.querySelectorAll('#test-root >> :nth-last-child(+1)').length is 1
    17 PASS document.querySelectorAll('#test-root >> :nth-last-child(+1)')[0].id is "testcase5"
     16PASS document.querySelectorAll('#test-root :nth-last-child(+1)').length is 1
     17PASS document.querySelectorAll('#test-root :nth-last-child(+1)')[0].id is "testcase5"
    1818PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    1919PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    2323
    2424Testing ":nth-last-child(-n+1)"
    25 PASS document.querySelectorAll('#test-root >> :nth-last-child(-n+1)').length is 1
    26 PASS document.querySelectorAll('#test-root >> :nth-last-child(-n+1)')[0].id is "testcase5"
     25PASS document.querySelectorAll('#test-root :nth-last-child(-n+1)').length is 1
     26PASS document.querySelectorAll('#test-root :nth-last-child(-n+1)')[0].id is "testcase5"
    2727PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    2828PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    3232
    3333Testing ":nth-last-child(-2n+1)"
    34 PASS document.querySelectorAll('#test-root >> :nth-last-child(-2n+1)').length is 1
    35 PASS document.querySelectorAll('#test-root >> :nth-last-child(-2n+1)')[0].id is "testcase5"
     34PASS document.querySelectorAll('#test-root :nth-last-child(-2n+1)').length is 1
     35PASS document.querySelectorAll('#test-root :nth-last-child(-2n+1)')[0].id is "testcase5"
    3636PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    3737PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    4141
    4242Testing ":nth-last-child(-3n+1)"
    43 PASS document.querySelectorAll('#test-root >> :nth-last-child(-3n+1)').length is 1
    44 PASS document.querySelectorAll('#test-root >> :nth-last-child(-3n+1)')[0].id is "testcase5"
     43PASS document.querySelectorAll('#test-root :nth-last-child(-3n+1)').length is 1
     44PASS document.querySelectorAll('#test-root :nth-last-child(-3n+1)')[0].id is "testcase5"
    4545PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    4646PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    5050
    5151Testing ":nth-last-child(odd):nth-last-child(1):nth-last-child(2n+1)"
    52 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(1):nth-last-child(2n+1)').length is 1
    53 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(1):nth-last-child(2n+1)')[0].id is "testcase5"
     52PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(1):nth-last-child(2n+1)').length is 1
     53PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(1):nth-last-child(2n+1)')[0].id is "testcase5"
    5454PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    5555PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    5959
    6060Testing ":nth-last-child(odd):nth-last-child(+1):nth-last-child(2n+1)"
    61 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(+1):nth-last-child(2n+1)').length is 1
    62 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(+1):nth-last-child(2n+1)')[0].id is "testcase5"
     61PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(+1):nth-last-child(2n+1)').length is 1
     62PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(+1):nth-last-child(2n+1)')[0].id is "testcase5"
    6363PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    6464PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    6868
    6969Testing ":nth-last-child(odd):nth-last-child(-n+1):nth-last-child(2n+1)"
    70 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-n+1):nth-last-child(2n+1)').length is 1
    71 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-n+1):nth-last-child(2n+1)')[0].id is "testcase5"
     70PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-n+1):nth-last-child(2n+1)').length is 1
     71PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-n+1):nth-last-child(2n+1)')[0].id is "testcase5"
    7272PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    7373PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    7777
    7878Testing ":nth-last-child(odd):nth-last-child(-2n+1):nth-last-child(2n+1)"
    79 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-2n+1):nth-last-child(2n+1)').length is 1
    80 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-2n+1):nth-last-child(2n+1)')[0].id is "testcase5"
     79PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-2n+1):nth-last-child(2n+1)').length is 1
     80PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-2n+1):nth-last-child(2n+1)')[0].id is "testcase5"
    8181PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    8282PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    8686
    8787Testing ":nth-last-child(odd):nth-last-child(-3n+1):nth-last-child(2n+1)"
    88 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-3n+1):nth-last-child(2n+1)').length is 1
    89 PASS document.querySelectorAll('#test-root >> :nth-last-child(odd):nth-last-child(-3n+1):nth-last-child(2n+1)')[0].id is "testcase5"
     88PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-3n+1):nth-last-child(2n+1)').length is 1
     89PASS document.querySelectorAll('#test-root :nth-last-child(odd):nth-last-child(-3n+1):nth-last-child(2n+1)')[0].id is "testcase5"
    9090PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    9191PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    9595
    9696Testing ":nth-last-child(-n-1)"
    97 PASS document.querySelectorAll('#test-root >> :nth-last-child(-n-1)').length is 0
     97PASS document.querySelectorAll('#test-root :nth-last-child(-n-1)').length is 0
    9898PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(255, 0, 0)"
    9999PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(255, 0, 0)"
     
    103103
    104104Testing ":nth-last-child(n+1)"
    105 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)').length is 5
    106 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)')[0].id is "testcase1"
    107 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)')[1].id is "testcase2"
    108 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)')[2].id is "testcase3"
    109 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)')[3].id is "testcase4"
    110 PASS document.querySelectorAll('#test-root >> :nth-last-child(n+1)')[4].id is "testcase5"
     105PASS document.querySelectorAll('#test-root :nth-last-child(n+1)').length is 5
     106PASS document.querySelectorAll('#test-root :nth-last-child(n+1)')[0].id is "testcase1"
     107PASS document.querySelectorAll('#test-root :nth-last-child(n+1)')[1].id is "testcase2"
     108PASS document.querySelectorAll('#test-root :nth-last-child(n+1)')[2].id is "testcase3"
     109PASS document.querySelectorAll('#test-root :nth-last-child(n+1)')[3].id is "testcase4"
     110PASS document.querySelectorAll('#test-root :nth-last-child(n+1)')[4].id is "testcase5"
    111111PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    112112PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(10, 100, 200)"
     
    116116
    117117Testing ":nth-last-child(n-1)"
    118 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)').length is 5
    119 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)')[0].id is "testcase1"
    120 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)')[1].id is "testcase2"
    121 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)')[2].id is "testcase3"
    122 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)')[3].id is "testcase4"
    123 PASS document.querySelectorAll('#test-root >> :nth-last-child(n-1)')[4].id is "testcase5"
     118PASS document.querySelectorAll('#test-root :nth-last-child(n-1)').length is 5
     119PASS document.querySelectorAll('#test-root :nth-last-child(n-1)')[0].id is "testcase1"
     120PASS document.querySelectorAll('#test-root :nth-last-child(n-1)')[1].id is "testcase2"
     121PASS document.querySelectorAll('#test-root :nth-last-child(n-1)')[2].id is "testcase3"
     122PASS document.querySelectorAll('#test-root :nth-last-child(n-1)')[3].id is "testcase4"
     123PASS document.querySelectorAll('#test-root :nth-last-child(n-1)')[4].id is "testcase5"
    124124PASS getComputedStyle(document.querySelectorAll("#test-root *")[0]).backgroundColor is "rgb(10, 100, 200)"
    125125PASS getComputedStyle(document.querySelectorAll("#test-root *")[1]).backgroundColor is "rgb(10, 100, 200)"
  • trunk/LayoutTests/fast/selectors/nth-last-child-matching-first.html

    r181283 r221788  
    4444function testSelector(selector, expectedIds) {
    4545    debug("Testing \"" + selector + "\"");
    46     testQuerySelector("#test-root >> " + selector, expectedIds);
    47     testStyling("#test-root >> " + selector, expectedIds);
     46    testQuerySelector("#test-root " + selector, expectedIds);
     47    testStyling("#test-root " + selector, expectedIds);
    4848    debug("");
    4949}
  • trunk/LayoutTests/fast/selectors/querySelector-attribute-ascii-case-insensitive-html-expected.txt

    r179323 r221788  
    3434PASS document.querySelectorAll('[DATA-ÆØÅ^="Web"]')[1].id is "target4"
    3535PASS document.querySelectorAll('[DATA-æØå^="Web"]').length is 0
    36 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-æøå]').length is 2
    37 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-æøå]')[0].id is "target1"
    38 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-æøå]')[1].id is "target4"
    39 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-Æøå]').length is 2
    40 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-Æøå]')[0].id is "target2"
    41 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-Æøå]')[1].id is "target4"
    42 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-ÆØÅ]').length is 2
    43 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-ÆØÅ]')[0].id is "target3"
    44 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-ÆØÅ]')[1].id is "target4"
    45 PASS document.querySelectorAll(':root >> :matches(body, html) >> [data-æØå]').length is 0
    46 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]').length is 2
    47 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]')[0].id is "target1"
    48 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]')[1].id is "target4"
    49 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]').length is 2
    50 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]')[0].id is "target2"
    51 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]')[1].id is "target4"
    52 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]').length is 2
    53 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]')[0].id is "target3"
    54 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]')[1].id is "target4"
    55 PASS document.querySelectorAll(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]').length is 0
    56 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-æøå^="Web"]').length is 2
    57 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-æøå^="Web"]')[0].id is "target1"
    58 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-æøå^="Web"]')[1].id is "target4"
    59 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]').length is 2
    60 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]')[0].id is "target2"
    61 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]')[1].id is "target4"
    62 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]').length is 2
    63 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]')[0].id is "target3"
    64 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]')[1].id is "target4"
    65 PASS document.querySelectorAll(':root >> :matches(body, html) >> [DATA-æØå^="Web"]').length is 0
     36PASS document.querySelectorAll(':root :matches(body, html) [data-æøå]').length is 2
     37PASS document.querySelectorAll(':root :matches(body, html) [data-æøå]')[0].id is "target1"
     38PASS document.querySelectorAll(':root :matches(body, html) [data-æøå]')[1].id is "target4"
     39PASS document.querySelectorAll(':root :matches(body, html) [data-Æøå]').length is 2
     40PASS document.querySelectorAll(':root :matches(body, html) [data-Æøå]')[0].id is "target2"
     41PASS document.querySelectorAll(':root :matches(body, html) [data-Æøå]')[1].id is "target4"
     42PASS document.querySelectorAll(':root :matches(body, html) [data-ÆØÅ]').length is 2
     43PASS document.querySelectorAll(':root :matches(body, html) [data-ÆØÅ]')[0].id is "target3"
     44PASS document.querySelectorAll(':root :matches(body, html) [data-ÆØÅ]')[1].id is "target4"
     45PASS document.querySelectorAll(':root :matches(body, html) [data-æØå]').length is 0
     46PASS document.querySelectorAll(':root :matches(body, html) [Data-æøå="WebKit!"]').length is 2
     47PASS document.querySelectorAll(':root :matches(body, html) [Data-æøå="WebKit!"]')[0].id is "target1"
     48PASS document.querySelectorAll(':root :matches(body, html) [Data-æøå="WebKit!"]')[1].id is "target4"
     49PASS document.querySelectorAll(':root :matches(body, html) [Data-Æøå="WebKit!"]').length is 2
     50PASS document.querySelectorAll(':root :matches(body, html) [Data-Æøå="WebKit!"]')[0].id is "target2"
     51PASS document.querySelectorAll(':root :matches(body, html) [Data-Æøå="WebKit!"]')[1].id is "target4"
     52PASS document.querySelectorAll(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]').length is 2
     53PASS document.querySelectorAll(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]')[0].id is "target3"
     54PASS document.querySelectorAll(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]')[1].id is "target4"
     55PASS document.querySelectorAll(':root :matches(body, html) [Data-æØå="WebKit!"]').length is 0
     56PASS document.querySelectorAll(':root :matches(body, html) [DATA-æøå^="Web"]').length is 2
     57PASS document.querySelectorAll(':root :matches(body, html) [DATA-æøå^="Web"]')[0].id is "target1"
     58PASS document.querySelectorAll(':root :matches(body, html) [DATA-æøå^="Web"]')[1].id is "target4"
     59PASS document.querySelectorAll(':root :matches(body, html) [DATA-Æøå^="Web"]').length is 2
     60PASS document.querySelectorAll(':root :matches(body, html) [DATA-Æøå^="Web"]')[0].id is "target2"
     61PASS document.querySelectorAll(':root :matches(body, html) [DATA-Æøå^="Web"]')[1].id is "target4"
     62PASS document.querySelectorAll(':root :matches(body, html) [DATA-ÆØÅ^="Web"]').length is 2
     63PASS document.querySelectorAll(':root :matches(body, html) [DATA-ÆØÅ^="Web"]')[0].id is "target3"
     64PASS document.querySelectorAll(':root :matches(body, html) [DATA-ÆØÅ^="Web"]')[1].id is "target4"
     65PASS document.querySelectorAll(':root :matches(body, html) [DATA-æØå^="Web"]').length is 0
    6666PASS successfullyParsed is true
    6767
  • trunk/LayoutTests/fast/selectors/querySelector-attribute-ascii-case-insensitive-html.html

    r179323 r221788  
    4040
    4141// Complex selectors.
    42 testSelector(':root >> :matches(body, html) >> [data-æøå]', [1, 4]);
    43 testSelector(':root >> :matches(body, html) >> [data-Æøå]', [2, 4]);
    44 testSelector(':root >> :matches(body, html) >> [data-ÆØÅ]', [3, 4]);
    45 testSelector(':root >> :matches(body, html) >> [data-æØå]', []);
     42testSelector(':root :matches(body, html) [data-æøå]', [1, 4]);
     43testSelector(':root :matches(body, html) [data-Æøå]', [2, 4]);
     44testSelector(':root :matches(body, html) [data-ÆØÅ]', [3, 4]);
     45testSelector(':root :matches(body, html) [data-æØå]', []);
    4646
    47 testSelector(':root >> :matches(body, html) >> [Data-æøå="WebKit!"]', [1, 4]);
    48 testSelector(':root >> :matches(body, html) >> [Data-Æøå="WebKit!"]', [2, 4]);
    49 testSelector(':root >> :matches(body, html) >> [Data-ÆØÅ="WebKit!"]', [3, 4]);
    50 testSelector(':root >> :matches(body, html) >> [Data-æØå="WebKit!"]', []);
     47testSelector(':root :matches(body, html) [Data-æøå="WebKit!"]', [1, 4]);
     48testSelector(':root :matches(body, html) [Data-Æøå="WebKit!"]', [2, 4]);
     49testSelector(':root :matches(body, html) [Data-ÆØÅ="WebKit!"]', [3, 4]);
     50testSelector(':root :matches(body, html) [Data-æØå="WebKit!"]', []);
    5151
    52 testSelector(':root >> :matches(body, html) >> [DATA-æøå^="Web"]', [1, 4]);
    53 testSelector(':root >> :matches(body, html) >> [DATA-Æøå^="Web"]', [2, 4]);
    54 testSelector(':root >> :matches(body, html) >> [DATA-ÆØÅ^="Web"]', [3, 4]);
    55 testSelector(':root >> :matches(body, html) >> [DATA-æØå^="Web"]', []);
     52testSelector(':root :matches(body, html) [DATA-æøå^="Web"]', [1, 4]);
     53testSelector(':root :matches(body, html) [DATA-Æøå^="Web"]', [2, 4]);
     54testSelector(':root :matches(body, html) [DATA-ÆØÅ^="Web"]', [3, 4]);
     55testSelector(':root :matches(body, html) [DATA-æØå^="Web"]', []);
    5656</script>
    5757<script src="../../resources/js-test-post.js"></script>
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r221772 r221788  
     12017-09-08  Antti Koivisto  <antti@apple.com>
     2
     3        Remove support for >> descendant combinator syntax
     4        https://bugs.webkit.org/show_bug.cgi?id=175765
     5
     6        Reviewed by Sam Weinig.
     7
     8        Tests for these have been removed in WPT master, just update expectations until new version is imported.
     9
     10        * web-platform-tests/dom/nodes/Element-matches-expected.txt:
     11        * web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
     12        * web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
     13        * web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
     14
    1152017-09-07  Youenn Fablet  <youenn@apple.com>
    216
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt

    r218181 r221788  
    193193PASS In-document Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant  \r
    194194#descendant-div2
    195 PASS In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    196 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1
    197 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    198 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    199 PASS In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    200 PASS In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     195FAIL In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     196FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1 The string did not match the expected pattern.
     197FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     198FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     199FAIL In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     200FAIL In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    201201PASS In-document Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    202202PASS In-document Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    356356PASS Detached Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant     \r
    357357#descendant-div2
    358 PASS Detached Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    359 PASS Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    360 PASS Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    361 PASS Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    362 PASS Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     358FAIL Detached Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     359FAIL Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     360FAIL Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     361FAIL Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     362FAIL Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    363363PASS Detached Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    364364PASS Detached Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    518518PASS Fragment Element.matches: Descendant combinator, whitespace characters (with no refNodes): #descendant     \r
    519519#descendant-div2
    520 PASS Fragment Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    521 PASS Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    522 PASS Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    523 PASS Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    524 PASS Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     520FAIL Fragment Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     521FAIL Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     522FAIL Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     523FAIL Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     524FAIL Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    525525PASS Fragment Element.matches: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    526526PASS Fragment Element.matches: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    683683PASS In-document Element.matches: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant      \r
    684684#descendant-div2
    685 PASS In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div
    686 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1
    687 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1
    688 PASS In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2
    689 PASS In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2
    690 PASS In-document Element.matches: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3
     685FAIL In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div The string did not match the expected pattern.
     686FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1 The string did not match the expected pattern.
     687FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     688FAIL In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     689FAIL In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     690FAIL In-document Element.matches: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    691691PASS In-document Element.matches: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child>div
    692692PASS In-document Element.matches: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div>#child-div1
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt

    r218181 r221788  
    193193PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant    \r
    194194#descendant-div2
    195 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    196 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1
    197 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    198 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    199 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    200 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     195FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     196FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1 The string did not match the expected pattern.
     197FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     198FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     199FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     200FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    201201PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    202202PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    356356PASS Detached Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant       \r
    357357#descendant-div2
    358 PASS Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    359 PASS Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    360 PASS Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    361 PASS Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    362 PASS Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     358FAIL Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     359FAIL Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     360FAIL Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     361FAIL Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     362FAIL Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    363363PASS Detached Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    364364PASS Detached Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    518518PASS Fragment Element.webkitMatchesSelector: Descendant combinator, whitespace characters (with no refNodes): #descendant       \r
    519519#descendant-div2
    520 PASS Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div
    521 PASS Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1
    522 PASS Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2
    523 PASS Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2
    524 PASS Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3
     520FAIL Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div The string did not match the expected pattern.
     521FAIL Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     522FAIL Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     523FAIL Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     524FAIL Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    525525PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (with no refNodes): #child>div
    526526PASS Fragment Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (with no refNodes): div>#child-div1
     
    683683PASS In-document Element.webkitMatchesSelector: Descendant combinator, whitespace characters (1) (with no refNodes): #descendant        \r
    684684#descendant-div2
    685 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div
    686 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1
    687 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1
    688 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2
    689 PASS In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2
    690 PASS In-document Element.webkitMatchesSelector: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3
     685FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div The string did not match the expected pattern.
     686FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1 The string did not match the expected pattern.
     687FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1 The string did not match the expected pattern.
     688FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2 The string did not match the expected pattern.
     689FAIL In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2 The string did not match the expected pattern.
     690FAIL In-document Element.webkitMatchesSelector: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
    691691PASS In-document Element.webkitMatchesSelector: Child combinator, matching element that is a child of an element with id (1) (with no refNodes): #child>div
    692692PASS In-document Element.webkitMatchesSelector: Child combinator, matching element with id that is a child of an element (1) (with no refNodes): div>#child-div1
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt

    r218181 r221788  
    602602PASS Document.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    603603#descendant-div2
    604 PASS Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    605 PASS Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    606 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    607 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    608 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    609 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    610 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    611 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    612 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    613 PASS Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    614 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    615 PASS Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    616 PASS Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    617 PASS Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     604FAIL Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     605FAIL Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     606FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     607FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     608FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     609FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     610FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     611FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     612FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     613FAIL Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     614FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     615FAIL Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     616FAIL Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     617FAIL Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    618618PASS Document.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    619619PASS Document.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    10281028PASS Detached Element.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    10291029#descendant-div2
    1030 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1031 PASS Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1032 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1033 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1034 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1035 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1036 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1037 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1038 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1039 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1040 PASS Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1041 PASS Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1030FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1031FAIL Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1032FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1033FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1034FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1035FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1036FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1037FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1038FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1039FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1040FAIL Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1041FAIL Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    10421042PASS Detached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    10431043PASS Detached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    14521452PASS Fragment.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    14531453#descendant-div2
    1454 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1455 PASS Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1456 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1457 PASS Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1458 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1459 PASS Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1460 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1461 PASS Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1462 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1463 PASS Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1464 PASS Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1465 PASS Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1454FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1455FAIL Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1456FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1457FAIL Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1458FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1459FAIL Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1460FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1461FAIL Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1462FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1463FAIL Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1464FAIL Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1465FAIL Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    14661466PASS Fragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    14671467PASS Fragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    18781878PASS In-document Element.querySelector: Descendant combinator, whitespace characters: #descendant       \r
    18791879#descendant-div2
    1880 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1881 PASS In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1882 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    1883 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    1884 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1885 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1886 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1887 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1888 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1889 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1890 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1891 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1892 PASS In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1893 PASS In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1880FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1881FAIL In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1882FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     1883FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     1884FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1885FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1886FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1887FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1888FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1889FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1890FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1891FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1892FAIL In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1893FAIL In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    18941894PASS In-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    18951895PASS In-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
  • trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt

    r218181 r221788  
    602602PASS Document.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    603603#descendant-div2
    604 PASS Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    605 PASS Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    606 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    607 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    608 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    609 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    610 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    611 PASS Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    612 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    613 PASS Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    614 PASS Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    615 PASS Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    616 PASS Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    617 PASS Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     604FAIL Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     605FAIL Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     606FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     607FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     608FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     609FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     610FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     611FAIL Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     612FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     613FAIL Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     614FAIL Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     615FAIL Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     616FAIL Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     617FAIL Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    618618PASS Document.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    619619PASS Document.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    10281028PASS Detached Element.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    10291029#descendant-div2
    1030 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1031 PASS Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1032 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1033 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1034 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1035 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1036 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1037 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1038 PASS Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1039 PASS Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1040 PASS Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1041 PASS Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1030FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1031FAIL Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1032FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1033FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1034FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1035FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1036FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1037FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1038FAIL Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1039FAIL Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1040FAIL Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1041FAIL Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    10421042PASS Detached Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    10431043PASS Detached Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    14521452PASS Fragment.querySelector: Descendant combinator, whitespace characters: #descendant  \r
    14531453#descendant-div2
    1454 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1455 PASS Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1456 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1457 PASS Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1458 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1459 PASS Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1460 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1461 PASS Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1462 PASS Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1463 PASS Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1464 PASS Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1465 PASS Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1454FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1455FAIL Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1456FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1457FAIL Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1458FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1459FAIL Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1460FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1461FAIL Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1462FAIL Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1463FAIL Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1464FAIL Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1465FAIL Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    14661466PASS Fragment.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    14671467PASS Fragment.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
     
    18781878PASS In-document Element.querySelector: Descendant combinator, whitespace characters: #descendant       \r
    18791879#descendant-div2
    1880 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1881 PASS In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div
    1882 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    1883 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1
    1884 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1885 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1
    1886 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1887 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2
    1888 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1889 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2
    1890 PASS In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1891 PASS In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3
    1892 PASS In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
    1893 PASS In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4
     1880FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1881FAIL In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div The string did not match the expected pattern.
     1882FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     1883FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1 The string did not match the expected pattern.
     1884FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1885FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1 The string did not match the expected pattern.
     1886FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1887FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2 The string did not match the expected pattern.
     1888FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1889FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2 The string did not match the expected pattern.
     1890FAIL In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1891FAIL In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3 The string did not match the expected pattern.
     1892FAIL In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
     1893FAIL In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4 The string did not match the expected pattern.
    18941894PASS In-document Element.querySelectorAll: Child combinator, matching element that is a child of an element with id: #child>div
    18951895PASS In-document Element.querySelector: Child combinator, matching element that is a child of an element with id: #child>div
  • trunk/Source/WebCore/ChangeLog

    r221782 r221788  
     12017-09-08  Antti Koivisto  <antti@apple.com>
     2
     3        Remove support for >> descendant combinator syntax
     4        https://bugs.webkit.org/show_bug.cgi?id=175765
     5
     6        Reviewed by Sam Weinig.
     7
     8        This is an alternative syntax for the normal descendant combinator (just space) that was
     9        advertised as being consistent with > (child combinator) and >>> (shadow piercing combinator).
     10        The latter has been killed so it is not consistent with anything anymore.
     11
     12        No other engine besides WebKit has implemented this and the WPT tests have been removed
     13        (in https://github.com/w3c/web-platform-tests/pull/6785). Full removal from spec is still
     14        open (https://github.com/w3c/csswg-drafts/issues/641) but we shouldn't encourage adoption of
     15        this pointless feature.
     16
     17        While this has shipped the compatibility risk is low as no other engine implemented it and
     18        there were no incentives to use it over the standard syntax.
     19
     20        * css/CSSSelector.cpp:
     21        (WebCore::CSSSelector::selectorText const):
     22        * css/CSSSelector.h:
     23        (WebCore::CSSSelector::hasDescendantRelation const):
     24        * css/SelectorChecker.cpp:
     25        (WebCore::SelectorChecker::matchRecursively const):
     26        * css/SelectorFilter.cpp:
     27        (WebCore::SelectorFilter::collectIdentifierHashes):
     28        * css/parser/CSSParserSelector.cpp:
     29        (WebCore::CSSParserSelector::appendTagHistory):
     30        * css/parser/CSSParserSelector.h:
     31        * css/parser/CSSSelectorParser.cpp:
     32        (WebCore::isDescendantCombinator):
     33        (WebCore::CSSSelectorParser::consumeCombinator):
     34        * cssjit/SelectorCompiler.cpp:
     35        (WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
     36
    1372017-09-08  Zan Dobersek  <zdobersek@igalia.com>
    238
  • trunk/Source/WebCore/css/CSSSelector.cpp

    r220207 r221788  
    734734        case CSSSelector::IndirectAdjacent:
    735735            return tagHistory->selectorText(" ~ " + str.toString() + rightSide);
    736 #if ENABLE(CSS_SELECTORS_LEVEL4)
    737         case CSSSelector::DescendantDoubleChild:
    738             return tagHistory->selectorText(" >> " + str.toString() + rightSide);
    739 #endif
    740736        case CSSSelector::Subselector:
    741737            ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/css/CSSSelector.h

    r220207 r221788  
    8686            DirectAdjacent,
    8787            IndirectAdjacent,
    88 #if ENABLE(CSS_SELECTORS_LEVEL4)
    89             DescendantDoubleChild,
    90 #endif
    9188            ShadowDescendant
    9289        };
     
    258255        int nthB() const;
    259256
    260 #if ENABLE(CSS_SELECTORS_LEVEL4)
    261         bool hasDescendantRelation() const { return relation() == DescendantSpace || relation() == DescendantDoubleChild; }
    262 #else
    263257        bool hasDescendantRelation() const { return relation() == DescendantSpace; }
    264 #endif
    265258
    266259        bool hasDescendantOrChildRelation() const { return relation() == Child || hasDescendantRelation(); }
  • trunk/Source/WebCore/css/SelectorChecker.cpp

    r219237 r221788  
    333333    switch (relation) {
    334334    case CSSSelector::DescendantSpace:
    335 #if ENABLE(CSS_SELECTORS_LEVEL4)
    336     case CSSSelector::DescendantDoubleChild:
    337 #endif
    338335        nextContext = localContextForParent(nextContext);
    339336        nextContext.firstSelectorOfTheFragment = nextContext.selector;
  • trunk/Source/WebCore/css/SelectorFilter.cpp

    r219237 r221788  
    140140            break;
    141141        case CSSSelector::DescendantSpace:
    142 #if ENABLE(CSS_SELECTORS_LEVEL4)
    143         case CSSSelector::DescendantDoubleChild:
    144 #endif
    145142        case CSSSelector::Child:
    146143            skipOverSubselectors = false;
  • trunk/Source/WebCore/css/parser/CSSParserSelector.cpp

    r218890 r221788  
    199199        selectorRelation = CSSSelector::DescendantSpace;
    200200        break;
    201 #if ENABLE(CSS_SELECTORS_LEVEL4)
    202     case CSSParserSelectorCombinator::DescendantDoubleChild:
    203         selectorRelation = CSSSelector::DescendantDoubleChild;
    204         break;
    205 #endif
    206201    case CSSParserSelectorCombinator::DirectAdjacent:
    207202        selectorRelation = CSSSelector::DirectAdjacent;
  • trunk/Source/WebCore/css/parser/CSSParserSelector.h

    r218588 r221788  
    3535    Child,
    3636    DescendantSpace,
    37 #if ENABLE(CSS_SELECTORS_LEVEL4)
    38     DescendantDoubleChild,
    39 #endif
    4037    DirectAdjacent,
    4138    IndirectAdjacent
  • trunk/Source/WebCore/css/parser/CSSSelectorParser.cpp

    r219237 r221788  
    146146static bool isDescendantCombinator(CSSSelector::RelationType relation)
    147147{
    148 #if ENABLE(CSS_SELECTORS_LEVEL4)
    149     return relation == CSSSelector::DescendantSpace || relation == CSSSelector::DescendantDoubleChild;
    150 #else
    151148    return relation == CSSSelector::DescendantSpace;
    152 #endif
    153 }
     149}
     150
    154151std::unique_ptr<CSSParserSelector> CSSSelectorParser::consumeComplexSelector(CSSParserTokenRange& range)
    155152{
     
    662659
    663660    if (delimiter == '+' || delimiter == '~' || delimiter == '>') {
    664         if (delimiter == '+') {
    665             range.consumeIncludingWhitespace();
     661        range.consumeIncludingWhitespace();
     662        if (delimiter == '+')
    666663            return CSSSelector::DirectAdjacent;
    667         }
    668        
    669         if (delimiter == '~') {
    670             range.consumeIncludingWhitespace();
     664        if (delimiter == '~')
    671665            return CSSSelector::IndirectAdjacent;
    672         }
    673        
    674 #if ENABLE(CSS_SELECTORS_LEVEL4)
    675         range.consume();
    676         if (range.peek().type() == DelimiterToken && range.peek().delimiter() == '>') {
    677             range.consumeIncludingWhitespace();
    678             return CSSSelector::DescendantDoubleChild;
    679         }
    680         range.consumeWhitespace();
    681 #else
    682         range.consumeIncludingWhitespace();
    683 #endif
    684666        return CSSSelector::Child;
    685667    }
  • trunk/Source/WebCore/cssjit/SelectorCompiler.cpp

    r219237 r221788  
    403403    switch (relation) {
    404404    case CSSSelector::DescendantSpace:
    405 #if ENABLE(CSS_SELECTORS_LEVEL4)
    406     case CSSSelector::DescendantDoubleChild:
    407 #endif
    408405        return FragmentRelation::Descendant;
    409406    case CSSSelector::Child:
Note: See TracChangeset for help on using the changeset viewer.