⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 285921 in webkit


Ignore:
Timestamp:
Nov 17, 2021, 2:29:44 AM (5 years ago)
Author:
Antti Koivisto
Message:

Update web-platform-tests/css/selectors
https://bugs.webkit.org/show_bug.cgi?id=233246

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

WPT updates.

  • resources/import-expectations.json:
  • web-platform-tests/css/selectors/first-letter-flag-001-expected.html: Added.
  • web-platform-tests/css/selectors/first-letter-flag-001.html: Added.
  • web-platform-tests/css/selectors/focus-visible-004.html:
  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt: Added.
  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative.html: Added.
  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/has-basic.html:
  • web-platform-tests/css/selectors/has-matches-to-uninserted-elements-expected.txt: Added.
  • web-platform-tests/css/selectors/has-matches-to-uninserted-elements.html: Added.
  • web-platform-tests/css/selectors/has-relative-argument-expected.txt:
  • web-platform-tests/css/selectors/has-relative-argument.html:
  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has-expected.txt: Added.
  • web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html: Added.
  • web-platform-tests/css/selectors/invalidation/w3c-import.log:
  • web-platform-tests/css/selectors/nesting-expected.html: Added.
  • web-platform-tests/css/selectors/nesting-parsing-expected.txt: Added.
  • web-platform-tests/css/selectors/nesting-parsing.html: Added.
  • web-platform-tests/css/selectors/nesting.html: Added.
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:
  • web-platform-tests/css/selectors/selection-image-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-expected.html.
  • web-platform-tests/css/selectors/selection-image-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002-expected.html.
  • web-platform-tests/css/selectors/w3c-import.log:
  • web-platform-tests/css/selectors/xml-class-selector-expected.xml: Added.
  • web-platform-tests/css/selectors/xml-class-selector.xml: Added.

LayoutTests:

Location:
trunk/LayoutTests
Files:
14 added
13 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r285920 r285921  
     12021-11-17  Antti Koivisto  <antti@apple.com>
     2
     3        Update web-platform-tests/css/selectors
     4        https://bugs.webkit.org/show_bug.cgi?id=233246
     5
     6        Reviewed by Alexey Shvayka.
     7
     8        * TestExpectations:
     9
    1102021-11-17  Rob Buis  <rbuis@igalia.com>
    211
  • trunk/LayoutTests/TestExpectations

    r285918 r285921  
    14771477webkit.org/b/64861 imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-rtl-001.html [ ImageOnlyFailure ]
    14781478webkit.org/b/64861 imported/w3c/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html [ ImageOnlyFailure ]
     1479webkit.org/b/223497 imported/w3c/web-platform-tests/css/selectors/nesting.html [ ImageOnlyFailure ]
     1480imported/w3c/web-platform-tests/css/selectors/xml-class-selector.xml [ ImageOnlyFailure ]
    14791481
    14801482# ref for this is under a directory that is not yet imported
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r285918 r285921  
     12021-11-17  Antti Koivisto  <antti@apple.com>
     2
     3        Update web-platform-tests/css/selectors
     4        https://bugs.webkit.org/show_bug.cgi?id=233246
     5
     6        Reviewed by Alexey Shvayka.
     7
     8        WPT updates.
     9
     10        * resources/import-expectations.json:
     11        * web-platform-tests/css/selectors/first-letter-flag-001-expected.html: Added.
     12        * web-platform-tests/css/selectors/first-letter-flag-001.html: Added.
     13        * web-platform-tests/css/selectors/focus-visible-004.html:
     14        * web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt: Added.
     15        * web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative.html: Added.
     16        * web-platform-tests/css/selectors/has-basic-expected.txt:
     17        * web-platform-tests/css/selectors/has-basic.html:
     18        * web-platform-tests/css/selectors/has-matches-to-uninserted-elements-expected.txt: Added.
     19        * web-platform-tests/css/selectors/has-matches-to-uninserted-elements.html: Added.
     20        * web-platform-tests/css/selectors/has-relative-argument-expected.txt:
     21        * web-platform-tests/css/selectors/has-relative-argument.html:
     22        * web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has-expected.txt: Added.
     23        * web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html: Added.
     24        * web-platform-tests/css/selectors/invalidation/w3c-import.log:
     25        * web-platform-tests/css/selectors/nesting-expected.html: Added.
     26        * web-platform-tests/css/selectors/nesting-parsing-expected.txt: Added.
     27        * web-platform-tests/css/selectors/nesting-parsing.html: Added.
     28        * web-platform-tests/css/selectors/nesting.html: Added.
     29        * web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
     30        * web-platform-tests/css/selectors/parsing/parse-has.html:
     31        * web-platform-tests/css/selectors/selection-image-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-expected.html.
     32        * web-platform-tests/css/selectors/selection-image-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002-expected.html.
     33        * web-platform-tests/css/selectors/w3c-import.log:
     34        * web-platform-tests/css/selectors/xml-class-selector-expected.xml: Added.
     35        * web-platform-tests/css/selectors/xml-class-selector.xml: Added.
     36
    1372021-11-16  Rob Buis  <rbuis@igalia.com>
    238
  • trunk/LayoutTests/imported/w3c/resources/import-expectations.json

    r285426 r285921  
    322322    "web-platform-tests/html/semantics/forms/the-textarea-element": "import",
    323323    "web-platform-tests/html/semantics/interactive-elements/the-dialog-element/": "import",
    324     "web-platform-tests/html/semantics/interactive-elements/the-summary-element": "skip",
     324    "web-platform-tests/html/semantics/interactive-elements/the-summary-element": "skip", 
    325325    "web-platform-tests/html/semantics/links/downloading-resources": "import",
    326326    "web-platform-tests/html/semantics/links/following-hyperlinks": "skip",
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-004.html

    r276127 r285921  
    3030    .check {
    3131      -webkit-appearance: none;
    32       -webkit-appearance: none;
     32      appearance: none;
    3333    }
    3434  </style>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-basic-expected.txt

    r281295 r285921  
    1212PASS :has(.sibling:has(.descendant) ~ .target) matches expected elements
    1313PASS :has(.sibling:has(.descendant) ~ .target) ~ .parent > .descendant matches expected elements
    14 PASS :has(:scope .target) matches expected elements
    15 PASS :has(:scope > .parent) matches expected elements
     14PASS :has(> .parent) matches expected elements
    1615PASS :has(> .target) matches expected elements
    17 PASS :has(:scope > .target) matches expected elements
     16PASS :has(> .parent, > .target) matches expected elements
    1817PASS :has(+ #h) matches expected elements
    19 PASS :has(:scope + #h) matches expected elements
    2018PASS .parent:has(~ #h) matches expected elements
    21 PASS .parent:has(:scope ~ #h) matches expected elements
    2219PASS .sibling:has(.descendant) matches expected element
    2320PASS closest(.ancestor:has(.descendant)) returns expected element
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-basic.html

    r279581 r285921  
    7575      ':has(.sibling:has(.descendant) ~ .target) ~ .parent > .descendant',
    7676      [g, i, j]);
    77   test_selector_all(':has(:scope .target)', [a, b, f, h]);
    78   test_selector_all(':has(:scope > .parent)', [a]);
     77  test_selector_all(':has(> .parent)', [a]);
    7978  test_selector_all(':has(> .target)', [b, f, h]);
    80   test_selector_all(':has(:scope > .target)', [b, f, h]);
     79  test_selector_all(':has(> .parent, > .target)', [a, b, f, h]);
    8180  test_selector_all(':has(+ #h)', [f]);
    82   test_selector_all(':has(:scope + #h)', [f]);
    8381  test_selector_all('.parent:has(~ #h)', [b, f]);
    84   test_selector_all('.parent:has(:scope ~ #h)', [b, f]);
    8582  test_selector('.sibling:has(.descendant)', c);
    8683  test_closest(k, '.ancestor:has(.descendant)', h);
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-relative-argument-expected.txt

    r281295 r285921  
    11
    2 PASS .x:has(:scope .a) matches expected elements
    3 PASS .x:has(:scope .a > .b) matches expected elements
    4 PASS .x:has(:scope .a .b) matches expected elements
    5 PASS .x:has(:scope .a + .b) matches expected elements
    6 PASS .x:has(:scope .a ~ .b) matches expected elements
    7 PASS :has(.x:scope .a) matches expected elements
    8 PASS :has(.x:scope .a > .b) matches expected elements
    9 PASS :has(.x:scope .a .b) matches expected elements
    10 PASS :has(.x:scope .a + .b) matches expected elements
    11 PASS :has(.x:scope .a ~ .b) matches expected elements
    12 PASS :has(:scope.x .a) matches expected elements
    13 PASS :has(:scope.x .a > .b) matches expected elements
    14 PASS :has(:scope.x .a .b) matches expected elements
    15 PASS :has(:scope.x .a + .b) matches expected elements
    16 PASS :has(:scope.x .a ~ .b) matches expected elements
    17 PASS .x:has(:scope > .a) matches expected elements
    18 PASS .x:has(:scope > .a > .b) matches expected elements
    19 PASS .x:has(:scope > .a .b) matches expected elements
    20 PASS .x:has(:scope > .a + .b) matches expected elements
    21 PASS .x:has(:scope > .a ~ .b) matches expected elements
    22 PASS :has(.x:scope > .a) matches expected elements
    23 PASS :has(.x:scope > .a > .b) matches expected elements
    24 PASS :has(.x:scope > .a .b) matches expected elements
    25 PASS :has(.x:scope > .a + .b) matches expected elements
    26 PASS :has(.x:scope > .a ~ .b) matches expected elements
    27 PASS :has(:scope.x > .a) matches expected elements
    28 PASS :has(:scope.x > .a > .b) matches expected elements
    29 PASS :has(:scope.x > .a .b) matches expected elements
    30 PASS :has(:scope.x > .a + .b) matches expected elements
    31 PASS :has(:scope.x > .a ~ .b) matches expected elements
    32 PASS .x:has(:scope + .a) matches expected elements
    33 PASS .x:has(:scope + .a > .b) matches expected elements
    34 PASS .x:has(:scope + .a .b) matches expected elements
    35 PASS .x:has(:scope + .a + .b) matches expected elements
    36 PASS .x:has(:scope + .a ~ .b) matches expected elements
    37 PASS :has(.x:scope + .a) matches expected elements
    38 PASS :has(.x:scope + .a > .b) matches expected elements
    39 PASS :has(.x:scope + .a .b) matches expected elements
    40 PASS :has(.x:scope + .a + .b) matches expected elements
    41 PASS :has(.x:scope + .a ~ .b) matches expected elements
    42 PASS :has(:scope.x + .a) matches expected elements
    43 PASS :has(:scope.x + .a > .b) matches expected elements
    44 PASS :has(:scope.x + .a .b) matches expected elements
    45 PASS :has(:scope.x + .a + .b) matches expected elements
    46 PASS :has(:scope.x + .a ~ .b) matches expected elements
    47 PASS .x:has(:scope ~ .a) matches expected elements
    48 PASS .x:has(:scope ~ .a > .b) matches expected elements
    49 PASS .x:has(:scope ~ .a .b) matches expected elements
    50 PASS .x:has(:scope ~ .a + .b) matches expected elements
    51 PASS .x:has(:scope ~ .a + .b > .c) matches expected elements
    52 PASS .x:has(:scope ~ .a + .b .c) matches expected elements
    53 PASS :has(.x:scope ~ .a) matches expected elements
    54 PASS :has(.x:scope ~ .a > .b) matches expected elements
    55 PASS :has(.x:scope ~ .a .b) matches expected elements
    56 PASS :has(.x:scope ~ .a + .b) matches expected elements
    57 PASS :has(.x:scope ~ .a + .b > .c) matches expected elements
    58 PASS :has(.x:scope ~ .a + .b .c) matches expected elements
    59 PASS :has(:scope.x ~ .a) matches expected elements
    60 PASS :has(:scope.x ~ .a > .b) matches expected elements
    61 PASS :has(:scope.x ~ .a .b) matches expected elements
    62 PASS :has(:scope.x ~ .a + .b) matches expected elements
    63 PASS :has(:scope.x ~ .a + .b > .c) matches expected elements
    64 PASS :has(:scope.x ~ .a + .b .c) matches expected elements
     2PASS .x:has(.a) matches expected elements
     3PASS .x:has(.a > .b) matches expected elements
     4PASS .x:has(.a .b) matches expected elements
     5PASS .x:has(.a + .b) matches expected elements
     6PASS .x:has(.a ~ .b) matches expected elements
     7PASS .x:has(> .a) matches expected elements
     8PASS .x:has(> .a > .b) matches expected elements
     9PASS .x:has(> .a .b) matches expected elements
     10PASS .x:has(> .a + .b) matches expected elements
     11PASS .x:has(> .a ~ .b) matches expected elements
     12PASS .x:has(+ .a) matches expected elements
     13PASS .x:has(+ .a > .b) matches expected elements
     14PASS .x:has(+ .a .b) matches expected elements
     15PASS .x:has(+ .a + .b) matches expected elements
     16PASS .x:has(+ .a ~ .b) matches expected elements
     17PASS .x:has(~ .a) matches expected elements
     18PASS .x:has(~ .a > .b) matches expected elements
     19PASS .x:has(~ .a .b) matches expected elements
     20PASS .x:has(~ .a + .b) matches expected elements
     21PASS .x:has(~ .a + .b > .c) matches expected elements
     22PASS .x:has(~ .a + .b .c) matches expected elements
    6523PASS .x:has(.d .e) matches expected elements
    6624PASS .x:has(.d .e) .f matches expected elements
    67 PASS .x:has(:scope .d .e) matches expected elements
    68 PASS .x:has(:scope .d .e) .f matches expected elements
    69 PASS .x:has(:scope > .d) matches expected elements
    70 PASS .x:has(:scope > .d) .f matches expected elements
    71 PASS .x:has(:scope ~ .d ~ .e) matches expected elements
    72 PASS .x:has(:scope ~ .d ~ .e) ~ .f matches expected elements
    73 PASS .x:has(:scope + .d ~ .e) matches expected elements
    74 PASS .x:has(:scope + .d ~ .e) ~ .f matches expected elements
    75 PASS :has(.x:scope .d .e) matches expected elements
    76 PASS :has(.x:scope .d .e) .f matches expected elements
    77 PASS :has(.x:scope > .d) matches expected elements
    78 PASS :has(.x:scope > .d) .f matches expected elements
    79 PASS :has(.x:scope ~ .d ~ .e) matches expected elements
    80 PASS :has(.x:scope ~ .d ~ .e) ~ .f matches expected elements
    81 PASS :has(.x:scope + .d ~ .e) matches expected elements
    82 PASS :has(.x:scope + .d ~ .e) ~ .f matches expected elements
    83 PASS :has(:scope.x .d .e) matches expected elements
    84 PASS :has(:scope.x .d .e) .f matches expected elements
    85 PASS :has(:scope.x > .d) matches expected elements
    86 PASS :has(:scope.x > .d) .f matches expected elements
    87 PASS :has(:scope.x ~ .d ~ .e) matches expected elements
    88 PASS :has(:scope.x ~ .d ~ .e) ~ .f matches expected elements
    89 PASS :has(:scope.x + .d ~ .e) matches expected elements
    90 PASS :has(:scope.x + .d ~ .e) ~ .f matches expected elements
    91 PASS .y:has(:scope > .g .h) matches expected elements
    92 PASS .y:has(:scope .g .h) matches expected elements
    93 PASS .y:has(:scope > .g .h) .i matches expected elements
    94 PASS .y:has(:scope .g .h) .i matches expected elements
    95 PASS .x:has(:scope + .y:has(:scope > .g .h) .i) matches expected elements
    96 PASS .x:has(:scope + .y:has(:scope .g .h) .i) matches expected elements
    97 PASS .x:has(:scope + .y:has(:scope > .g .h) .i) ~ .j matches expected elements
    98 PASS .x:has(:scope + .y:has(:scope .g .h) .i) ~ .j matches expected elements
    99 PASS .x:has(:scope ~ .y:has(:scope > .g .h) .i) matches expected elements
    100 PASS .x:has(:scope ~ .y:has(:scope .g .h) .i) matches expected elements
    101 PASS :has(.y:scope > .g .h) matches expected elements
    102 PASS :has(.y:scope .g .h) matches expected elements
    103 PASS :has(.y:scope > .g .h) .i matches expected elements
    104 PASS :has(.y:scope .g .h) .i matches expected elements
    105 PASS :has(.x:scope + :has(.y:scope > .g .h) .i) matches expected elements
    106 PASS :has(.x:scope + :has(.y:scope .g .h) .i) matches expected elements
    107 PASS :has(.x:scope + :has(.y:scope > .g .h) .i) ~ .j matches expected elements
    108 PASS :has(.x:scope + :has(.y:scope .g .h) .i) ~ .j matches expected elements
    109 PASS :has(.x:scope ~ :has(.y:scope > .g .h) .i) matches expected elements
    110 PASS :has(.x:scope ~ :has(.y:scope .g .h) .i) matches expected elements
    111 PASS :has(:scope.y > .g .h) matches expected elements
    112 PASS :has(:scope.y .g .h) matches expected elements
    113 PASS :has(:scope.y > .g .h) .i matches expected elements
    114 PASS :has(:scope.y .g .h) .i matches expected elements
    115 PASS :has(:scope.x + :has(:scope.y > .g .h) .i) matches expected elements
    116 PASS :has(:scope.x + :has(:scope.y .g .h) .i) matches expected elements
    117 PASS :has(:scope.x + :has(:scope.y > .g .h) .i) ~ .j matches expected elements
    118 PASS :has(:scope.x + :has(:scope.y .g .h) .i) ~ .j matches expected elements
    119 PASS :has(:scope.x ~ :has(:scope.y > .g .h) .i) matches expected elements
    120 PASS :has(:scope.x ~ :has(:scope.y .g .h) .i) matches expected elements
    121 PASS .x:has(.d :scope .e) matches expected elements
    122 PASS :has(.d .x:scope .e) matches expected elements
    123 PASS :has(.d :scope.x .e) matches expected elements
    124 PASS .x:has(.d ~ :scope ~ .e) matches expected elements
    125 PASS :has(.d ~ .x:scope ~ .e) matches expected elements
    126 PASS :has(.d ~ :scope.x ~ .e) matches expected elements
    127 PASS :has(:scope .d :scope) matches expected elements
    128 PASS :has(:scope ~ .d ~ :scope) matches expected elements
     25PASS .x:has(> .d) matches expected elements
     26PASS .x:has(> .d) .f matches expected elements
     27PASS .x:has(~ .d ~ .e) matches expected elements
     28PASS .x:has(~ .d ~ .e) ~ .f matches expected elements
     29PASS .x:has(+ .d ~ .e) matches expected elements
     30PASS .x:has(+ .d ~ .e) ~ .f matches expected elements
     31PASS .y:has(> .g .h) matches expected elements
     32PASS .y:has(.g .h) matches expected elements
     33PASS .y:has(> .g .h) .i matches expected elements
     34PASS .y:has(.g .h) .i matches expected elements
     35PASS .x:has(+ .y:has(> .g .h) .i) matches expected elements
     36PASS .x:has(+ .y:has(.g .h) .i) matches expected elements
     37PASS .x:has(+ .y:has(> .g .h) .i) ~ .j matches expected elements
     38PASS .x:has(+ .y:has(.g .h) .i) ~ .j matches expected elements
     39PASS .x:has(~ .y:has(> .g .h) .i) matches expected elements
     40PASS .x:has(~ .y:has(.g .h) .i) matches expected elements
     41PASS .d .x:has(.e) matches expected elements
     42PASS .d ~ .x:has(~ .e) matches expected elements
    12943
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-relative-argument.html

    r279581 r285921  
    139139  }
    140140
    141   test_selector_all('.x:has(:scope .a)', [d02, d06, d07, d09, d12]);
    142   test_selector_all('.x:has(:scope .a > .b)', [d09]);
    143   test_selector_all('.x:has(:scope .a .b)', [d09, d12]);
    144   test_selector_all('.x:has(:scope .a + .b)', [d12]);
    145   test_selector_all('.x:has(:scope .a ~ .b)', [d02, d12]);
    146   test_selector_all(':has(.x:scope .a)', [d02, d06, d07, d09, d12]);
    147   test_selector_all(':has(.x:scope .a > .b)', [d09]);
    148   test_selector_all(':has(.x:scope .a .b)', [d09, d12]);
    149   test_selector_all(':has(.x:scope .a + .b)', [d12]);
    150   test_selector_all(':has(.x:scope .a ~ .b)', [d02, d12]);
    151   test_selector_all(':has(:scope.x .a)', [d02, d06, d07, d09, d12]);
    152   test_selector_all(':has(:scope.x .a > .b)', [d09]);
    153   test_selector_all(':has(:scope.x .a .b)', [d09, d12]);
    154   test_selector_all(':has(:scope.x .a + .b)', [d12]);
    155   test_selector_all(':has(:scope.x .a ~ .b)', [d02, d12]);
     141  test_selector_all('.x:has(.a)', [d02, d06, d07, d09, d12]);
     142  test_selector_all('.x:has(.a > .b)', [d09]);
     143  test_selector_all('.x:has(.a .b)', [d09, d12]);
     144  test_selector_all('.x:has(.a + .b)', [d12]);
     145  test_selector_all('.x:has(.a ~ .b)', [d02, d12]);
    156146
    157   test_selector_all('.x:has(:scope > .a)', [d02, d07, d09, d12]);
    158   test_selector_all('.x:has(:scope > .a > .b)', [d09]);
    159   test_selector_all('.x:has(:scope > .a .b)', [d09, d12]);
    160   test_selector_all('.x:has(:scope > .a + .b)', [d12]);
    161   test_selector_all('.x:has(:scope > .a ~ .b)', [d02, d12]);
    162   test_selector_all(':has(.x:scope > .a)', [d02, d07, d09, d12]);
    163   test_selector_all(':has(.x:scope > .a > .b)', [d09]);
    164   test_selector_all(':has(.x:scope > .a .b)', [d09, d12]);
    165   test_selector_all(':has(.x:scope > .a + .b)', [d12]);
    166   test_selector_all(':has(.x:scope > .a ~ .b)', [d02, d12]);
    167   test_selector_all(':has(:scope.x > .a)', [d02, d07, d09, d12]);
    168   test_selector_all(':has(:scope.x > .a > .b)', [d09]);
    169   test_selector_all(':has(:scope.x > .a .b)', [d09, d12]);
    170   test_selector_all(':has(:scope.x > .a + .b)', [d12]);
    171   test_selector_all(':has(:scope.x > .a ~ .b)', [d02, d12]);
     147  test_selector_all('.x:has(> .a)', [d02, d07, d09, d12]);
     148  test_selector_all('.x:has(> .a > .b)', [d09]);
     149  test_selector_all('.x:has(> .a .b)', [d09, d12]);
     150  test_selector_all('.x:has(> .a + .b)', [d12]);
     151  test_selector_all('.x:has(> .a ~ .b)', [d02, d12]);
    172152
    173   test_selector_all('.x:has(:scope + .a)', [d19, d21, d24, d28, d32, d37, d40, d46]);
    174   test_selector_all('.x:has(:scope + .a > .b)', [d21]);
    175   test_selector_all('.x:has(:scope + .a .b)', [d21, d24]);
    176   test_selector_all('.x:has(:scope + .a + .b)', [d28, d32, d37]);
    177   test_selector_all('.x:has(:scope + .a ~ .b)', [d19, d21, d24, d28, d32, d37, d40]);
    178   test_selector_all(':has(.x:scope + .a)', [d19, d21, d24, d28, d32, d37, d40, d46]);
    179   test_selector_all(':has(.x:scope + .a > .b)', [d21]);
    180   test_selector_all(':has(.x:scope + .a .b)', [d21, d24]);
    181   test_selector_all(':has(.x:scope + .a + .b)', [d28, d32, d37]);
    182   test_selector_all(':has(.x:scope + .a ~ .b)', [d19, d21, d24, d28, d32, d37, d40]);
    183   test_selector_all(':has(:scope.x + .a)', [d19, d21, d24, d28, d32, d37, d40, d46]);
    184   test_selector_all(':has(:scope.x + .a > .b)', [d21]);
    185   test_selector_all(':has(:scope.x + .a .b)', [d21, d24]);
    186   test_selector_all(':has(:scope.x + .a + .b)', [d28, d32, d37]);
    187   test_selector_all(':has(:scope.x + .a ~ .b)', [d19, d21, d24, d28, d32, d37, d40]);
     153  test_selector_all('.x:has(+ .a)', [d19, d21, d24, d28, d32, d37, d40, d46]);
     154  test_selector_all('.x:has(+ .a > .b)', [d21]);
     155  test_selector_all('.x:has(+ .a .b)', [d21, d24]);
     156  test_selector_all('.x:has(+ .a + .b)', [d28, d32, d37]);
     157  test_selector_all('.x:has(+ .a ~ .b)', [d19, d21, d24, d28, d32, d37, d40]);
    188158
    189   test_selector_all('.x:has(:scope ~ .a)', [d18, d19, d21, d24, d28, d32, d37, d40, d46]);
    190   test_selector_all('.x:has(:scope ~ .a > .b)', [d18, d19, d21]);
    191   test_selector_all('.x:has(:scope ~ .a .b)', [d18, d19, d21, d24]);
    192   test_selector_all('.x:has(:scope ~ .a + .b)', [d18, d19, d21, d24, d28, d32, d37]);
    193   test_selector_all('.x:has(:scope ~ .a + .b > .c)', [d18, d19, d21, d24, d28]);
    194   test_selector_all('.x:has(:scope ~ .a + .b .c)', [d18, d19, d21, d24, d28, d32]);
    195   test_selector_all(':has(.x:scope ~ .a)', [d18, d19, d21, d24, d28, d32, d37, d40, d46]);
    196   test_selector_all(':has(.x:scope ~ .a > .b)', [d18, d19, d21]);
    197   test_selector_all(':has(.x:scope ~ .a .b)', [d18, d19, d21, d24]);
    198   test_selector_all(':has(.x:scope ~ .a + .b)', [d18, d19, d21, d24, d28, d32, d37]);
    199   test_selector_all(':has(.x:scope ~ .a + .b > .c)', [d18, d19, d21, d24, d28]);
    200   test_selector_all(':has(.x:scope ~ .a + .b .c)', [d18, d19, d21, d24, d28, d32]);
    201   test_selector_all(':has(:scope.x ~ .a)', [d18, d19, d21, d24, d28, d32, d37, d40, d46]);
    202   test_selector_all(':has(:scope.x ~ .a > .b)', [d18, d19, d21]);
    203   test_selector_all(':has(:scope.x ~ .a .b)', [d18, d19, d21, d24]);
    204   test_selector_all(':has(:scope.x ~ .a + .b)', [d18, d19, d21, d24, d28, d32, d37]);
    205   test_selector_all(':has(:scope.x ~ .a + .b > .c)', [d18, d19, d21, d24, d28]);
    206   test_selector_all(':has(:scope.x ~ .a + .b .c)', [d18, d19, d21, d24, d28, d32]);
     159  test_selector_all('.x:has(~ .a)', [d18, d19, d21, d24, d28, d32, d37, d40, d46]);
     160  test_selector_all('.x:has(~ .a > .b)', [d18, d19, d21]);
     161  test_selector_all('.x:has(~ .a .b)', [d18, d19, d21, d24]);
     162  test_selector_all('.x:has(~ .a + .b)', [d18, d19, d21, d24, d28, d32, d37]);
     163  test_selector_all('.x:has(~ .a + .b > .c)', [d18, d19, d21, d24, d28]);
     164  test_selector_all('.x:has(~ .a + .b .c)', [d18, d19, d21, d24, d28, d32]);
    207165
    208166  test_selector_all('.x:has(.d .e)', [d48, d49, d50]);
    209167  test_selector_all('.x:has(.d .e) .f', [d54]);
    210   test_selector_all('.x:has(:scope .d .e)', [d48, d49, d50]);
    211   test_selector_all('.x:has(:scope .d .e) .f', [d54]);
    212   test_selector_all('.x:has(:scope > .d)', [d49, d50]);
    213   test_selector_all('.x:has(:scope > .d) .f', [d54]);
    214   test_selector_all('.x:has(:scope ~ .d ~ .e)', [d48, d55, d56]);
    215   test_selector_all('.x:has(:scope ~ .d ~ .e) ~ .f', [d60]);
    216   test_selector_all('.x:has(:scope + .d ~ .e)', [d55, d56]);
    217   test_selector_all('.x:has(:scope + .d ~ .e) ~ .f', [d60]);
    218   test_selector_all(':has(.x:scope .d .e)', [d48, d49, d50]);
    219   test_selector_all(':has(.x:scope .d .e) .f', [d54]);
    220   test_selector_all(':has(.x:scope > .d)', [d49, d50]);
    221   test_selector_all(':has(.x:scope > .d) .f', [d54]);
    222   test_selector_all(':has(.x:scope ~ .d ~ .e)', [d48, d55, d56]);
    223   test_selector_all(':has(.x:scope ~ .d ~ .e) ~ .f', [d60]);
    224   test_selector_all(':has(.x:scope + .d ~ .e)', [d55, d56]);
    225   test_selector_all(':has(.x:scope + .d ~ .e) ~ .f', [d60]);
    226   test_selector_all(':has(:scope.x .d .e)', [d48, d49, d50]);
    227   test_selector_all(':has(:scope.x .d .e) .f', [d54]);
    228   test_selector_all(':has(:scope.x > .d)', [d49, d50]);
    229   test_selector_all(':has(:scope.x > .d) .f', [d54]);
    230   test_selector_all(':has(:scope.x ~ .d ~ .e)', [d48, d55, d56]);
    231   test_selector_all(':has(:scope.x ~ .d ~ .e) ~ .f', [d60]);
    232   test_selector_all(':has(:scope.x + .d ~ .e)', [d55, d56]);
    233   test_selector_all(':has(:scope.x + .d ~ .e) ~ .f', [d60]);
     168  test_selector_all('.x:has(> .d)', [d49, d50]);
     169  test_selector_all('.x:has(> .d) .f', [d54]);
     170  test_selector_all('.x:has(~ .d ~ .e)', [d48, d55, d56]);
     171  test_selector_all('.x:has(~ .d ~ .e) ~ .f', [d60]);
     172  test_selector_all('.x:has(+ .d ~ .e)', [d55, d56]);
     173  test_selector_all('.x:has(+ .d ~ .e) ~ .f', [d60]);
    234174
    235   test_selector_all('.y:has(:scope > .g .h)', [d63, d71])
    236   test_selector_all('.y:has(:scope .g .h)', [d63, d68, d71])
    237   test_selector_all('.y:has(:scope > .g .h) .i', [d67, d75])
    238   test_selector_all('.y:has(:scope .g .h) .i', [d67, d75])
    239   test_selector_all('.x:has(:scope + .y:has(:scope > .g .h) .i)', [d62, d70])
    240   test_selector_all('.x:has(:scope + .y:has(:scope .g .h) .i)', [d62, d63, d70])
    241   test_selector_all('.x:has(:scope + .y:has(:scope > .g .h) .i) ~ .j', [d77, d80])
    242   test_selector_all('.x:has(:scope + .y:has(:scope .g .h) .i) ~ .j', [d77, d80])
    243   test_selector_all('.x:has(:scope ~ .y:has(:scope > .g .h) .i)', [d61, d62, d69, d70])
    244   test_selector_all('.x:has(:scope ~ .y:has(:scope .g .h) .i)', [d61, d62, d63, d69, d70])
    245   test_selector_all(':has(.y:scope > .g .h)', [d63, d71])
    246   test_selector_all(':has(.y:scope .g .h)', [d63, d68, d71])
    247   test_selector_all(':has(.y:scope > .g .h) .i', [d67, d75])
    248   test_selector_all(':has(.y:scope .g .h) .i', [d67, d75])
    249   test_selector_all(':has(.x:scope + :has(.y:scope > .g .h) .i)', [d62, d70])
    250   test_selector_all(':has(.x:scope + :has(.y:scope .g .h) .i)', [d62, d63, d70])
    251   test_selector_all(':has(.x:scope + :has(.y:scope > .g .h) .i) ~ .j', [d77, d80])
    252   test_selector_all(':has(.x:scope + :has(.y:scope .g .h) .i) ~ .j', [d77, d80])
    253   test_selector_all(':has(.x:scope ~ :has(.y:scope > .g .h) .i)', [d61, d62, d69, d70])
    254   test_selector_all(':has(.x:scope ~ :has(.y:scope .g .h) .i)', [d61, d62, d63, d69, d70])
    255   test_selector_all(':has(:scope.y > .g .h)', [d63, d71])
    256   test_selector_all(':has(:scope.y .g .h)', [d63, d68, d71])
    257   test_selector_all(':has(:scope.y > .g .h) .i', [d67, d75])
    258   test_selector_all(':has(:scope.y .g .h) .i', [d67, d75])
    259   test_selector_all(':has(:scope.x + :has(:scope.y > .g .h) .i)', [d62, d70])
    260   test_selector_all(':has(:scope.x + :has(:scope.y .g .h) .i)', [d62, d63, d70])
    261   test_selector_all(':has(:scope.x + :has(:scope.y > .g .h) .i) ~ .j', [d77, d80])
    262   test_selector_all(':has(:scope.x + :has(:scope.y .g .h) .i) ~ .j', [d77, d80])
    263   test_selector_all(':has(:scope.x ~ :has(:scope.y > .g .h) .i)', [d61, d62, d69, d70])
    264   test_selector_all(':has(:scope.x ~ :has(:scope.y .g .h) .i)', [d61, d62, d63, d69, d70])
     175  test_selector_all('.y:has(> .g .h)', [d63, d71])
     176  test_selector_all('.y:has(.g .h)', [d63, d68, d71])
     177  test_selector_all('.y:has(> .g .h) .i', [d67, d75])
     178  test_selector_all('.y:has(.g .h) .i', [d67, d75])
     179  test_selector_all('.x:has(+ .y:has(> .g .h) .i)', [d62, d70])
     180  test_selector_all('.x:has(+ .y:has(.g .h) .i)', [d62, d63, d70])
     181  test_selector_all('.x:has(+ .y:has(> .g .h) .i) ~ .j', [d77, d80])
     182  test_selector_all('.x:has(+ .y:has(.g .h) .i) ~ .j', [d77, d80])
     183  test_selector_all('.x:has(~ .y:has(> .g .h) .i)', [d61, d62, d69, d70])
     184  test_selector_all('.x:has(~ .y:has(.g .h) .i)', [d61, d62, d63, d69, d70])
    265185
    266   test_selector_all('.x:has(.d :scope .e)', [d51, d52])
    267   test_selector_all(':has(.d .x:scope .e)', [d51, d52])
    268   test_selector_all(':has(.d :scope.x .e)', [d51, d52])
     186  test_selector_all('.d .x:has(.e)', [d51, d52])
    269187
    270   test_selector_all('.x:has(.d ~ :scope ~ .e)', [d57, d58])
    271   test_selector_all(':has(.d ~ .x:scope ~ .e)', [d57, d58])
    272   test_selector_all(':has(.d ~ :scope.x ~ .e)', [d57, d58])
     188  test_selector_all('.d ~ .x:has(~ .e)', [d57, d58])
    273189
    274   test_selector_all(':has(:scope .d :scope)', [])
    275   test_selector_all(':has(:scope ~ .d ~ :scope)', [])
    276190</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/w3c-import.log

    r270933 r285921  
    1616List of files:
    1717/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/any-link-pseudo.html
     18/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html
    1819/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/attribute.html
    1920/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/defined.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/parsing/parse-has-expected.txt

    r281295 r285921  
    99PASS "*:has(.a)" should be a valid selector
    1010PASS ".a:has(.b)" should be a valid selector
    11 PASS ".a:has(:scope .b)" should be a valid selector
    12 PASS ":has(.a:scope .b)" should be a valid selector
    13 PASS ":has(.a .b:scope)" should be a valid selector
    1411PASS ".a:has(> .b)" should be a valid selector
    15 PASS ".a:has(:scope > .b)" should be a valid selector
    16 PASS ":has(.a:scope > .b)" should be a valid selector
    17 PASS ":has(> .a .b:scope)" should be a valid selector
    1812PASS ".a:has(~ .b)" should be a valid selector
    19 PASS ".a:has(:scope ~ .b)" should be a valid selector
    20 PASS ":has(.a:scope ~ .b)" should be a valid selector
    21 PASS ":has(~ .a .b:scope)" should be a valid selector
    2213PASS ".a:has(+ .b)" should be a valid selector
    23 PASS ".a:has(:scope + .b)" should be a valid selector
    24 PASS ":has(.a:scope + .b)" should be a valid selector
    25 PASS ":has(+ .a .b:scope)" should be a valid selector
    26 PASS ".a:has(:scope .b :scope)" should be a valid selector
    2714PASS ".a:has(.b) .c" should be a valid selector
    2815PASS ".a .b:has(.c)" should be a valid selector
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/parsing/parse-has.html

    r279581 r285921  
    1717  test_valid_selector('*:has(.a)', ['*:has(.a)', ':has(.a)']);
    1818  test_valid_selector('.a:has(.b)');
    19   test_valid_selector('.a:has(:scope .b)');
    20   test_valid_selector(':has(.a:scope .b)');
    21   test_valid_selector(':has(.a .b:scope)');
    2219  test_valid_selector('.a:has(> .b)');
    23   test_valid_selector('.a:has(:scope > .b)');
    24   test_valid_selector(':has(.a:scope > .b)');
    25   test_valid_selector(':has(> .a .b:scope)');
    2620  test_valid_selector('.a:has(~ .b)');
    27   test_valid_selector('.a:has(:scope ~ .b)');
    28   test_valid_selector(':has(.a:scope ~ .b)');
    29   test_valid_selector(':has(~ .a .b:scope)');
    3021  test_valid_selector('.a:has(+ .b)');
    31   test_valid_selector('.a:has(:scope + .b)');
    32   test_valid_selector(':has(.a:scope + .b)');
    33   test_valid_selector(':has(+ .a .b:scope)');
    34   test_valid_selector('.a:has(:scope .b :scope)');
    3522  test_valid_selector('.a:has(.b) .c');
    3623  test_valid_selector('.a .b:has(.c)');
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/w3c-import.log

    r279581 r285921  
    1010------------------------------------------------------------------------
    1111Properties requiring vendor prefixes:
    12 appearance
     12None
    1313Property values requiring vendor prefixes:
    1414None
     
    2020/LayoutTests/imported/w3c/web-platform-tests/css/selectors/any-link-dynamic-001.html
    2121/LayoutTests/imported/w3c/web-platform-tests/css/selectors/child-indexed-pseudo-class.html
     22/LayoutTests/imported/w3c/web-platform-tests/css/selectors/first-letter-flag-001-expected.html
     23/LayoutTests/imported/w3c/web-platform-tests/css/selectors/first-letter-flag-001.html
    2224/LayoutTests/imported/w3c/web-platform-tests/css/selectors/first-line-bidi-001-expected.html
    2325/LayoutTests/imported/w3c/web-platform-tests/css/selectors/first-line-bidi-001.html
     
    104106/LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-within-shadow-006-expected.html
    105107/LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-within-shadow-006.html
     108/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative.html
    106109/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-basic.html
     110/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-matches-to-uninserted-elements.html
    107111/LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-relative-argument.html
    108112/LayoutTests/imported/w3c/web-platform-tests/css/selectors/historical-xmlid-expected.xht
     
    129133/LayoutTests/imported/w3c/web-platform-tests/css/selectors/is-where-visited.html
    130134/LayoutTests/imported/w3c/web-platform-tests/css/selectors/missing-right-token.html
     135/LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-expected.html
     136/LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting-parsing.html
     137/LayoutTests/imported/w3c/web-platform-tests/css/selectors/nesting.html
    131138/LayoutTests/imported/w3c/web-platform-tests/css/selectors/not-complex.html
    132139/LayoutTests/imported/w3c/web-platform-tests/css/selectors/not-default-ns-001-expected.html
     
    148155/LayoutTests/imported/w3c/web-platform-tests/css/selectors/scope-without-scoping-expected.xht
    149156/LayoutTests/imported/w3c/web-platform-tests/css/selectors/scope-without-scoping.html
    150 /LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-expected.html
     157/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-expected-mismatch.html
    151158/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-no-selection-noref.html
    152159/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001-noref.html
    153160/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-001.html
    154 /LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002-expected.html
     161/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002-expected-mismatch.html
    155162/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selection-image-002.html
    156163/LayoutTests/imported/w3c/web-platform-tests/css/selectors/selector-placeholder-shown-emptify-placeholder.html
     
    208215/LayoutTests/imported/w3c/web-platform-tests/css/selectors/webkit-pseudo-element.html
    209216/LayoutTests/imported/w3c/web-platform-tests/css/selectors/x-pseudo-element.html
     217/LayoutTests/imported/w3c/web-platform-tests/css/selectors/xml-class-selector-expected.xml
     218/LayoutTests/imported/w3c/web-platform-tests/css/selectors/xml-class-selector.xml
Note: See TracChangeset for help on using the changeset viewer.