diff --git a/tests/wpt/metadata/FileAPI/Blob-methods-from-detached-frame.html.ini b/tests/wpt/metadata/FileAPI/Blob-methods-from-detached-frame.html.ini deleted file mode 100644 index e9bfde19772..00000000000 --- a/tests/wpt/metadata/FileAPI/Blob-methods-from-detached-frame.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Blob-methods-from-detached-frame.html] - [slice()] - expected: FAIL - - [text()] - expected: FAIL - - [arrayBuffer()] - expected: FAIL - - [stream()] - expected: FAIL diff --git a/tests/wpt/metadata/cors/script-304.html.ini b/tests/wpt/metadata/cors/script-304.html.ini deleted file mode 100644 index 914b364b684..00000000000 --- a/tests/wpt/metadata/cors/script-304.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[script-304.html] - [Load a fresh cross-origin script] - expected: FAIL - - [Reload same cross-origin script from the memory cache after revalidation] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini b/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini deleted file mode 100644 index f1b2c08cf15..00000000000 --- a/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adjacent-to-relpos-inline-in-inline-that-had-block.html] - [Make sure that we're sized by the right ancestor] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini b/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini deleted file mode 100644 index 27df1212878..00000000000 --- a/tests/wpt/metadata/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adjacent-to-relpos-inline-that-had-block.html] - [Make sure that we're sized by the right ancestor] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini b/tests/wpt/metadata/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini deleted file mode 100644 index 70784ff0b07..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[remove-block-before-self-collapsing-sibling-with-clearance.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini b/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini deleted file mode 100644 index 1d641a0d80c..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[computed-float-position-absolute.html] - [The computed value of float with absolute positioning when there is no box should be "none"] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-client-rects-001.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-client-rects-001.html.ini deleted file mode 100644 index d1d5ae47848..00000000000 --- a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-client-rects-001.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[block-in-inline-client-rects-001.html] - [t1.getBoundingClientRect().width] - expected: FAIL - - [t2.getBoundingClientRect().width] - expected: FAIL - - [t3.getBoundingClientRect().width] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html.ini deleted file mode 100644 index 585f7f61434..00000000000 --- a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[block-in-inline-hittest-float-001.html] - [block-in-inline-hittest-float-001] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-insert-018.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-insert-018.html.ini deleted file mode 100644 index 383d628e829..00000000000 --- a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-insert-018.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-in-inline-insert-018.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini deleted file mode 100644 index 5100ee5c5a1..00000000000 --- a/tests/wpt/metadata/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[margin-collapse-through-percentage-padding.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/positioning/abspos-change-in-inline-block.html.ini b/tests/wpt/metadata/css/CSS2/positioning/abspos-change-in-inline-block.html.ini deleted file mode 100644 index f6d3f5120c5..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/abspos-change-in-inline-block.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[abspos-change-in-inline-block.html] - [No crash] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini b/tests/wpt/metadata/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini deleted file mode 100644 index 4d53d32f1c1..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[abspos-width-change-inline-container-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/positioning/detach-abspos-before-layout.html.ini b/tests/wpt/metadata/css/CSS2/positioning/detach-abspos-before-layout.html.ini deleted file mode 100644 index 4cc6e839ea4..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/detach-abspos-before-layout.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[detach-abspos-before-layout.html] - [No crash or DCHECK failure] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini b/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini deleted file mode 100644 index e2607f69bb4..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[relpos-percentage-left-in-scrollable-2.html] - expected: ERROR - [relpos-percentage-left-in-scrollable-2] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini b/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini deleted file mode 100644 index 6d5530dd5f5..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[relpos-percentage-left-in-scrollable.html] - expected: ERROR - [relpos-percentage-left-in-scrollable] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini b/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini deleted file mode 100644 index 7d7251809cd..00000000000 --- a/tests/wpt/metadata/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[relpos-percentage-top-in-scrollable.html] - expected: ERROR - [relpos-percentage-top-in-scrollable] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini b/tests/wpt/metadata/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini deleted file mode 100644 index 805fb5ef146..00000000000 --- a/tests/wpt/metadata/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[composite-change-after-scroll-preserves-stacking-order.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini b/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini deleted file mode 100644 index cd8ee521d3d..00000000000 --- a/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-change-parent-stacking-context.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini b/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini deleted file mode 100644 index 2e6fd71a501..00000000000 --- a/tests/wpt/metadata/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-change-twice-stacking-context.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-animations/animation-base-response-001.html.ini b/tests/wpt/metadata/css/css-animations/animation-base-response-001.html.ini index de1e20d78ad..0e735a2b627 100644 --- a/tests/wpt/metadata/css/css-animations/animation-base-response-001.html.ini +++ b/tests/wpt/metadata/css/css-animations/animation-base-response-001.html.ini @@ -1,2 +1,3 @@ [animation-base-response-001.html] - expected: ERROR + [var() references respond to custom property animation] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-animations/animation-base-response-002.html.ini b/tests/wpt/metadata/css/css-animations/animation-base-response-002.html.ini deleted file mode 100644 index 60c7e969659..00000000000 --- a/tests/wpt/metadata/css/css-animations/animation-base-response-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[animation-base-response-002.html] - [Animated font-size on root affects rem units] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-animations/computed-style-animation-parsing.html.ini b/tests/wpt/metadata/css/css-animations/computed-style-animation-parsing.html.ini deleted file mode 100644 index 6a1ab9d1ea0..00000000000 --- a/tests/wpt/metadata/css/css-animations/computed-style-animation-parsing.html.ini +++ /dev/null @@ -1,16 +0,0 @@ -[computed-style-animation-parsing.html] - [Test an animation name that is the same as a possible animation fill-mode.] - expected: FAIL - - [Test an animation name that is the same as a possible running state.] - expected: FAIL - - [Test animation name being empty.] - expected: FAIL - - [Test a non-conflicting animation name.] - expected: FAIL - - [Test an animation name that is the same as a possible animation direction.] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-animations/style-animation-parsing.html.ini b/tests/wpt/metadata/css/css-animations/style-animation-parsing.html.ini deleted file mode 100644 index 46d53ea9343..00000000000 --- a/tests/wpt/metadata/css/css-animations/style-animation-parsing.html.ini +++ /dev/null @@ -1,16 +0,0 @@ -[style-animation-parsing.html] - [Test an animation name that is the same as a possible animation fill-mode.] - expected: FAIL - - [Test an animation name that is the same as a possible running state.] - expected: FAIL - - [Test animation name being empty.] - expected: FAIL - - [Test a non-conflicting animation name.] - expected: FAIL - - [Test an animation name that is the same as a possible animation direction.] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-backgrounds/background-clip-color-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-clip-color-repaint.html.ini deleted file mode 100644 index 625620c95fe..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-clip-color-repaint.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[background-clip-color-repaint.html] - bug: https://github.com/servo/servo/issues/8984 - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html.ini deleted file mode 100644 index 4dd4c319a04..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-image-gradient-currentcolor-conic-repaint.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html.ini deleted file mode 100644 index 68e125b782b..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-image-gradient-currentcolor-linear-repaint.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html.ini deleted file mode 100644 index ecf7146b974..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[background-image-gradient-currentcolor-radial-repaint.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-visited.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-visited.html.ini index dec12adcfc7..ad844b004e7 100644 --- a/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-visited.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/background-image-gradient-currentcolor-visited.html.ini @@ -1,2 +1,2 @@ [background-image-gradient-currentcolor-visited.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/background-image-none-gradient-repaint.html.ini b/tests/wpt/metadata/css/css-backgrounds/background-image-none-gradient-repaint.html.ini deleted file mode 100644 index d279b5501ce..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/background-image-none-gradient-repaint.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[background-image-none-gradient-repaint.html] - bug: https://github.com/servo/servo/issues/8984 - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/border-radius-dynamic-from-no-radius.html.ini b/tests/wpt/metadata/css/css-backgrounds/border-radius-dynamic-from-no-radius.html.ini deleted file mode 100644 index fc8f7177549..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/border-radius-dynamic-from-no-radius.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[border-radius-dynamic-from-no-radius.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/child-move-reveals-parent-background.html.ini b/tests/wpt/metadata/css/css-backgrounds/child-move-reveals-parent-background.html.ini deleted file mode 100644 index 96193b9a323..00000000000 --- a/tests/wpt/metadata/css/css-backgrounds/child-move-reveals-parent-background.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[child-move-reveals-parent-background.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-backgrounds/inheritance.sub.html.ini b/tests/wpt/metadata/css/css-backgrounds/inheritance.sub.html.ini index a22655943a0..06216373de1 100644 --- a/tests/wpt/metadata/css/css-backgrounds/inheritance.sub.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/inheritance.sub.html.ini @@ -1,5 +1,21 @@ [inheritance.sub.html] - expected: ERROR [Inheritance of CSS Backgrounds and Borders properties] expected: FAIL + [Property background-position has initial value 0% 0%] + expected: FAIL + + [Property background-position does not inherit] + expected: FAIL + + [Property border-bottom-width has initial value undefined] + expected: FAIL + + [Property border-left-width has initial value undefined] + expected: FAIL + + [Property border-right-width has initial value undefined] + expected: FAIL + + [Property border-top-width has initial value undefined] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-backgrounds/local-attachment-content-box-scroll.html.ini b/tests/wpt/metadata/css/css-backgrounds/local-attachment-content-box-scroll.html.ini index 960c6448f86..d692f709742 100644 --- a/tests/wpt/metadata/css/css-backgrounds/local-attachment-content-box-scroll.html.ini +++ b/tests/wpt/metadata/css/css-backgrounds/local-attachment-content-box-scroll.html.ini @@ -1,2 +1,2 @@ [local-attachment-content-box-scroll.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-color/canvas-change-opacity.html.ini b/tests/wpt/metadata/css/css-color/canvas-change-opacity.html.ini index 1351702c8fe..b79b0b91889 100644 --- a/tests/wpt/metadata/css/css-color/canvas-change-opacity.html.ini +++ b/tests/wpt/metadata/css/css-color/canvas-change-opacity.html.ini @@ -1,2 +1,2 @@ [canvas-change-opacity.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-color/color-initial-canvastext.html.ini b/tests/wpt/metadata/css/css-color/color-initial-canvastext.html.ini deleted file mode 100644 index 1ab1e809e50..00000000000 --- a/tests/wpt/metadata/css/css-color/color-initial-canvastext.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[color-initial-canvastext.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/css-color/filters-under-will-change-opacity.html.ini b/tests/wpt/metadata/css/css-color/filters-under-will-change-opacity.html.ini deleted file mode 100644 index 29881b53c4b..00000000000 --- a/tests/wpt/metadata/css/css-color/filters-under-will-change-opacity.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[filters-under-will-change-opacity.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-001.html.ini b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-001.html.ini deleted file mode 100644 index b22638a8537..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[anonymous-flex-item-001.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-003.html.ini b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-003.html.ini deleted file mode 100644 index 331eec32683..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[anonymous-flex-item-003.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-005.html.ini b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-005.html.ini new file mode 100644 index 00000000000..f5db1aa1610 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-005.html.ini @@ -0,0 +1,2 @@ +[anonymous-flex-item-005.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-006.html.ini b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-006.html.ini new file mode 100644 index 00000000000..5865ea15bc8 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/anonymous-flex-item-006.html.ini @@ -0,0 +1,2 @@ +[anonymous-flex-item-006.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/dynamic-bsize-change.html.ini b/tests/wpt/metadata/css/css-flexbox/dynamic-bsize-change.html.ini deleted file mode 100644 index dc8b13ba93d..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/dynamic-bsize-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[dynamic-bsize-change.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-010.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-010.html.ini index ad948146e74..cba19de7ad2 100644 --- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-010.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-column-010.html.ini @@ -1,2 +1,2 @@ [flex-aspect-ratio-img-column-010.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-004.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-004.html.ini index b0fbc095ed5..cc57c8329ea 100644 --- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-004.html.ini +++ b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-004.html.ini @@ -1,2 +1,2 @@ [flex-aspect-ratio-img-row-004.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-016.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-016.html.ini deleted file mode 100644 index 6ecbc192094..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/flex-aspect-ratio-img-row-016.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flex-aspect-ratio-img-row-016.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/crash-large-grapheme-cluster.html.ini b/tests/wpt/metadata/css/css-fonts/crash-large-grapheme-cluster.html.ini index ff27bc4b5ba..2eabe8aca0f 100644 --- a/tests/wpt/metadata/css/css-fonts/crash-large-grapheme-cluster.html.ini +++ b/tests/wpt/metadata/css/css-fonts/crash-large-grapheme-cluster.html.ini @@ -1,3 +1,4 @@ [crash-large-grapheme-cluster.html] + expected: CRASH [Should not crash when there is an exceedingly large grapheme cluster] expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/font-size-monospace-adjust.html.ini b/tests/wpt/metadata/css/css-fonts/font-size-monospace-adjust.html.ini new file mode 100644 index 00000000000..700d382f080 --- /dev/null +++ b/tests/wpt/metadata/css/css-fonts/font-size-monospace-adjust.html.ini @@ -0,0 +1,2 @@ +[font-size-monospace-adjust.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-format.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-format.html.ini index b80ce93bea2..79ca5aba421 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-format.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-format.html.ini @@ -1,2 +1,105 @@ [font-face-src-format.html] - expected: ERROR + [Check that src: url("foo.ttf") is valid] + expected: FAIL + + [Check that src: url("foo.ttf"), url("bar.ttf") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format() is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") dummy() is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format("woff") dummy() is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") dummy() format("woff") is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format("collection") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("opentype") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("truetype") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("woff") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("woff2") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("opentype", "truetype") is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(collection) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(opentype) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(truetype) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(woff) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(woff2) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(opentype, truetype) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(opentype truetype) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(auto) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(default) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(inherit) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(initial) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(none) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(normal) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(xyzzy) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format("embedded-opentype"), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(embedded-opentype), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format("svg"), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(svg), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(xyzz 200px), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(xyzz), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") dummy(xyzzy), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") format(none), url("bar.html") is valid] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-list.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-list.html.ini index 4cd7f216588..5d06b7fe69e 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-list.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-list.html.ini @@ -1,2 +1,45 @@ [font-face-src-list.html] - expected: ERROR + [Check that src: local(inherit), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: local("myfont"), local(unset) is valid] + expected: FAIL + + [Check that src: local(), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: local(12px monospace), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: local("myfont") format(opentype), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: url(not a valid url/bar.ttf), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: url(foo.ttf) format(bad), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: url(foo.ttf) tech(unknown), url(foo.ttf) is valid] + expected: FAIL + + [Check that src: url(foo.ttf), url(something.ttf) format(broken) is valid] + expected: FAIL + + [Check that src: /* an empty component */, url(foo.ttf) is valid] + expected: FAIL + + [Check that src: local(""), url(foo.ttf), unparseable-garbage, local("another font name") is valid] + expected: FAIL + + [Check that src: local(), local(initial) is invalid] + expected: FAIL + + [Check that src: local("textfont") format(opentype), local("emoji") tech(color-COLRv0) is invalid] + expected: FAIL + + [Check that src: local(), /*empty*/, url(should be quoted.ttf), junk is invalid] + expected: FAIL + + [Check that src: url(foo.ttf) format(unknown), url(bar.ttf) tech(broken) is invalid] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-local.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-local.html.ini index 3ae9067e630..aba920eefed 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-local.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-local.html.ini @@ -1,2 +1,54 @@ [font-face-src-local.html] - expected: ERROR + [Check that src: local(A) dummy() is invalid] + expected: FAIL + + [Check that src: dummy() local(A) is invalid] + expected: FAIL + + [Check that src: local( A ) is valid] + expected: FAIL + + [Check that src: local(A B) is valid] + expected: FAIL + + [Check that src: local(A B) is valid] + expected: FAIL + + [Check that src: local( A B ) is valid] + expected: FAIL + + [Check that src: local(default) is invalid] + expected: FAIL + + [Check that src: local(inherit) is invalid] + expected: FAIL + + [Check that src: local(revert) is invalid] + expected: FAIL + + [Check that src: local(unset) is invalid] + expected: FAIL + + [Check that src: local(default A) is valid] + expected: FAIL + + [Check that src: local(inherit A) is valid] + expected: FAIL + + [Check that src: local(revert A) is valid] + expected: FAIL + + [Check that src: local(unset A) is valid] + expected: FAIL + + [Check that src: local("default") is valid] + expected: FAIL + + [Check that src: local("inherit") is valid] + expected: FAIL + + [Check that src: local("revert") is valid] + expected: FAIL + + [Check that src: local("unset") is valid] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-tech.html.ini b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-tech.html.ini index a900d2b5ba9..8f0bb9f3aab 100644 --- a/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-tech.html.ini +++ b/tests/wpt/metadata/css/css-fonts/parsing/font-face-src-tech.html.ini @@ -1,2 +1,111 @@ [font-face-src-tech.html] - expected: ERROR + [Check that src: url("foo.ttf") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech() is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-opentype) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-aat) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-COLRv0) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-COLRv1) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-sbix) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-CBDT) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(variations) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(palettes) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech("features-opentype") is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech("color-COLRv0") is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech("variations") is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-opentype, color-COLRv0, variations, palettes) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-opentype color-COLRv0 variations palettes) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(feature-opentype) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(feature-aat) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(feature-graphite) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(auto) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(default) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(inherit) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(initial) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(none) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(normal) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(xyzzy) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(opentype) tech(features-opentype) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-opentype) format(opentype) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(incremental), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(incremental, color-SVG, features-graphite, features-aat), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-SVG, features-graphite), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color-SVG), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-graphite), url("bar.html") is valid] + expected: FAIL + + [Check that src: url("foo.ttf") dummy("opentype") tech(variations) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") dummy("opentype") dummy(variations) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(opentype) tech(features-opentype) dummy(something) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") format(dummy), url("foo.ttf") tech(variations) is valid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(color), url("bar.html") is valid] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-color-recalc-002.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-color-recalc-002.html.ini deleted file mode 100644 index af308b9f627..00000000000 --- a/tests/wpt/metadata/css/css-text-decor/text-decoration-color-recalc-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-decoration-color-recalc-002.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html.ini deleted file mode 100644 index 56844256a12..00000000000 --- a/tests/wpt/metadata/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-decoration-line-grammar-error-color-dynamic-001.optional.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-line-recalc.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-line-recalc.html.ini new file mode 100644 index 00000000000..987400524bd --- /dev/null +++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-line-recalc.html.ini @@ -0,0 +1,2 @@ +[text-decoration-line-recalc.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html.ini deleted file mode 100644 index eeca8a65a16..00000000000 --- a/tests/wpt/metadata/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-decoration-line-spelling-error-color-dynamic-001.optional.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-text/text-indent/percentage-value-intrinsic-size.html.ini b/tests/wpt/metadata/css/css-text/text-indent/percentage-value-intrinsic-size.html.ini deleted file mode 100644 index 7e9b2037766..00000000000 --- a/tests/wpt/metadata/css/css-text/text-indent/percentage-value-intrinsic-size.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[percentage-value-intrinsic-size.html] - expected: ERROR - [percentage-value-intrinsic-size] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-text/white-space/display-contents-remove-whitespace-change.html.ini b/tests/wpt/metadata/css/css-text/white-space/display-contents-remove-whitespace-change.html.ini deleted file mode 100644 index f30d2a7266c..00000000000 --- a/tests/wpt/metadata/css/css-text/white-space/display-contents-remove-whitespace-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[display-contents-remove-whitespace-change.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/trailing-space-before-br-001.html.ini b/tests/wpt/metadata/css/css-text/white-space/trailing-space-before-br-001.html.ini index 0809c2d559a..d24d6f0fec5 100644 --- a/tests/wpt/metadata/css/css-text/white-space/trailing-space-before-br-001.html.ini +++ b/tests/wpt/metadata/css/css-text/white-space/trailing-space-before-br-001.html.ini @@ -1,5 +1,9 @@ [trailing-space-before-br-001.html] - expected: ERROR [CSS Text: A sequence of collapsible spaces at the end of a line is removed] expected: FAIL + [1111
] + expected: FAIL + + [1111
] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/white-space/white-space-empty-text-sibling.html.ini b/tests/wpt/metadata/css/css-text/white-space/white-space-empty-text-sibling.html.ini deleted file mode 100644 index 2800266d857..00000000000 --- a/tests/wpt/metadata/css/css-text/white-space/white-space-empty-text-sibling.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[white-space-empty-text-sibling.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/3d-rendering-context-behavior.html.ini b/tests/wpt/metadata/css/css-transforms/3d-rendering-context-behavior.html.ini index 96ae78354ea..8bc8338d202 100644 --- a/tests/wpt/metadata/css/css-transforms/3d-rendering-context-behavior.html.ini +++ b/tests/wpt/metadata/css/css-transforms/3d-rendering-context-behavior.html.ini @@ -1,13 +1,4 @@ [3d-rendering-context-behavior.html] - [Direct DOM parent is root of rendering context (normal flow)] - expected: FAIL - - [Direct DOM parent is root of rendering context (absolute)] - expected: FAIL - - [Direct DOM parent is root of rendering context (fixed)] - expected: FAIL - [Intermediate DOM nodes cause rendering context to end (normal flow)] expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/change-perspective-property.html.ini b/tests/wpt/metadata/css/css-transforms/change-perspective-property.html.ini deleted file mode 100644 index 5e51e2b14d1..00000000000 --- a/tests/wpt/metadata/css/css-transforms/change-perspective-property.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[change-perspective-property.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/change-scale-wide-range.html.ini b/tests/wpt/metadata/css/css-transforms/change-scale-wide-range.html.ini deleted file mode 100644 index 48a4ed0c771..00000000000 --- a/tests/wpt/metadata/css/css-transforms/change-scale-wide-range.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[change-scale-wide-range.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/change-transform-origin-property.html.ini b/tests/wpt/metadata/css/css-transforms/change-transform-origin-property.html.ini deleted file mode 100644 index 9fbd488decc..00000000000 --- a/tests/wpt/metadata/css/css-transforms/change-transform-origin-property.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[change-transform-origin-property.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/dynamic-fixed-pos-cb-change.html.ini b/tests/wpt/metadata/css/css-transforms/dynamic-fixed-pos-cb-change.html.ini deleted file mode 100644 index 63a28dba4cf..00000000000 --- a/tests/wpt/metadata/css/css-transforms/dynamic-fixed-pos-cb-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[dynamic-fixed-pos-cb-change.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/individual-transform/change-rotate-property.html.ini b/tests/wpt/metadata/css/css-transforms/individual-transform/change-rotate-property.html.ini deleted file mode 100644 index b9c482eef63..00000000000 --- a/tests/wpt/metadata/css/css-transforms/individual-transform/change-rotate-property.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[change-rotate-property.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/individual-transform/change-scale-property.html.ini b/tests/wpt/metadata/css/css-transforms/individual-transform/change-scale-property.html.ini deleted file mode 100644 index 78bda8b5caa..00000000000 --- a/tests/wpt/metadata/css/css-transforms/individual-transform/change-scale-property.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[change-scale-property.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/individual-transform/change-translate-property.html.ini b/tests/wpt/metadata/css/css-transforms/individual-transform/change-translate-property.html.ini index 1fff7849a71..f0c9923d7ec 100644 --- a/tests/wpt/metadata/css/css-transforms/individual-transform/change-translate-property.html.ini +++ b/tests/wpt/metadata/css/css-transforms/individual-transform/change-translate-property.html.ini @@ -1,2 +1,2 @@ [change-translate-property.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/paint-order-with-transform-change.html.ini b/tests/wpt/metadata/css/css-transforms/paint-order-with-transform-change.html.ini deleted file mode 100644 index 5f765b6bc21..00000000000 --- a/tests/wpt/metadata/css/css-transforms/paint-order-with-transform-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[paint-order-with-transform-change.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/preserve-3d-flat-grouping-properties.html.ini b/tests/wpt/metadata/css/css-transforms/preserve-3d-flat-grouping-properties.html.ini index 9a64545af67..ccb021392e0 100644 --- a/tests/wpt/metadata/css/css-transforms/preserve-3d-flat-grouping-properties.html.ini +++ b/tests/wpt/metadata/css/css-transforms/preserve-3d-flat-grouping-properties.html.ini @@ -1,2 +1,24 @@ [preserve-3d-flat-grouping-properties.html] - expected: ERROR + [Preserve-3d element flattened due to opacity] + expected: FAIL + + [Preserve-3d element flattened due to overflow clip] + expected: FAIL + + [Preserve-3d element flattened due to filter] + expected: FAIL + + [Preserve-3d element flattened due to backdrop-filter] + expected: FAIL + + [Preserve-3d element flattened due to clip CSS] + expected: FAIL + + [Preserve-3d element flattened due to clip-path] + expected: FAIL + + [Preserve-3d element flattened due to isolation] + expected: FAIL + + [Preserve-3d element flattened due to mask] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/size-change-under-backface-visibility-hidden.html.ini b/tests/wpt/metadata/css/css-transforms/size-change-under-backface-visibility-hidden.html.ini deleted file mode 100644 index 743ae46524d..00000000000 --- a/tests/wpt/metadata/css/css-transforms/size-change-under-backface-visibility-hidden.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[size-change-under-backface-visibility-hidden.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-001.html.ini b/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-001.html.ini deleted file mode 100644 index 2e8dcfc89a8..00000000000 --- a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[subpixel-transform-changes-001.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-002.html.ini b/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-002.html.ini deleted file mode 100644 index 13987e51a4f..00000000000 --- a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[subpixel-transform-changes-002.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-003.html.ini b/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-003.html.ini deleted file mode 100644 index f9bfdc9711e..00000000000 --- a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-003.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[subpixel-transform-changes-003.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-004.html.ini b/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-004.html.ini deleted file mode 100644 index e169c08be32..00000000000 --- a/tests/wpt/metadata/css/css-transforms/subpixel-transform-changes-004.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[subpixel-transform-changes-004.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-transforms/transforms-support-calc.html.ini b/tests/wpt/metadata/css/css-transforms/transforms-support-calc.html.ini index cec2ec7073d..cf5eda765b2 100644 --- a/tests/wpt/metadata/css/css-transforms/transforms-support-calc.html.ini +++ b/tests/wpt/metadata/css/css-transforms/transforms-support-calc.html.ini @@ -1,16 +1,4 @@ [transforms-support-calc.html] - [translate supports calc] - expected: FAIL - - [rotate supports calc] - expected: FAIL - - [scale supports calc] - expected: FAIL - - [perspective supports calc] - expected: FAIL - [perspective-origin supports calc] expected: FAIL @@ -19,4 +7,3 @@ [transform-origin supports calc] expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/inherit-height-transition.html.ini b/tests/wpt/metadata/css/css-transitions/inherit-height-transition.html.ini deleted file mode 100644 index 95f199e425c..00000000000 --- a/tests/wpt/metadata/css/css-transitions/inherit-height-transition.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[inherit-height-transition.html] - [Transitioned height, explicitly inherited down two DOM levels, should inherit correctly] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/transition-base-response-001.html.ini b/tests/wpt/metadata/css/css-transitions/transition-base-response-001.html.ini deleted file mode 100644 index 6b0040fb974..00000000000 --- a/tests/wpt/metadata/css/css-transitions/transition-base-response-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transition-base-response-001.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/css-transitions/transition-base-response-002.html.ini b/tests/wpt/metadata/css/css-transitions/transition-base-response-002.html.ini deleted file mode 100644 index 102b770e503..00000000000 --- a/tests/wpt/metadata/css/css-transitions/transition-base-response-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[transition-base-response-002.html] - [Transitioning font-size on root affects rem units] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/transition-reparented.html.ini b/tests/wpt/metadata/css/css-transitions/transition-reparented.html.ini deleted file mode 100644 index b2d796167e0..00000000000 --- a/tests/wpt/metadata/css/css-transitions/transition-reparented.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[transition-reparented.html] - [When an element is reparented, any CSS Transition on it should be cancelled] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-ui/appearance-auto-non-html-namespace-001.html.ini b/tests/wpt/metadata/css/css-ui/appearance-auto-non-html-namespace-001.html.ini new file mode 100644 index 00000000000..623f6298b59 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/appearance-auto-non-html-namespace-001.html.ini @@ -0,0 +1,2 @@ +[appearance-auto-non-html-namespace-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/historical/moz-user-modify-01.html.ini b/tests/wpt/metadata/css/css-ui/historical/moz-user-modify-01.html.ini deleted file mode 100644 index 4eabf2a5cb6..00000000000 --- a/tests/wpt/metadata/css/css-ui/historical/moz-user-modify-01.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[moz-user-modify-01.html] - [-moz-user-modify is not supported] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/historical/user-modify-01.html.ini b/tests/wpt/metadata/css/css-ui/historical/user-modify-01.html.ini deleted file mode 100644 index f0cc807c112..00000000000 --- a/tests/wpt/metadata/css/css-ui/historical/user-modify-01.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[user-modify-01.html] - [user-modify is not supported] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/historical/webkit-user-modify-01.html.ini b/tests/wpt/metadata/css/css-ui/historical/webkit-user-modify-01.html.ini deleted file mode 100644 index 7848c00a393..00000000000 --- a/tests/wpt/metadata/css/css-ui/historical/webkit-user-modify-01.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[webkit-user-modify-01.html] - [-webkit-user-modify is not supported] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/inheritance.html.ini b/tests/wpt/metadata/css/css-ui/inheritance.html.ini index 2acff700c53..9b75e407ec7 100644 --- a/tests/wpt/metadata/css/css-ui/inheritance.html.ini +++ b/tests/wpt/metadata/css/css-ui/inheritance.html.ini @@ -1,5 +1,57 @@ [inheritance.html] - expected: ERROR [Inheritance of CSS Basic User Interface properties] expected: FAIL + [Property appearance has initial value none] + expected: FAIL + + [Property appearance does not inherit] + expected: FAIL + + [Property caret-color has initial value rgb(0, 255, 0)] + expected: FAIL + + [Property caret-color inherits] + expected: FAIL + + [Property caret-shape has initial value auto] + expected: FAIL + + [Property caret-shape inherits] + expected: FAIL + + [Property nav-down has initial value auto] + expected: FAIL + + [Property nav-down does not inherit] + expected: FAIL + + [Property nav-left has initial value auto] + expected: FAIL + + [Property nav-left does not inherit] + expected: FAIL + + [Property nav-right has initial value auto] + expected: FAIL + + [Property nav-right does not inherit] + expected: FAIL + + [Property nav-up has initial value auto] + expected: FAIL + + [Property nav-up does not inherit] + expected: FAIL + + [Property resize has initial value none] + expected: FAIL + + [Property resize does not inherit] + expected: FAIL + + [Property user-select has initial value auto] + expected: FAIL + + [Property user-select does not inherit] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/parsing/outline-width-computed.html.ini b/tests/wpt/metadata/css/css-ui/parsing/outline-width-computed.html.ini index 83c3b7afbe3..d1f9bf5cdc9 100644 --- a/tests/wpt/metadata/css/css-ui/parsing/outline-width-computed.html.ini +++ b/tests/wpt/metadata/css/css-ui/parsing/outline-width-computed.html.ini @@ -1,4 +1,3 @@ [outline-width-computed.html] - expected: ERROR [Property outline-width value '2.5px'] expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/resize-change-margin.html.ini b/tests/wpt/metadata/css/css-ui/resize-change-margin.html.ini deleted file mode 100644 index 65dbf895460..00000000000 --- a/tests/wpt/metadata/css/css-ui/resize-change-margin.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[resize-change-margin.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-ui/text-overflow-change-color.html.ini b/tests/wpt/metadata/css/css-ui/text-overflow-change-color.html.ini deleted file mode 100644 index 5f89cf29316..00000000000 --- a/tests/wpt/metadata/css/css-ui/text-overflow-change-color.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[text-overflow-change-color.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-width-001.html.ini b/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-width-001.html.ini deleted file mode 100644 index 64f9cfb890d..00000000000 --- a/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-width-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[text-overflow-ellipsis-width-001.html] - [Ellipsizing should not affect `offsetWidth` of inline boxes.] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-values/animations/line-height-lh-transition.html.ini b/tests/wpt/metadata/css/css-values/animations/line-height-lh-transition.html.ini deleted file mode 100644 index 05d3c78b460..00000000000 --- a/tests/wpt/metadata/css/css-values/animations/line-height-lh-transition.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[line-height-lh-transition.html] - [lh unit length should change with transitioning line-height] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/calc-nesting.html.ini b/tests/wpt/metadata/css/css-values/calc-nesting.html.ini deleted file mode 100644 index d2f1d249ed7..00000000000 --- a/tests/wpt/metadata/css/css-values/calc-nesting.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[calc-nesting.html] - [Nested calcs should work with layout] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-values/lh-unit-003.html.ini b/tests/wpt/metadata/css/css-values/lh-unit-003.html.ini index 3f0d37518f1..706c88f2f98 100644 --- a/tests/wpt/metadata/css/css-values/lh-unit-003.html.ini +++ b/tests/wpt/metadata/css/css-values/lh-unit-003.html.ini @@ -1,4 +1,6 @@ [lh-unit-003.html] - expected: ERROR [Line-height and lh before @font-face loads] expected: FAIL + + [Line-height and lh after @font-face loaded] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini b/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini deleted file mode 100644 index 948ce05488b..00000000000 --- a/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[update-subpixel-rem-unit.html] - [Check that a 0.1px change in root font-size affect rem units.] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-values/viewport-units-compute.html.ini b/tests/wpt/metadata/css/css-values/viewport-units-compute.html.ini index 3adee544e3e..06a82c1aaba 100644 --- a/tests/wpt/metadata/css/css-values/viewport-units-compute.html.ini +++ b/tests/wpt/metadata/css/css-values/viewport-units-compute.html.ini @@ -1,2 +1,90 @@ [viewport-units-compute.html] - expected: ERROR + [100vi computes to 200px] + expected: FAIL + + [100svw computes to 200px] + expected: FAIL + + [100svi computes to 200px] + expected: FAIL + + [100svmax computes to 200px] + expected: FAIL + + [100lvw computes to 200px] + expected: FAIL + + [100lvi computes to 200px] + expected: FAIL + + [100lvmax computes to 200px] + expected: FAIL + + [100dvw computes to 200px] + expected: FAIL + + [100dvi computes to 200px] + expected: FAIL + + [100dvmax computes to 200px] + expected: FAIL + + [100vb computes to 100px] + expected: FAIL + + [100svh computes to 100px] + expected: FAIL + + [100svb computes to 100px] + expected: FAIL + + [100svmin computes to 100px] + expected: FAIL + + [100lvh computes to 100px] + expected: FAIL + + [100lvb computes to 100px] + expected: FAIL + + [100lvmin computes to 100px] + expected: FAIL + + [100dvh computes to 100px] + expected: FAIL + + [100dvb computes to 100px] + expected: FAIL + + [100dvmin computes to 100px] + expected: FAIL + + [1dvw computes to 2px] + expected: FAIL + + [10dvw computes to 20px] + expected: FAIL + + [1dvh computes to 1px] + expected: FAIL + + [10dvh computes to 10px] + expected: FAIL + + [calc(1dvw + 1dvw) computes to 4px] + expected: FAIL + + [calc(1dvw + 1dvh) computes to 3px] + expected: FAIL + + [calc(1dvw + 100px) computes to 102px] + expected: FAIL + + [max(1svw, 1svh) computes to 2px] + expected: FAIL + + [min(1lvw, 1lvh) computes to 1px] + expected: FAIL + + [calc(1dvw + 10%) computes to 12px] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/viewport-units-keyframes.html.ini b/tests/wpt/metadata/css/css-values/viewport-units-keyframes.html.ini index 9d0a2c91cf8..804ae41be0b 100644 --- a/tests/wpt/metadata/css/css-values/viewport-units-keyframes.html.ini +++ b/tests/wpt/metadata/css/css-values/viewport-units-keyframes.html.ini @@ -1,2 +1,60 @@ [viewport-units-keyframes.html] - expected: ERROR + [Interpolation from 0px to 100vi is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svw is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svi is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svmax is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvw is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvi is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvmax is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvw is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvi is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvmax is 100px at 50%] + expected: FAIL + + [Interpolation from 0px to 100vb is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svh is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svb is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100svmin is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvh is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvb is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100lvmin is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvh is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvb is 50px at 50%] + expected: FAIL + + [Interpolation from 0px to 100dvmin is 50px at 50%] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/viewport-units-media-queries.html.ini b/tests/wpt/metadata/css/css-values/viewport-units-media-queries.html.ini index f0cc77e6372..3ab74d58d8e 100644 --- a/tests/wpt/metadata/css/css-values/viewport-units-media-queries.html.ini +++ b/tests/wpt/metadata/css/css-values/viewport-units-media-queries.html.ini @@ -1,2 +1,66 @@ [viewport-units-media-queries.html] - expected: ERROR + [@media(width:100vi) applies] + expected: FAIL + + [@media(width:100svw) applies] + expected: FAIL + + [@media(width:100svi) applies] + expected: FAIL + + [@media(width:100svmax) applies] + expected: FAIL + + [@media(width:100lvw) applies] + expected: FAIL + + [@media(width:100lvi) applies] + expected: FAIL + + [@media(width:100lvmax) applies] + expected: FAIL + + [@media(width:100dvw) applies] + expected: FAIL + + [@media(width:100dvi) applies] + expected: FAIL + + [@media(width:100dvmax) applies] + expected: FAIL + + [@media(height:100vh) applies] + expected: FAIL + + [@media(height:100vb) applies] + expected: FAIL + + [@media(height:100vmin) applies] + expected: FAIL + + [@media(height:100svh) applies] + expected: FAIL + + [@media(height:100svb) applies] + expected: FAIL + + [@media(height:100svmin) applies] + expected: FAIL + + [@media(height:100lvh) applies] + expected: FAIL + + [@media(height:100lvb) applies] + expected: FAIL + + [@media(height:100lvmin) applies] + expected: FAIL + + [@media(height:100dvh) applies] + expected: FAIL + + [@media(height:100dvb) applies] + expected: FAIL + + [@media(height:100dvmin) applies] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/viewport-units-modify.html.ini b/tests/wpt/metadata/css/css-values/viewport-units-modify.html.ini deleted file mode 100644 index 1a8248cd94b..00000000000 --- a/tests/wpt/metadata/css/css-values/viewport-units-modify.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[viewport-units-modify.html] - [Crash when going from non-viewport to viewport units] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-values/viewport-units-writing-mode.html.ini b/tests/wpt/metadata/css/css-values/viewport-units-writing-mode.html.ini index 25b5a143709..98e9eebad3a 100644 --- a/tests/wpt/metadata/css/css-values/viewport-units-writing-mode.html.ini +++ b/tests/wpt/metadata/css/css-values/viewport-units-writing-mode.html.ini @@ -1,2 +1,24 @@ [viewport-units-writing-mode.html] - expected: ERROR + [100vi computes to 100px with vertical writing-mode] + expected: FAIL + + [100svi computes to 100px with vertical writing-mode] + expected: FAIL + + [100lvi computes to 100px with vertical writing-mode] + expected: FAIL + + [100dvi computes to 100px with vertical writing-mode] + expected: FAIL + + [100vb computes to 200px with vertical writing-mode] + expected: FAIL + + [100svb computes to 200px with vertical writing-mode] + expected: FAIL + + [100lvb computes to 200px with vertical writing-mode] + expected: FAIL + + [100dvb computes to 200px with vertical writing-mode] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-variables/css-variable-change-style-001.html.ini b/tests/wpt/metadata/css/css-variables/css-variable-change-style-001.html.ini deleted file mode 100644 index 443089ea5e2..00000000000 --- a/tests/wpt/metadata/css/css-variables/css-variable-change-style-001.html.ini +++ /dev/null @@ -1,28 +0,0 @@ -[css-variable-change-style-001.html] - [Test changing 'color' value to become a css variable] - expected: FAIL - - [Test declaration changes on 'color' as variable] - expected: FAIL - - [Avoid masking differences on 'color' due to declaration changes] - expected: FAIL - - [Test declaration changes on 'white-space' as variable] - expected: FAIL - - [Test declaration changes on 'background-color' as variable] - expected: FAIL - - [Test changing 'white-space' value to become a css variable] - expected: FAIL - - [Test changing 'background-color' value to become a css variable] - expected: FAIL - - [Avoid masking differences on 'background-color' due to declaration changes] - expected: FAIL - - [Avoid masking differences on 'white-space' due to declaration changes] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-variables/css-variable-change-style-002.html.ini b/tests/wpt/metadata/css/css-variables/css-variable-change-style-002.html.ini deleted file mode 100644 index 5781474a926..00000000000 --- a/tests/wpt/metadata/css/css-variables/css-variable-change-style-002.html.ini +++ /dev/null @@ -1,10 +0,0 @@ -[css-variable-change-style-002.html] - [Declaration changes on 'color' propagate to all variable references] - expected: FAIL - - [Declaration changes on 'background-color' propagate to all variable references] - expected: FAIL - - [Declaration changes on 'white-space' propagate to all variable references] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-variables/variable-cycles.html.ini b/tests/wpt/metadata/css/css-variables/variable-cycles.html.ini deleted file mode 100644 index 0cfacb1028b..00000000000 --- a/tests/wpt/metadata/css/css-variables/variable-cycles.html.ini +++ /dev/null @@ -1,33 +0,0 @@ -[variable-cycles.html] - [Self-cycle] - expected: FAIL - - [Simple a/b cycle] - expected: FAIL - - [Three-var cycle] - expected: FAIL - - [Cycle that starts in the middle of a chain] - expected: FAIL - - [Cycle with extra edge] - expected: FAIL - - [Cycle with extra edge (2)] - expected: FAIL - - [Cycle with extra edge (3)] - expected: FAIL - - [Cycle with secondary cycle] - expected: FAIL - - [Cycle with overlapping secondary cycle] - expected: FAIL - - [Cycle with deeper secondary cycle] - expected: FAIL - - [Cycle via fallback] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-variables/variables-substitute-guaranteed-invalid.html.ini b/tests/wpt/metadata/css/css-variables/variables-substitute-guaranteed-invalid.html.ini deleted file mode 100644 index bb401d84139..00000000000 --- a/tests/wpt/metadata/css/css-variables/variables-substitute-guaranteed-invalid.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[variables-substitute-guaranteed-invalid.html] - [Custom properties in a cycle are guaranteed-invalid] - expected: FAIL - - [A custom property referencing a cycle is treated as unset] - expected: FAIL - - [A custom property referencing a non-existent variable is treated as unset] - expected: FAIL - - [Custom properties in a cycle become guaranteed-invalid] - expected: FAIL - - [A custom property referencing a cycle becomes guaranteed-invalid] - expected: FAIL - - [A custom property referencing a non-existent variable becomes guaranteed-invalid] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html.ini b/tests/wpt/metadata/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html.ini deleted file mode 100644 index a2796f56cbd..00000000000 --- a/tests/wpt/metadata/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[HTMLImageElement-x-and-y-ignore-transforms.html] - [HTMLImageElement's 'x' and 'y' property values ignore transforms] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/background-change-during-smooth-scroll.html.ini b/tests/wpt/metadata/css/cssom-view/background-change-during-smooth-scroll.html.ini index b2e32b4e2dd..ea00ae5f7e3 100644 --- a/tests/wpt/metadata/css/cssom-view/background-change-during-smooth-scroll.html.ini +++ b/tests/wpt/metadata/css/cssom-view/background-change-during-smooth-scroll.html.ini @@ -1,5 +1,4 @@ [background-change-during-smooth-scroll.html] - expected: ERROR + expected: TIMEOUT [background change during smooth scroll] expected: NOTRUN - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-simple.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-simple.html.ini deleted file mode 100644 index e5aa4da361a..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-simple.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[elementsFromPoint-simple.html] - [elementsFromPoint for each corner of a simple div] - expected: FAIL - - [elementsFromPoint for each corner of a div that has a pseudo-element] - expected: FAIL - - [elementsFromPoint for each corner of a div that is between another div and its pseudo-element] - expected: FAIL - - [elementsFromPoint for each corner of a div that has a margin] - expected: FAIL - - [elementsFromPoint for each corner of a div with pointer-events:none] - expected: FAIL - - [elementsFromPoint for each corner of a div with a 3d transform] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-table.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-table.html.ini index c5205b9a4e1..58c506c526e 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-table.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-table.html.ini @@ -1,8 +1,9 @@ [elementsFromPoint-table.html] - expected: ERROR [elementsFromPoint for points inside table cells] expected: FAIL - [elementsFromPoint for points between table cells] + [elementsFromPoint for points inside cells in a right-to-left table] expected: FAIL + [elementsFromPoint for points inside cells in a flipped (writing-mode:vertical-lr) table] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/pt-to-px-width.html.ini b/tests/wpt/metadata/css/cssom-view/pt-to-px-width.html.ini deleted file mode 100644 index 51da590088f..00000000000 --- a/tests/wpt/metadata/css/cssom-view/pt-to-px-width.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pt-to-px-width.html] - [10pt converted to offset/client/scroll width] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-back-to-initial-position.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-back-to-initial-position.html.ini deleted file mode 100644 index 144fa4020bc..00000000000 --- a/tests/wpt/metadata/css/cssom-view/scroll-back-to-initial-position.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[scroll-back-to-initial-position.html] - [Element should scroll back to initial position with smooth behavior] - expected: FAIL - - [Element should scroll back to initial position with auto behavior] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-default-css.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-default-css.html.ini index d7c4db59af4..6885818c71a 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-default-css.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-default-css.html.ini @@ -1,5 +1,9 @@ [scroll-behavior-default-css.html] - expected: ERROR [Testing default value of scroll-behavior] expected: FAIL + [Instant scrolling of an element with default scroll-behavior] + expected: FAIL + + [Smooth scrolling of an element with default scroll-behavior] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-element.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-element.html.ini index 8b4fc5d7182..5d579f4716f 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-element.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-element.html.ini @@ -1,5 +1,114 @@ [scroll-behavior-element.html] - expected: ERROR [Testing scrollOptions' behavior for Element.scroll* and scroll-behavior on an element] expected: FAIL + [Element with auto scroll-behavior ; scroll() with default behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scroll() with default behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Element with auto scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Element with smooth scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Set scrollLeft to element with auto scroll-behavior] + expected: FAIL + + [Set scrollLeft to element with smooth scroll-behavior] + expected: FAIL + + [Set scrollTop to element with auto scroll-behavior] + expected: FAIL + + [Set scrollTop to element with smooth scroll-behavior] + expected: FAIL + + [Aborting an ongoing smooth scrolling on an element with another smooth scrolling] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-root.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-root.html.ini index 3b5eabacdb3..782ade6c1b0 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-root.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-root.html.ini @@ -1,4 +1,114 @@ [scroll-behavior-main-frame-root.html] - [Page loaded] + [Main frame with auto scroll-behavior ; scroll() with default behavior] expected: FAIL + [Main frame with auto scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Set scrollLeft to frame with auto scroll-behavior] + expected: FAIL + + [Set scrollLeft to frame with smooth scroll-behavior] + expected: FAIL + + [Set scrollTop to frame with auto scroll-behavior] + expected: FAIL + + [Set scrollTop to frame with smooth scroll-behavior] + expected: FAIL + + [Aborting an ongoing smooth scrolling on the main frame with another smooth scrolling] + expected: FAIL + + [Aborting an ongoing smooth scrolling on the main frame with an instant scrolling] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-window.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-window.html.ini index eff693d13c7..d6929eec58d 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-window.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-main-frame-window.html.ini @@ -1,4 +1,78 @@ [scroll-behavior-main-frame-window.html] - [Page loaded] + [Main frame with auto scroll-behavior ; scroll() with default behavior] expected: FAIL + [Main frame with auto scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Main frame with auto scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Main frame with smooth scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Aborting an ongoing smooth scrolling on the main frame with another smooth scrolling] + expected: FAIL + + [Aborting an ongoing smooth scrolling on the main frame with an instant scrolling] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth-navigation.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth-navigation.html.ini deleted file mode 100644 index 878ef5f68f8..00000000000 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth-navigation.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[scroll-behavior-smooth-navigation.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-subframe-root.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-subframe-root.html.ini index 3cc6a9cebd6..86d0de5045f 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-subframe-root.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-subframe-root.html.ini @@ -1,5 +1,114 @@ [scroll-behavior-subframe-root.html] - expected: ERROR - [iframe loaded] - expected: NOTRUN + [Subframe with auto scroll-behavior ; scroll() with default behavior] + expected: FAIL + [Subframe with auto scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scroll() with default behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scroll() with auto behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scroll() with instant behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scroll() with smooth behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollTo() with default behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollTo() with auto behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollTo() with instant behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollTo() with smooth behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollBy() with default behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollBy() with auto behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollBy() with instant behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollBy() with smooth behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Subframe with auto scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollIntoView() with default behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollIntoView() with auto behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollIntoView() with instant behavior] + expected: FAIL + + [Subframe with smooth scroll-behavior ; scrollIntoView() with smooth behavior] + expected: FAIL + + [Subframe setting scrollLeft with auto scroll-behavior] + expected: FAIL + + [Subframe setting scrollLeft with smooth scroll-behavior] + expected: FAIL + + [Subframe setting scrollTop with auto scroll-behavior] + expected: FAIL + + [Subframe setting scrollTop with smooth scroll-behavior] + expected: FAIL + + [Aborting an ongoing smooth scrolling on a subframe with another smooth scrolling] + expected: FAIL + + [Aborting an ongoing smooth scrolling on a subframe with an instant scrolling] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/CSSStyleSheet-modify-after-removal.html.ini b/tests/wpt/metadata/css/cssom/CSSStyleSheet-modify-after-removal.html.ini deleted file mode 100644 index dd01fab5f42..00000000000 --- a/tests/wpt/metadata/css/cssom/CSSStyleSheet-modify-after-removal.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[CSSStyleSheet-modify-after-removal.html] - [Modify sheet from removed iframe] - expected: FAIL - - [Modify constructed sheet from removed iframe] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/at-namespace.html.ini b/tests/wpt/metadata/css/cssom/at-namespace.html.ini deleted file mode 100644 index aa7d7d8d2b8..00000000000 --- a/tests/wpt/metadata/css/cssom/at-namespace.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[at-namespace.html] - [CSS Test: @namespace in CSSOM is not severely broken] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/computed-style-002.html.ini b/tests/wpt/metadata/css/cssom/computed-style-002.html.ini deleted file mode 100644 index 4c77eab4ebb..00000000000 --- a/tests/wpt/metadata/css/cssom/computed-style-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[computed-style-002.html] - [Check that a percent width in an iframe is resolved against iframe width for getComputedStyle.] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/computed-style-003.html.ini b/tests/wpt/metadata/css/cssom/computed-style-003.html.ini index 31e762a1b14..67491c15881 100644 --- a/tests/wpt/metadata/css/cssom/computed-style-003.html.ini +++ b/tests/wpt/metadata/css/cssom/computed-style-003.html.ini @@ -1,5 +1,6 @@ [computed-style-003.html] - expected: ERROR [CSS Test: getComputedStyle - resolved width in iframe dynamic display] expected: FAIL + [Check that a percent width in an iframe is the resolved width when the iframe is displayed.] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/computed-style-004.html.ini b/tests/wpt/metadata/css/cssom/computed-style-004.html.ini index 4fd7fd29e54..88e9cf45440 100644 --- a/tests/wpt/metadata/css/cssom/computed-style-004.html.ini +++ b/tests/wpt/metadata/css/cssom/computed-style-004.html.ini @@ -1,5 +1,6 @@ [computed-style-004.html] - expected: ERROR [CSS Test: getComputedStyle - resolved width in nested iframes dynamic width] expected: FAIL + [Check that the resolved width of the inner div is affected by changing the width of outer iframe.] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/font-variant-shorthand-serialization.html.ini b/tests/wpt/metadata/css/cssom/font-variant-shorthand-serialization.html.ini index 8d61b688935..c57b2ea605e 100644 --- a/tests/wpt/metadata/css/cssom/font-variant-shorthand-serialization.html.ini +++ b/tests/wpt/metadata/css/cssom/font-variant-shorthand-serialization.html.ini @@ -1,22 +1,15 @@ [font-variant-shorthand-serialization.html] - expected: ERROR - [font-variant: normal serialization] - expected: FAIL - [font-variant: none serialization] expected: FAIL [font-variant-ligatures: none serialization with non-default value for another longhand] expected: FAIL - [font-variant: normal with non-default longhands] - expected: NOTRUN - [CSS-wide keyword in one longhand] - expected: NOTRUN + expected: FAIL [CSS-wide keyword in shorthand] - expected: NOTRUN + expected: FAIL [font: menu serialization] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-001.html.ini b/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-001.html.ini deleted file mode 100644 index 66f3aeee8ae..00000000000 --- a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-001.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[getComputedStyle-display-none-001.html] - [getComputedStyle gets invalidated in display: none subtrees due to inherited changes to an ancestor] - expected: FAIL - - [getComputedStyle gets invalidated in display: none subtrees due to inherited changes to an ancestor shadow host] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-002.html.ini b/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-002.html.ini deleted file mode 100644 index 1a062cb51cd..00000000000 --- a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[getComputedStyle-display-none-002.html] - [getComputedStyle gets invalidated in display: none subtrees due to rule matching changes] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-003.html.ini b/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-003.html.ini deleted file mode 100644 index 3e83ad11327..00000000000 --- a/tests/wpt/metadata/css/cssom/getComputedStyle-display-none-003.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[getComputedStyle-display-none-003.html] - [getComputedStyle gets invalidated in display: none subtrees due to attribute mutations] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom/preferred-stylesheet-reversed-order.html.ini b/tests/wpt/metadata/css/cssom/preferred-stylesheet-reversed-order.html.ini deleted file mode 100644 index 49369172fe9..00000000000 --- a/tests/wpt/metadata/css/cssom/preferred-stylesheet-reversed-order.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[preferred-stylesheet-reversed-order.html] - [Preferred stylesheet where insertion order is tree order] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/attribute-selectors/style-attribute-selector.html.ini b/tests/wpt/metadata/css/selectors/attribute-selectors/style-attribute-selector.html.ini deleted file mode 100644 index 1fcadf7682c..00000000000 --- a/tests/wpt/metadata/css/selectors/attribute-selectors/style-attribute-selector.html.ini +++ /dev/null @@ -1,34 +0,0 @@ -[style-attribute-selector.html] - [Match style attribute with no value] - expected: FAIL - - [Dynamically remove style with Element.style] - expected: FAIL - - [Match style attribute with empty value] - expected: FAIL - - [Dynamically change style with Element.style] - expected: FAIL - - [Dynamically change style with Element.style.property] - expected: FAIL - - [Match style attribute with background value] - expected: FAIL - - [Initially no style attribute to match] - expected: FAIL - - [Dynamically remove style with Element.style.removeProperty] - expected: FAIL - - [Dynamically change style with Element.setAttribute] - expected: FAIL - - [Dynamically remove style with Element.style.property] - expected: FAIL - - [Dynamically remove style with Element.removeAttribute] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/dir-selector-auto.html.ini b/tests/wpt/metadata/css/selectors/dir-selector-auto.html.ini index 559a57045fb..edd171ba352 100644 --- a/tests/wpt/metadata/css/selectors/dir-selector-auto.html.ini +++ b/tests/wpt/metadata/css/selectors/dir-selector-auto.html.ini @@ -1,2 +1,66 @@ [dir-selector-auto.html] - expected: ERROR + [Initial directionality of element div1 is ltr] + expected: FAIL + + [Initial directionality of element div1_1 is ltr] + expected: FAIL + + [Initial directionality of element div2 is rtl] + expected: FAIL + + [Initial directionality of element div2_1 is rtl] + expected: FAIL + + [Initial directionality of element div3 is ltr] + expected: FAIL + + [Initial directionality of element div3_1 is rtl] + expected: FAIL + + [Initial directionality of element div3_2 is ltr] + expected: FAIL + + [Initial directionality of element div4 is ltr] + expected: FAIL + + [Initial directionality of element div4_1 is ltr] + expected: FAIL + + [Initial directionality of element div4_1_1 is ltr] + expected: FAIL + + [Updated directionality of element div1 is rtl] + expected: FAIL + + [Updated directionality of element div1_1 is rtl] + expected: FAIL + + [Updated directionality of element div1 is ltr] + expected: FAIL + + [Updated directionality of element div1_1 is ltr] + expected: FAIL + + [Reupdated directionality of element div1 is ltr] + expected: FAIL + + [Reupdated directionality of element div1_1 is ltr] + expected: FAIL + + [Updated directionality of element div2 is ltr] + expected: FAIL + + [Updated directionality of element div3 is rtl] + expected: FAIL + + [Updated directionality of element div3 is ltr] + expected: FAIL + + [Updated directionality of element div4 is rtl] + expected: FAIL + + [Updated directionality of element div4_1 is rtl] + expected: FAIL + + [Updated directionality of element div4_1_1 is rtl] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/focus-visible-script-focus-001.html.ini b/tests/wpt/metadata/css/selectors/focus-visible-script-focus-001.html.ini deleted file mode 100644 index 690b38b26ae..00000000000 --- a/tests/wpt/metadata/css/selectors/focus-visible-script-focus-001.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[focus-visible-script-focus-001.html] - expected: ERROR - [":focus-visible" should be a valid selector] - expected: FAIL - - [Script focus without any previous user interaction matches :focus-visible] - expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/has-argument-with-explicit-scope.html.ini b/tests/wpt/metadata/css/selectors/has-argument-with-explicit-scope.html.ini index d194a085f7f..16368e935db 100644 --- a/tests/wpt/metadata/css/selectors/has-argument-with-explicit-scope.html.ini +++ b/tests/wpt/metadata/css/selectors/has-argument-with-explicit-scope.html.ini @@ -1,2 +1,39 @@ [has-argument-with-explicit-scope.html] - expected: ERROR + [:has(:scope) matches expected elements on scope1] + expected: FAIL + + [:has(:scope .c) matches expected elements on scope1] + expected: FAIL + + [:has(.a :scope) matches expected elements on scope1] + expected: FAIL + + [.a:has(:scope) .c matches expected elements on scope1] + expected: FAIL + + [.a:has(:scope) .c and :is(.a :scope .c) returns same elements on scope1] + expected: FAIL + + [.a:has(:scope) .c matches expected elements on scope2] + expected: FAIL + + [.a:has(:scope) .c and :is(.a :scope .c) returns same elements on scope2] + expected: FAIL + + [.c:has(:is(:scope .d)) matches expected elements on scope1] + expected: FAIL + + [.c:has(:is(:scope .d)) and :scope .c:has(.d) returns same elements on scope1] + expected: FAIL + + [.c:has(:is(:scope .d)) and .c:has(.d) returns same elements on scope1] + expected: FAIL + + [.c:has(:is(:scope .d)) matches expected elements on scope2] + expected: FAIL + + [.c:has(:is(:scope .d)) and :scope .c:has(.d) returns same elements on scope2] + expected: FAIL + + [.c:has(:is(:scope .d)) and .c:has(.d) returns same elements on scope2] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/has-basic.html.ini b/tests/wpt/metadata/css/selectors/has-basic.html.ini index ad3ee6266c7..29c8b54b88e 100644 --- a/tests/wpt/metadata/css/selectors/has-basic.html.ini +++ b/tests/wpt/metadata/css/selectors/has-basic.html.ini @@ -1,4 +1,54 @@ [has-basic.html] - expected: ERROR [:has(#a) matches expected elements] expected: FAIL + + [:has(.ancestor) matches expected elements] + expected: FAIL + + [:has(.target) matches expected elements] + expected: FAIL + + [:has(.descendant) matches expected elements] + expected: FAIL + + [.parent:has(.target) matches expected elements] + expected: FAIL + + [:has(.sibling ~ .target) matches expected elements] + expected: FAIL + + [.parent:has(.sibling ~ .target) matches expected elements] + expected: FAIL + + [:has(:is(.target ~ .sibling .descendant)) matches expected elements] + expected: FAIL + + [.parent:has(:is(.target ~ .sibling .descendant)) matches expected elements] + expected: FAIL + + [.sibling:has(.descendant) ~ .target matches expected elements] + expected: FAIL + + [:has(> .parent) matches expected elements] + expected: FAIL + + [:has(> .target) matches expected elements] + expected: FAIL + + [:has(> .parent, > .target) matches expected elements] + expected: FAIL + + [:has(+ #h) matches expected elements] + expected: FAIL + + [.parent:has(~ #h) matches expected elements] + expected: FAIL + + [.sibling:has(.descendant) matches expected element] + expected: FAIL + + [closest(.ancestor:has(.descendant)) returns expected element] + expected: FAIL + + [:has(.target ~ .sibling .descendant) matches expectedly] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/has-relative-argument.html.ini b/tests/wpt/metadata/css/selectors/has-relative-argument.html.ini index dcf90481787..c15ad8ae060 100644 --- a/tests/wpt/metadata/css/selectors/has-relative-argument.html.ini +++ b/tests/wpt/metadata/css/selectors/has-relative-argument.html.ini @@ -1,2 +1,105 @@ [has-relative-argument.html] - expected: ERROR + [.x:has(.a) matches expected elements] + expected: FAIL + + [.x:has(.a > .b) matches expected elements] + expected: FAIL + + [.x:has(.a .b) matches expected elements] + expected: FAIL + + [.x:has(.a + .b) matches expected elements] + expected: FAIL + + [.x:has(.a ~ .b) matches expected elements] + expected: FAIL + + [.x:has(> .a) matches expected elements] + expected: FAIL + + [.x:has(> .a > .b) matches expected elements] + expected: FAIL + + [.x:has(> .a .b) matches expected elements] + expected: FAIL + + [.x:has(> .a + .b) matches expected elements] + expected: FAIL + + [.x:has(> .a ~ .b) matches expected elements] + expected: FAIL + + [.x:has(+ .a) matches expected elements] + expected: FAIL + + [.x:has(+ .a > .b) matches expected elements] + expected: FAIL + + [.x:has(+ .a .b) matches expected elements] + expected: FAIL + + [.x:has(+ .a + .b) matches expected elements] + expected: FAIL + + [.x:has(+ .a ~ .b) matches expected elements] + expected: FAIL + + [.x:has(~ .a) matches expected elements] + expected: FAIL + + [.x:has(~ .a > .b) matches expected elements] + expected: FAIL + + [.x:has(~ .a .b) matches expected elements] + expected: FAIL + + [.x:has(~ .a + .b) matches expected elements] + expected: FAIL + + [.x:has(~ .a + .b > .c) matches expected elements] + expected: FAIL + + [.x:has(~ .a + .b .c) matches expected elements] + expected: FAIL + + [.x:has(.d .e) matches expected elements] + expected: FAIL + + [.x:has(.d .e) .f matches expected elements] + expected: FAIL + + [.x:has(> .d) matches expected elements] + expected: FAIL + + [.x:has(> .d) .f matches expected elements] + expected: FAIL + + [.x:has(~ .d ~ .e) matches expected elements] + expected: FAIL + + [.x:has(~ .d ~ .e) ~ .f matches expected elements] + expected: FAIL + + [.x:has(+ .d ~ .e) matches expected elements] + expected: FAIL + + [.x:has(+ .d ~ .e) ~ .f matches expected elements] + expected: FAIL + + [.y:has(> .g .h) matches expected elements] + expected: FAIL + + [.y:has(.g .h) matches expected elements] + expected: FAIL + + [.y:has(> .g .h) .i matches expected elements] + expected: FAIL + + [.y:has(.g .h) .i matches expected elements] + expected: FAIL + + [.d .x:has(.e) matches expected elements] + expected: FAIL + + [.d ~ .x:has(~ .e) matches expected elements] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/has-specificity.html.ini b/tests/wpt/metadata/css/selectors/has-specificity.html.ini deleted file mode 100644 index 890b698b1b3..00000000000 --- a/tests/wpt/metadata/css/selectors/has-specificity.html.ini +++ /dev/null @@ -1,24 +0,0 @@ -[has-specificity.html] - [:has(#foo) wins over :has(.foo)] - expected: FAIL - - [:has(span#foo) wins over :has(#foo)] - expected: FAIL - - [:has(.bar, #foo) has same specificity as :has(#foo, .bar)] - expected: FAIL - - [:has(.bar, #foo) wins over :has(.foo, .bar)] - expected: FAIL - - [:has(span + span) wins over :has(span)] - expected: FAIL - - [:has(span, li, p) wins over :has(span, lo, p)] - expected: FAIL - - [latter .baz wins over :has(.foo)] - expected: FAIL - - [latter :has(.foo) wins over .baz] - expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/i18n/lang-pseudo-class-disconnected.html.ini b/tests/wpt/metadata/css/selectors/i18n/lang-pseudo-class-disconnected.html.ini deleted file mode 100644 index b6f3dbe7731..00000000000 --- a/tests/wpt/metadata/css/selectors/i18n/lang-pseudo-class-disconnected.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[lang-pseudo-class-disconnected.html] - [:lang pseudo class should work in a disconnected subtree] - expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini index 1f864ab76bf..a192998bc8f 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini @@ -1,2 +1,39 @@ [attribute-or-elemental-selectors-in-has.html] - expected: ERROR + [add .child to #div_child: div#div_subject.color] + expected: FAIL + + [add .descendant to #div_child: div#div_subject.color] + expected: FAIL + + [add .descendant to #div_grandchild: div#div_subject.color] + expected: FAIL + + [set descendant to #div_grandchild[attrname\]: div#div_subject.color] + expected: FAIL + + [change #div_grandchild to #div_descendant: div#div_subject.color] + expected: FAIL + + [add descendant to #div_subject: div#div_subject.color] + expected: FAIL + + [add "div > descendant" to #div_subject: div#div_subject.color] + expected: FAIL + + [add div.child to #div_subject: div#div_subject.color] + expected: FAIL + + [add "div > div.descendant" to #div_subject: div#div_subject.color] + expected: FAIL + + [add div#div_descendant to #div_subject: div#div_subject.color] + expected: FAIL + + [add "div#div_descendant" to #div_subject: div#div_subject.color] + expected: FAIL + + [add div[attrname\] to #div_subject: div#div_subject.color] + expected: FAIL + + [add "div > div[attrname\]" to #div_subject: div#div_subject.color] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/attribute.html.ini b/tests/wpt/metadata/css/selectors/invalidation/attribute.html.ini deleted file mode 100644 index 10cbfce96cf..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/attribute.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[attribute.html] - [.class selector is effective] - expected: FAIL - - [[att\] selector is effective] - expected: FAIL - - [[att|=val\] selector is effective] - expected: FAIL - - [[att=val\] selector is effective] - expected: FAIL - - [[att~=val\] selector is effective] - expected: FAIL - - [#id selector is effective] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini index 285388ec4ff..4ff336cd404 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini @@ -1,19 +1,81 @@ [child-indexed-pseudo-classes-in-has.html] - expected: ERROR - [Initial colors: #only_child] + [Prepend #div1.green: #only_child] expected: FAIL - [Initial colors: #first_child] + [Prepend #div1.green: #first_child] expected: FAIL - [Initial colors: #last_child] + [Prepend #div1.green: #last_child] expected: FAIL - [Initial colors: #nth_child_3n_1] + [Prepend #div1.green: #nth_child_3n_1] expected: FAIL - [Initial colors: #nth_child_3n_2] + [Prepend #div2.yellow: #first_child] expected: FAIL - [Initial colors: #nth_child_3n] + [Prepend #div2.yellow: #last_child] + expected: FAIL + + [Prepend #div2.yellow: #nth_child_3n_1] + expected: FAIL + + [Prepend #div2.yellow: #nth_child_3n_2] + expected: FAIL + + [Prepend #div3.orange: #first_child] + expected: FAIL + + [Prepend #div3.orange: #last_child] + expected: FAIL + + [Prepend #div3.orange: #nth_child_3n_1] + expected: FAIL + + [Prepend #div3.orange: #nth_child_3n_2] + expected: FAIL + + [Prepend #div3.orange: #nth_child_3n] + expected: FAIL + + [Prepend #div4: #last_child] + expected: FAIL + + [Prepend #div4: #nth_child_3n_1] + expected: FAIL + + [Prepend #div4: #nth_child_3n_2] + expected: FAIL + + [Prepend #div4: #nth_child_3n] + expected: FAIL + + [Prepend #div5: #last_child] + expected: FAIL + + [Prepend #div5: #nth_child_3n_1] + expected: FAIL + + [Prepend #div5: #nth_child_3n_2] + expected: FAIL + + [Prepend #div5: #nth_child_3n] + expected: FAIL + + [Remove #div1: #last_child] + expected: FAIL + + [Remove #div1: #nth_child_3n_1] + expected: FAIL + + [Remove #div1: #nth_child_3n] + expected: FAIL + + [Remove #div2: #last_child] + expected: FAIL + + [Remove #div2: #nth_child_3n] + expected: FAIL + + [Remove #div4: #only_child] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/class-id-attr.html.ini b/tests/wpt/metadata/css/selectors/invalidation/class-id-attr.html.ini deleted file mode 100644 index 1a48863a258..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/class-id-attr.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[class-id-attr.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/defined.html.ini b/tests/wpt/metadata/css/selectors/invalidation/defined.html.ini deleted file mode 100644 index da18184b91f..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/defined.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[defined.html] - [:defined selector is effective] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/dir-pseudo-class-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/dir-pseudo-class-in-has.html.ini index 3e4772dfde2..94a862a94eb 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/dir-pseudo-class-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/dir-pseudo-class-in-has.html.ini @@ -1,2 +1,2 @@ [dir-pseudo-class-in-has.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/empty-pseudo-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/empty-pseudo-in-has.html.ini index 635f2e4f227..f98c5d0c507 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/empty-pseudo-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/empty-pseudo-in-has.html.ini @@ -1,4 +1,6 @@ [empty-pseudo-in-has.html] - expected: ERROR - [Empty #subject] + [Insert div#child to #subject] + expected: FAIL + + [Insert div to div.#child] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-complexity.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-complexity.html.ini index e3fef98b2e6..76890edbf53 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-complexity.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-complexity.html.ini @@ -1,4 +1,4 @@ [has-complexity.html] - expected: ERROR + expected: TIMEOUT [Before appending 25000 elements] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-in-adjacent-position.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-in-adjacent-position.html.ini index a67c925655c..4b8cf7c695f 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-in-adjacent-position.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-in-adjacent-position.html.ini @@ -1,4 +1,306 @@ [has-in-adjacent-position.html] - expected: ERROR - [Initial color] + [add .test to previous_sibling_child] + expected: FAIL + + [add .test to previous_sibling_descendant] + expected: FAIL + + [add .test to subject] + expected: FAIL + + [add .test to next_sibling] + expected: FAIL + + [add .test to next_sibling_child] + expected: FAIL + + [add .test to next_sibling_descendant] + expected: FAIL + + [insert element div.test before previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted before previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again before previous_sibling_child] + expected: FAIL + + [insert element div[test_attr\] before previous_sibling_child] + expected: FAIL + + [insert element div.test before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before previous_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] before previous_sibling_descendant] + expected: FAIL + + [insert element div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling] + expected: FAIL + + [insert element div[test_attr\] before next_sibling] + expected: FAIL + + [insert element div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert element div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert element div.test after previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted after previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again after previous_sibling_child] + expected: FAIL + + [insert element div[test_attr\] after previous_sibling_child] + expected: FAIL + + [insert element div.test after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after previous_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] after previous_sibling_descendant] + expected: FAIL + + [insert element div.test after subject] + expected: FAIL + + [add the class 'test' again to the element inserted after subject] + expected: FAIL + + [add the class 'test' to the element inserted again after subject] + expected: FAIL + + [insert element div[test_attr\] after subject] + expected: FAIL + + [insert element div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling] + expected: FAIL + + [insert element div[test_attr\] after next_sibling] + expected: FAIL + + [insert element div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert element div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before previous_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] before previous_sibling_child] + expected: FAIL + + [insert tree div>div.test before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before previous_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before previous_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject] + expected: FAIL + + [insert element div>div[test_attr\] before subject] + expected: FAIL + + [insert tree div>div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling] + expected: FAIL + + [insert tree div>div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert tree div>div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after previous_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling] + expected: FAIL + + [insert tree div>div.test after previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling_child] + expected: FAIL + + [insert tree div>div.test after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject] + expected: FAIL + + [insert element div>div[test_attr\] after subject] + expected: FAIL + + [insert tree div>div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling] + expected: FAIL + + [insert tree div>div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert tree div>div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-in-ancestor-position.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-in-ancestor-position.html.ini index 4432b92f9e7..3182454b803 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-in-ancestor-position.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-in-ancestor-position.html.ini @@ -1,4 +1,381 @@ [has-in-ancestor-position.html] - expected: ERROR - [Initial color] + [add .test to subject_parent] + expected: FAIL + + [add .test to subject] + expected: FAIL + + [add .test to subject_child] + expected: FAIL + + [add .test to subject_descendant] + expected: FAIL + + [add .test to next_sibling] + expected: FAIL + + [add .test to next_sibling_child] + expected: FAIL + + [add .test to next_sibling_descendant] + expected: FAIL + + [insert element div.test before subject_parent] + expected: FAIL + + [add the class 'test' again to the element inserted before subject_parent] + expected: FAIL + + [add the class 'test' to the element inserted again before subject_parent] + expected: FAIL + + [insert element div[test_attr\] before subject_parent] + expected: FAIL + + [insert element div.test before subject] + expected: FAIL + + [add the class 'test' again to the element inserted before subject] + expected: FAIL + + [add the class 'test' to the element inserted again before subject] + expected: FAIL + + [insert element div[test_attr\] before subject] + expected: FAIL + + [insert element div.test before subject_child] + expected: FAIL + + [add the class 'test' again to the element inserted before subject_child] + expected: FAIL + + [add the class 'test' to the element inserted again before subject_child] + expected: FAIL + + [insert element div[test_attr\] before subject_child] + expected: FAIL + + [insert element div.test before subject_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before subject_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before subject_descendant] + expected: FAIL + + [insert element div[test_attr\] before subject_descendant] + expected: FAIL + + [insert element div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling] + expected: FAIL + + [insert element div[test_attr\] before next_sibling] + expected: FAIL + + [insert element div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert element div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert element div.test after subject_ancestor] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_ancestor] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_ancestor] + expected: FAIL + + [insert element div[test_attr\] after subject_ancestor] + expected: FAIL + + [insert element div.test after subject_parent] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_parent] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_parent] + expected: FAIL + + [insert element div[test_attr\] after subject_parent] + expected: FAIL + + [insert element div.test after subject] + expected: FAIL + + [add the class 'test' again to the element inserted after subject] + expected: FAIL + + [add the class 'test' to the element inserted again after subject] + expected: FAIL + + [insert element div[test_attr\] after subject] + expected: FAIL + + [insert element div.test after subject_child] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_child] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_child] + expected: FAIL + + [insert element div[test_attr\] after subject_child] + expected: FAIL + + [insert element div.test after subject_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_descendant] + expected: FAIL + + [insert element div[test_attr\] after subject_descendant] + expected: FAIL + + [insert element div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling] + expected: FAIL + + [insert element div[test_attr\] after next_sibling] + expected: FAIL + + [insert element div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert element div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before subject_parent] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject_parent] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject_parent] + expected: FAIL + + [insert element div>div[test_attr\] before subject_parent] + expected: FAIL + + [insert tree div>div.test before subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject] + expected: FAIL + + [insert element div>div[test_attr\] before subject] + expected: FAIL + + [insert tree div>div.test before subject_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject_child] + expected: FAIL + + [insert element div>div[test_attr\] before subject_child] + expected: FAIL + + [insert tree div>div.test before subject_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before subject_descendant] + expected: FAIL + + [insert tree div>div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling] + expected: FAIL + + [insert tree div>div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert tree div>div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after subject_ancestor] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_ancestor] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_ancestor] + expected: FAIL + + [insert element div>div[test_attr\] after subject_ancestor] + expected: FAIL + + [insert tree div>div.test after subject_parent] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_parent] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_parent] + expected: FAIL + + [insert element div>div[test_attr\] after subject_parent] + expected: FAIL + + [insert tree div>div.test after subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject] + expected: FAIL + + [insert element div>div[test_attr\] after subject] + expected: FAIL + + [insert tree div>div.test after subject_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_child] + expected: FAIL + + [insert element div>div[test_attr\] after subject_child] + expected: FAIL + + [insert tree div>div.test after subject_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after subject_descendant] + expected: FAIL + + [insert tree div>div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling] + expected: FAIL + + [insert tree div>div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert tree div>div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-in-parent-position.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-in-parent-position.html.ini index f4767d2d713..b7352f619aa 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-in-parent-position.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-in-parent-position.html.ini @@ -1,4 +1,177 @@ [has-in-parent-position.html] - expected: ERROR - [Initial color] + [add .test to subject] + expected: FAIL + + [add .test to subject_child] + expected: FAIL + + [add .test to subject_descendant] + expected: FAIL + + [insert element div.test before subject] + expected: FAIL + + [add the class 'test' again to the element inserted before subject] + expected: FAIL + + [add the class 'test' to the element inserted again before subject] + expected: FAIL + + [insert element div[test_attr\] before subject] + expected: FAIL + + [insert element div.test before subject_child] + expected: FAIL + + [add the class 'test' again to the element inserted before subject_child] + expected: FAIL + + [add the class 'test' to the element inserted again before subject_child] + expected: FAIL + + [insert element div[test_attr\] before subject_child] + expected: FAIL + + [insert element div.test before subject_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before subject_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before subject_descendant] + expected: FAIL + + [insert element div[test_attr\] before subject_descendant] + expected: FAIL + + [insert element div.test after subject_parent] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_parent] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_parent] + expected: FAIL + + [insert element div[test_attr\] after subject_parent] + expected: FAIL + + [insert element div.test after subject] + expected: FAIL + + [add the class 'test' again to the element inserted after subject] + expected: FAIL + + [add the class 'test' to the element inserted again after subject] + expected: FAIL + + [insert element div[test_attr\] after subject] + expected: FAIL + + [insert element div.test after subject_child] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_child] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_child] + expected: FAIL + + [insert element div[test_attr\] after subject_child] + expected: FAIL + + [insert element div.test after subject_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after subject_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after subject_descendant] + expected: FAIL + + [insert element div[test_attr\] after subject_descendant] + expected: FAIL + + [insert tree div>div.test before subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject] + expected: FAIL + + [insert element div>div[test_attr\] before subject] + expected: FAIL + + [insert tree div>div.test before subject_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject_child] + expected: FAIL + + [insert element div>div[test_attr\] before subject_child] + expected: FAIL + + [insert tree div>div.test before subject_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before subject_descendant] + expected: FAIL + + [insert tree div>div.test after subject_parent] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_parent] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_parent] + expected: FAIL + + [insert element div>div[test_attr\] after subject_parent] + expected: FAIL + + [insert tree div>div.test after subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject] + expected: FAIL + + [insert element div>div[test_attr\] after subject] + expected: FAIL + + [insert tree div>div.test after subject_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_child] + expected: FAIL + + [insert element div>div[test_attr\] after subject_child] + expected: FAIL + + [insert tree div>div.test after subject_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after subject_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-in-sibling-position.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-in-sibling-position.html.ini index ca628c97fe4..3622ed74603 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-in-sibling-position.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-in-sibling-position.html.ini @@ -1,4 +1,342 @@ [has-in-sibling-position.html] - expected: ERROR - [Initial color] + [add .test to previous_sibling_child] + expected: FAIL + + [add .test to previous_sibling_descendant] + expected: FAIL + + [add .test to subject] + expected: FAIL + + [add .test to next_sibling] + expected: FAIL + + [add .test to next_sibling_child] + expected: FAIL + + [add .test to next_sibling_descendant] + expected: FAIL + + [insert element div.test before previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted before previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again before previous_sibling_child] + expected: FAIL + + [insert element div[test_attr\] before previous_sibling_child] + expected: FAIL + + [insert element div.test before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before previous_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] before previous_sibling_descendant] + expected: FAIL + + [insert element div.test before subject] + expected: FAIL + + [add the class 'test' again to the element inserted before subject] + expected: FAIL + + [add the class 'test' to the element inserted again before subject] + expected: FAIL + + [insert element div[test_attr\] before subject] + expected: FAIL + + [insert element div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling] + expected: FAIL + + [insert element div[test_attr\] before next_sibling] + expected: FAIL + + [insert element div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert element div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert element div.test after previous_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted after previous_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again after previous_sibling] + expected: FAIL + + [insert element div[test_attr\] after previous_sibling] + expected: FAIL + + [insert element div.test after previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted after previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again after previous_sibling_child] + expected: FAIL + + [insert element div[test_attr\] after previous_sibling_child] + expected: FAIL + + [insert element div.test after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after previous_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] after previous_sibling_descendant] + expected: FAIL + + [insert element div.test after subject] + expected: FAIL + + [add the class 'test' again to the element inserted after subject] + expected: FAIL + + [add the class 'test' to the element inserted again after subject] + expected: FAIL + + [insert element div[test_attr\] after subject] + expected: FAIL + + [insert element div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling] + expected: FAIL + + [insert element div[test_attr\] after next_sibling] + expected: FAIL + + [insert element div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_child] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert element div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div[test_attr\] after next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before previous_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before previous_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before previous_sibling] + expected: FAIL + + [insert element div>div[test_attr\] before previous_sibling] + expected: FAIL + + [insert tree div>div.test before previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before previous_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] before previous_sibling_child] + expected: FAIL + + [insert tree div>div.test before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before previous_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before previous_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before subject] + expected: FAIL + + [insert element div>div[test_attr\] before subject] + expected: FAIL + + [insert tree div>div.test before next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling] + expected: FAIL + + [insert tree div>div.test before next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_child] + expected: FAIL + + [insert tree div>div.test before next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted before next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again before next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] before next_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after previous_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling] + expected: FAIL + + [insert tree div>div.test after previous_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling_child] + expected: FAIL + + [insert tree div>div.test after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after previous_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after previous_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after previous_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after subject] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after subject] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after subject] + expected: FAIL + + [insert element div>div[test_attr\] after subject] + expected: FAIL + + [insert tree div>div.test after next_sibling] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling] + expected: FAIL + + [insert tree div>div.test after next_sibling_child] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_child] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_child] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_child] + expected: FAIL + + [insert tree div>div.test after next_sibling_descendant] + expected: FAIL + + [add the class 'test' again to the element in the tree inserted after next_sibling_descendant] + expected: FAIL + + [add the class 'test' to the element in the tree inserted again after next_sibling_descendant] + expected: FAIL + + [insert element div>div[test_attr\] after next_sibling_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini index 9967405d400..03921051e78 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini @@ -1,2 +1,3 @@ [has-invalidation-after-removing-non-first-element.html] - expected: ERROR + [initial_color: div#subject.color] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini index e5dac71de8e..45884afd2a6 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini @@ -1,2 +1,6 @@ [has-invalidation-for-wiping-an-element.html] - expected: ERROR + [color after inserting text and div > .descendant: div#subject.color] + expected: FAIL + + [color after inserting text and #child > .descendant: div#subject.color] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-sibling.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-sibling.html.ini index 17ee98adef4..debf654a0f8 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-sibling.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-sibling.html.ini @@ -1,4 +1,105 @@ [has-sibling.html] - expected: ERROR - [initial_color] + [add .test to first_sibling] + expected: FAIL + + [add .test to second_sibling] + expected: FAIL + + [add .test to third_sibling] + expected: FAIL + + [add .test to first_sibling_child] + expected: FAIL + + [add .test to first_sibling_descendant] + expected: FAIL + + [add .test to third_sibling_child] + expected: FAIL + + [add .test to third_sibling_descendant] + expected: FAIL + + [insert element div.test before first_sibling] + expected: FAIL + + [insert element div.test before second_sibling] + expected: FAIL + + [insert element div.test before third_sibling] + expected: FAIL + + [insert element div.test before first_sibling_child] + expected: FAIL + + [insert element div.test before first_sibling_descendant] + expected: FAIL + + [insert element div.test before third_sibling_child] + expected: FAIL + + [insert element div.test before third_sibling_descendant] + expected: FAIL + + [insert element div.test after first_sibling] + expected: FAIL + + [insert element div.test after second_sibling] + expected: FAIL + + [insert element div.test after third_sibling] + expected: FAIL + + [insert element div.test after first_sibling_child] + expected: FAIL + + [insert element div.test after first_sibling_descendant] + expected: FAIL + + [insert element div.test after third_sibling_child] + expected: FAIL + + [insert element div.test after third_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before first_sibling] + expected: FAIL + + [insert tree div>div.test before second_sibling] + expected: FAIL + + [insert tree div>div.test before third_sibling] + expected: FAIL + + [insert tree div>div.test before first_sibling_child] + expected: FAIL + + [insert tree div>div.test before first_sibling_descendant] + expected: FAIL + + [insert tree div>div.test before third_sibling_child] + expected: FAIL + + [insert tree div>div.test before third_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after first_sibling] + expected: FAIL + + [insert tree div>div.test after second_sibling] + expected: FAIL + + [insert tree div>div.test after third_sibling] + expected: FAIL + + [insert tree div>div.test after first_sibling_child] + expected: FAIL + + [insert tree div>div.test after first_sibling_descendant] + expected: FAIL + + [insert tree div>div.test after third_sibling_child] + expected: FAIL + + [insert tree div>div.test after third_sibling_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-with-not.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-with-not.html.ini index 5be88b882c6..cb3ceafbd17 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-with-not.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-with-not.html.ini @@ -1,4 +1,30 @@ [has-with-not.html] - expected: ERROR - [Initial color] + [remove .test to subject_child] + expected: FAIL + + [remove .test to subject_descendant] + expected: FAIL + + [insert element div before subject_child] + expected: FAIL + + [insert element div before subject_descendant] + expected: FAIL + + [insert element div after subject_child] + expected: FAIL + + [insert element div after subject_descendant] + expected: FAIL + + [insert tree div>div before subject_child] + expected: FAIL + + [insert tree div>div before subject_descendant] + expected: FAIL + + [insert tree div.test after subject_child] + expected: FAIL + + [insert tree div.test after subject_descendant] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/has-with-pseudo-class.html.ini b/tests/wpt/metadata/css/selectors/invalidation/has-with-pseudo-class.html.ini index 0e6be03068e..5ff2a1dd64f 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/has-with-pseudo-class.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/has-with-pseudo-class.html.ini @@ -1,2 +1,10 @@ [has-with-pseudo-class.html] expected: ERROR + [Before set checked on checkbox, testing subject] + expected: FAIL + + [Set checked on checkbox, testing subject] + expected: FAIL + + [Unset checked on checkbox, testing subject] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini index bf3da3b2871..b0a26dc9513 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini @@ -1,28 +1,27 @@ [input-pseudo-classes-in-has.html] - expected: ERROR [:checked & :indeterminate invalidation on ] expected: FAIL [:indeterminate invalidation on ] - expected: NOTRUN + expected: FAIL [:disabled invalidation] - expected: NOTRUN + expected: FAIL [:read-only invalidation] - expected: NOTRUN + expected: FAIL [:valid invalidation] - expected: NOTRUN + expected: FAIL [:default invalidation with input[type=radio\]] - expected: NOTRUN + expected: FAIL [:required invalidation] - expected: NOTRUN + expected: FAIL [:out-of-range invalidation] - expected: NOTRUN + expected: FAIL [:placeholder-shown invalidation] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini index cd64a69752c..25b95075f5b 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini @@ -1,2 +1,1008 @@ [is-pseudo-containing-complex-in-has.html] - expected: ERROR + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('red') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.remove('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.remove('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.remove('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.remove('red') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('orangered') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.remove('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.remove('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.remove('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.remove('orangered') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('darkred') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.remove('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.remove('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('darkred') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('pink') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.remove('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('pink') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.add('green') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.remove('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.remove('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.remove('green') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.add('lightgreen') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.remove('lightgreen') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.add('darkgreen') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.remove('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.remove('darkgreen') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('yellowgreen') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.remove('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('yellowgreen') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('blue') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('skyblue') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('lightblue') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('darkblue') : check matches (false)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check matches (false)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check matches (true)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check #has_scope color] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check matches (false)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #has_scope.classList.remove('yellow') : check matches (false)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check matches (false)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check matches (true)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check #descendant color] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check matches (false)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #has_scope.classList.remove('ivory') : check matches (false)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check matches (false)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check matches (true)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check matches (false)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.remove('greenyellow') : check matches (false)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check matches (false)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('khaki') : check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.remove('purple') : check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.remove('violet') : check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.remove('orchid') : check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('plum') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('orange') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.remove('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.remove('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.remove('orange') : check matches (false)] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/is.html.ini b/tests/wpt/metadata/css/selectors/invalidation/is.html.ini deleted file mode 100644 index 6afc2497a09..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/is.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[is.html] - [Invalidate :is() for compound selector arguments.] - expected: FAIL - - [Preconditions.] - expected: FAIL - - [Test specificity of :is().] - expected: FAIL - - [Invalidate :is() for complex selector arguments.] - expected: FAIL - - [Invalidate :is() for simple selector arguments.] - expected: FAIL - - [Invalidate nested :is().] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/lang-pseudo-class-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/lang-pseudo-class-in-has.html.ini index 53bda84c4d0..a4e075f95e7 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/lang-pseudo-class-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/lang-pseudo-class-in-has.html.ini @@ -1,2 +1,2 @@ [lang-pseudo-class-in-has.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html.ini index 6687d7a0f14..468b68e88d1 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html.ini @@ -1,6 +1,7 @@ [media-loading-pseudo-classes-in-has.html] + expected: TIMEOUT [Test :has(:stalled) invalidation] - expected: FAIL + expected: TIMEOUT [Test :has(:buffering) invalidation] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/css/selectors/invalidation/not-002.html.ini b/tests/wpt/metadata/css/selectors/invalidation/not-002.html.ini deleted file mode 100644 index 9eaa0b2b190..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/not-002.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[not-002.html] - [Invalidate :not() for simple selector arguments.] - expected: FAIL - - [Invalidate :not() for compound selector arguments.] - expected: FAIL - - [Test specificity of :not().] - expected: FAIL - - [Preconditions.] - expected: FAIL - - [Invalidate :not() for complex selector arguments.] - expected: FAIL - - [Invalidate nested :is() inside :not().] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini index c585ab8c220..135f52c47a1 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini @@ -1,2 +1,1035 @@ [not-pseudo-containing-complex-in-has.html] - expected: ERROR + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.add('red') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.add('red') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #parent.classList.remove('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #parent.classList.remove('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.remove('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.remove('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check matches (false)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #child.classList.remove('a_has_scope') : check matches (true)] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #child.classList.remove('a_has_scope') : check #has_scope color] + expected: FAIL + + [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.remove('red') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.add('orangered') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.add('orangered') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #parent.classList.remove('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #parent.classList.remove('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.remove('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.remove('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check matches (false)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #child.classList.remove('a_descendant') : check matches (true)] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #child.classList.remove('a_descendant') : check #descendant color] + expected: FAIL + + [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.remove('orangered') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('darkred') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('darkred') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.remove('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.remove('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.remove('a_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.remove('a_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.remove('darkred') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('pink') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('pink') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.remove('a_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.remove('a_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('pink') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.add('green') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.add('green') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.remove('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.remove('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.remove('c_has_scope') : check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.remove('c_has_scope') : check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #has_scope.classList.remove('green') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.add('lightgreen') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.add('lightgreen') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #parent_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .invalid before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] insert/remove .c_descendant before #child_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #has_scope.classList.remove('lightgreen') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.add('darkgreen') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.add('darkgreen') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #parent_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.remove('c_indirect_next') : check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.remove('c_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #has_scope.classList.remove('darkgreen') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('yellowgreen') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('yellowgreen') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #parent_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.remove('c_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('yellowgreen') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check #has_scope color] + expected: FAIL + + [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('blue') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check #descendant color] + expected: FAIL + + [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('skyblue') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check #indirect_next color] + expected: FAIL + + [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('lightblue') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check matches (false)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check matches (true)] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('darkblue') : check matches (false)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check matches (true)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check #has_scope color] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check matches (false)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check matches (true)] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check #has_scope color] + expected: FAIL + + [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #has_scope.classList.remove('yellow') : check matches (false)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check matches (true)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check #descendant color] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check matches (false)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check matches (true)] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check #descendant color] + expected: FAIL + + [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #has_scope.classList.remove('ivory') : check matches (false)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check matches (true)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check #indirect_next color] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check matches (false)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check matches (true)] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.remove('greenyellow') : check matches (false)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check matches (true)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check #indirect_next_child color] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('khaki') : check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check #has_scope color] + expected: FAIL + + [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.remove('purple') : check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check #descendant color] + expected: FAIL + + [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.remove('violet') : check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check #indirect_next color] + expected: FAIL + + [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.remove('orchid') : check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check matches (false)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check matches (true)] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check #indirect_next_child color] + expected: FAIL + + [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('plum') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('orange') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('orange') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.add('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.remove('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.remove('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.remove('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.remove('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.add('m') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.add('n') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.add('n') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.remove('n') : check matches (false)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.remove('m') : check matches (true)] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.remove('m') : check #has_scope color] + expected: FAIL + + [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.remove('orange') : check matches (false)] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/invalidation/sheet-going-away-001.html.ini b/tests/wpt/metadata/css/selectors/invalidation/sheet-going-away-001.html.ini deleted file mode 100644 index 76b222d254c..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/sheet-going-away-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[sheet-going-away-001.html] - [Style should be recomputed correctly when the stylesheet it depends on goes away] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/sibling.html.ini b/tests/wpt/metadata/css/selectors/invalidation/sibling.html.ini deleted file mode 100644 index bfd4ae0af5d..00000000000 --- a/tests/wpt/metadata/css/selectors/invalidation/sibling.html.ini +++ /dev/null @@ -1,22 +0,0 @@ -[sibling.html] - [Adjacent class] - expected: FAIL - - [Sibling subtree through an indirect adjacent combinator] - expected: FAIL - - [Adjacent with universal selector] - expected: FAIL - - [Adjacent universal] - expected: FAIL - - [Sibling descendant through a universal selector] - expected: FAIL - - [Indirect adjacent with two adjacent selectors] - expected: FAIL - - [Indirect adjacent with universal selector] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini index 124d66b6cef..65eb33e0dcb 100644 --- a/tests/wpt/metadata/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini +++ b/tests/wpt/metadata/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini @@ -1,19 +1,144 @@ [typed-child-indexed-pseudo-classes-in-has.html] - expected: ERROR - [Initial colors: #only_of_type] + [Prepend #div1.green: #only_of_type] expected: FAIL - [Initial colors: #first_of_type] + [Prepend #div1.green: #first_of_type] expected: FAIL - [Initial colors: #last_of_type] + [Prepend #div1.green: #last_of_type] expected: FAIL - [Initial colors: #nth_of_type_3n_1] + [Prepend #div1.green: #nth_of_type_3n_1] expected: FAIL - [Initial colors: #nth_of_type_3n_2] + [Prepend span (2): #only_of_type] expected: FAIL - [Initial colors: #nth_of_type_3n] + [Prepend span (2): #first_of_type] + expected: FAIL + + [Prepend span (2): #last_of_type] + expected: FAIL + + [Prepend span (2): #nth_of_type_3n_1] + expected: FAIL + + [Prepend #div2.yellow: #first_of_type] + expected: FAIL + + [Prepend #div2.yellow: #last_of_type] + expected: FAIL + + [Prepend #div2.yellow: #nth_of_type_3n_1] + expected: FAIL + + [Prepend #div2.yellow: #nth_of_type_3n_2] + expected: FAIL + + [Prepend span (3): #first_of_type] + expected: FAIL + + [Prepend span (3): #last_of_type] + expected: FAIL + + [Prepend span (3): #nth_of_type_3n_1] + expected: FAIL + + [Prepend span (3): #nth_of_type_3n_2] + expected: FAIL + + [Prepend #div3.orange: #first_of_type] + expected: FAIL + + [Prepend #div3.orange: #last_of_type] + expected: FAIL + + [Prepend #div3.orange: #nth_of_type_3n_1] + expected: FAIL + + [Prepend #div3.orange: #nth_of_type_3n_2] + expected: FAIL + + [Prepend #div3.orange: #nth_of_type_3n] + expected: FAIL + + [Prepend span (4): #first_of_type] + expected: FAIL + + [Prepend span (4): #last_of_type] + expected: FAIL + + [Prepend span (4): #nth_of_type_3n_1] + expected: FAIL + + [Prepend span (4): #nth_of_type_3n_2] + expected: FAIL + + [Prepend span (4): #nth_of_type_3n] + expected: FAIL + + [Prepend #div4: #last_of_type] + expected: FAIL + + [Prepend #div4: #nth_of_type_3n_1] + expected: FAIL + + [Prepend #div4: #nth_of_type_3n_2] + expected: FAIL + + [Prepend #div4: #nth_of_type_3n] + expected: FAIL + + [Prepend span (5): #last_of_type] + expected: FAIL + + [Prepend span (5): #nth_of_type_3n_1] + expected: FAIL + + [Prepend span (5): #nth_of_type_3n_2] + expected: FAIL + + [Prepend span (5): #nth_of_type_3n] + expected: FAIL + + [Prepend #div5: #last_of_type] + expected: FAIL + + [Prepend #div5: #nth_of_type_3n_1] + expected: FAIL + + [Prepend #div5: #nth_of_type_3n_2] + expected: FAIL + + [Prepend #div5: #nth_of_type_3n] + expected: FAIL + + [Prepend span (6): #last_of_type] + expected: FAIL + + [Prepend span (6): #nth_of_type_3n_1] + expected: FAIL + + [Prepend span (6): #nth_of_type_3n_2] + expected: FAIL + + [Prepend span (6): #nth_of_type_3n] + expected: FAIL + + [Remove #div1: #last_of_type] + expected: FAIL + + [Remove #div1: #nth_of_type_3n_1] + expected: FAIL + + [Remove #div1: #nth_of_type_3n] + expected: FAIL + + [Remove #div2: #last_of_type] + expected: FAIL + + [Remove #div2: #nth_of_type_3n] + expected: FAIL + + [Remove #div4: #only_of_type] expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/is-where-basic.html.ini b/tests/wpt/metadata/css/selectors/is-where-basic.html.ini index 4591e9d6ee4..0ff9dc76ce8 100644 --- a/tests/wpt/metadata/css/selectors/is-where-basic.html.ini +++ b/tests/wpt/metadata/css/selectors/is-where-basic.html.ini @@ -1,5 +1,45 @@ [is-where-basic.html] - expected: ERROR [:is() matches expected elements] expected: FAIL + [:is(#a) matches expected elements] + expected: FAIL + + [:is(#a, #f) matches expected elements] + expected: FAIL + + [:is(#a, #c) :where(#a #d, #c #f) matches expected elements] + expected: FAIL + + [#c > :is(#c > #f) matches expected elements] + expected: FAIL + + [#c > :is(#b > #f) matches expected elements] + expected: FAIL + + [#a div:is(#d) matches expected elements] + expected: FAIL + + [:is(div) > div matches expected elements] + expected: FAIL + + [:is(*) > div matches expected elements] + expected: FAIL + + [:is(*) div matches expected elements] + expected: FAIL + + [div > :where(#e, #f) matches expected elements] + expected: FAIL + + [div > :where(*) matches expected elements] + expected: FAIL + + [:is(*) > :where(*) matches expected elements] + expected: FAIL + + [:is(#a + #b) + :is(#c) matches expected elements] + expected: FAIL + + [:is(#a, #b) + div matches expected elements] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/is-where-not.html.ini b/tests/wpt/metadata/css/selectors/is-where-not.html.ini index aa03f8b97cd..97a2fd2f3be 100644 --- a/tests/wpt/metadata/css/selectors/is-where-not.html.ini +++ b/tests/wpt/metadata/css/selectors/is-where-not.html.ini @@ -1,2 +1,54 @@ [is-where-not.html] - expected: ERROR + [:not(:is(#a)) matches expected elements] + expected: FAIL + + [:not(:where(#b)) matches expected elements] + expected: FAIL + + [:not(:where(:root #c)) matches expected elements] + expected: FAIL + + [:not(:is(#a, #b)) matches expected elements] + expected: FAIL + + [:not(:is(#b div)) matches expected elements] + expected: FAIL + + [:not(:is(#a div, div + div)) matches expected elements] + expected: FAIL + + [:not(:is(span)) matches expected elements] + expected: FAIL + + [:not(:is(div)) matches expected elements] + expected: FAIL + + [:not(:is(*|div)) matches expected elements] + expected: FAIL + + [:not(:is(*|*)) matches expected elements] + expected: FAIL + + [:not(:is(*)) matches expected elements] + expected: FAIL + + [:not(:is(svg|div)) matches expected elements] + expected: FAIL + + [:not(:is(:not(div))) matches expected elements] + expected: FAIL + + [:not(:is(span, b, i)) matches expected elements] + expected: FAIL + + [:not(:is(span, b, i, div)) matches expected elements] + expected: FAIL + + [:not(:is(#b ~ div div, * + #c)) matches expected elements] + expected: FAIL + + [:not(:is(div > :not(#e))) matches expected elements] + expected: FAIL + + [:not(:is(div > :not(:where(#e, #f)))) matches expected elements] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/missing-right-token.html.ini b/tests/wpt/metadata/css/selectors/missing-right-token.html.ini deleted file mode 100644 index 881385ab4a0..00000000000 --- a/tests/wpt/metadata/css/selectors/missing-right-token.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[missing-right-token.html] - [attribute selectors with missing right tokens succeed] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/not-complex.html.ini b/tests/wpt/metadata/css/selectors/not-complex.html.ini deleted file mode 100644 index 3ada8da5b89..00000000000 --- a/tests/wpt/metadata/css/selectors/not-complex.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[not-complex.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/selectors/not-specificity.html.ini b/tests/wpt/metadata/css/selectors/not-specificity.html.ini deleted file mode 100644 index f4dad41b375..00000000000 --- a/tests/wpt/metadata/css/selectors/not-specificity.html.ini +++ /dev/null @@ -1,25 +0,0 @@ -[not-specificity.html] - [:not(span, :not(:not(.a#foo)), p) wins over :not(span, #foo, p)] - expected: FAIL - - [:not(div#foo) wins over :not(#foo)] - expected: FAIL - - [:not(span, li, p) wins over :not(span, lo, p)] - expected: FAIL - - [:not(#foo) wins over :not(.foo)] - expected: FAIL - - [:not(span + span) wins over :not(span)] - expected: FAIL - - [:not(.bar, #foo) has same specificity as :not(#foo, .bar)] - expected: FAIL - - [:not(.bar, #foo) wins over :not(.foo, .bar)] - expected: FAIL - - [:not(span, #foo, p) wins over :not(span, :where(.a#foo), p)] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/nth-of-type-namespace.html.ini b/tests/wpt/metadata/css/selectors/nth-of-type-namespace.html.ini deleted file mode 100644 index 41609fb11fc..00000000000 --- a/tests/wpt/metadata/css/selectors/nth-of-type-namespace.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[nth-of-type-namespace.html] - expected: ERROR diff --git a/tests/wpt/metadata/css/selectors/selectors-case-sensitive-001.html.ini b/tests/wpt/metadata/css/selectors/selectors-case-sensitive-001.html.ini deleted file mode 100644 index 809a1d9ef46..00000000000 --- a/tests/wpt/metadata/css/selectors/selectors-case-sensitive-001.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[selectors-case-sensitive-001.html] - expected: ERROR - [Test element names are case-insensitive only in ASCII range] - expected: FAIL - diff --git a/tests/wpt/metadata/css/selectors/visited-inheritance.html.ini b/tests/wpt/metadata/css/selectors/visited-inheritance.html.ini deleted file mode 100644 index db2bd591042..00000000000 --- a/tests/wpt/metadata/css/selectors/visited-inheritance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[visited-inheritance.html] - expected: FAIL diff --git a/tests/wpt/metadata/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html.ini b/tests/wpt/metadata/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html.ini deleted file mode 100644 index 42d3c4a7535..00000000000 --- a/tests/wpt/metadata/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html] - [connectedCallback] - expected: FAIL - - [attributeChangedCallback] - expected: FAIL - - [disconnectedCallback] - expected: FAIL - - [adoptedCallback] - expected: FAIL diff --git a/tests/wpt/metadata/dom/events/EventListener-handleEvent-cross-realm.html.ini b/tests/wpt/metadata/dom/events/EventListener-handleEvent-cross-realm.html.ini deleted file mode 100644 index 3f4a6c57d3b..00000000000 --- a/tests/wpt/metadata/dom/events/EventListener-handleEvent-cross-realm.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[EventListener-handleEvent-cross-realm.html] - [EventListener is cross-realm plain object without 'handleEvent' property] - expected: FAIL - - [EventListener is cross-realm plain object with non-callable 'handleEvent' property] - expected: FAIL - - [EventListener is cross-realm plain object with revoked Proxy as 'handleEvent' property] - expected: FAIL - - [EventListener is cross-realm non-callable revoked Proxy] - expected: FAIL - - [EventListener is cross-realm callable revoked Proxy] - expected: FAIL diff --git a/tests/wpt/metadata/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html.ini b/tests/wpt/metadata/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html.ini deleted file mode 100644 index 48b966cdc23..00000000000 --- a/tests/wpt/metadata/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[event-global-is-still-set-when-coercing-beforeunload-result.html] - [window.event is still set when 'beforeunload' result is coerced to string] - expected: FAIL diff --git a/tests/wpt/metadata/dom/nodes/remove-and-adopt-thcrash.html.ini b/tests/wpt/metadata/dom/nodes/remove-and-adopt-thcrash.html.ini deleted file mode 100644 index 74a0199ef5c..00000000000 --- a/tests/wpt/metadata/dom/nodes/remove-and-adopt-thcrash.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[remove-and-adopt-thcrash.html] - [Check that removing a node and then adopting its parent into a different window/document doesn't crash.] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html.ini b/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html.ini deleted file mode 100644 index 12902cd2912..00000000000 --- a/tests/wpt/metadata/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[TreeWalker-acceptNode-filter-cross-realm.html] - [NodeFilter is cross-realm plain object without 'acceptNode' property] - expected: FAIL - - [NodeFilter is cross-realm plain object with non-callable 'acceptNode' property] - expected: FAIL - - [NodeFilter is cross-realm plain object with revoked Proxy as 'acceptNode' property] - expected: FAIL - - [NodeFilter is cross-realm non-callable revoked Proxy] - expected: FAIL - - [NodeFilter is cross-realm callable revoked Proxy] - expected: FAIL diff --git a/tests/wpt/metadata/fetch/stale-while-revalidate/stale-image.html.ini b/tests/wpt/metadata/fetch/stale-while-revalidate/stale-image.html.ini index 86b30d7f0dd..e95e391fd91 100644 --- a/tests/wpt/metadata/fetch/stale-while-revalidate/stale-image.html.ini +++ b/tests/wpt/metadata/fetch/stale-while-revalidate/stale-image.html.ini @@ -1,4 +1,4 @@ [stale-image.html] + expected: TIMEOUT [Cache returns stale resource] - expected: FAIL - + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html.ini deleted file mode 100644 index a04d59899db..00000000000 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[history-traversal-navigate-parent-while-child-loading.html] - [pushState() in parent while child is doing initial navigation, then go back] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html.ini index d8bec72308d..6ac54926dad 100644 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html.ini +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html.ini @@ -1,3 +1,4 @@ [history-traversal-navigates-multiple-frames.html] + expected: TIMEOUT [A history traversal should be able to navigate a parent and child simultaneously] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini deleted file mode 100644 index d8db442fa5f..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_back_cross_realm_method.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[history_back_cross_realm_method.html] - [history.back() uses this's associated document's browsing context to determine if navigation is allowed] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html.ini deleted file mode 100644 index 9f3058078ea..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[history_forward_cross_realm_method.html] - [history.forward() uses this's associated document's browsing context to determine if navigation is allowed] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_cross_realm_method.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_cross_realm_method.html.ini deleted file mode 100644 index e5412ef71c4..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_cross_realm_method.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[history_go_cross_realm_method.html] - [history.go() uses this's associated document's browsing context to determine if navigation is allowed] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html.ini deleted file mode 100644 index 1a26efef82d..00000000000 --- a/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[window-named-properties.html] - [Static name on the prototype] - expected: FAIL - - [Static name] - expected: FAIL - - [Static id] - expected: FAIL - - [Dynamic name] - expected: FAIL - - [duplicate property names] - expected: FAIL - - [constructor] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-properties.https.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-properties.https.html.ini deleted file mode 100644 index 6a55eb03c82..00000000000 --- a/tests/wpt/metadata/html/browsers/the-window-object/window-properties.https.html.ini +++ /dev/null @@ -1,43 +0,0 @@ -[window-properties.https.html] - expected: ERROR - [Window method: focus] - expected: FAIL - - [Window method: blur] - expected: FAIL - - [Window method: print] - expected: FAIL - - [Window readonly attribute: applicationCache] - expected: FAIL - - [Window attribute: onmousewheel] - expected: FAIL - - [Window replaceable attribute: locationbar] - expected: FAIL - - [Window replaceable attribute: menubar] - expected: FAIL - - [Window replaceable attribute: personalbar] - expected: FAIL - - [Window replaceable attribute: scrollbars] - expected: FAIL - - [Window replaceable attribute: statusbar] - expected: FAIL - - [Window replaceable attribute: toolbar] - expected: FAIL - - [Window replaceable attribute: external] - expected: FAIL - - [Window replaceable attribute: screenTop] - expected: FAIL - - [Window replaceable attribute: screenLeft] - expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-prototype-chain.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-prototype-chain.html.ini deleted file mode 100644 index 1ef978a0f91..00000000000 --- a/tests/wpt/metadata/html/browsers/the-window-object/window-prototype-chain.html.ini +++ /dev/null @@ -1,11 +0,0 @@ -[window-prototype-chain.html] - type: testharness - [Global scope polluter] - expected: FAIL - - [EventTarget.prototype] - expected: FAIL - - [Object.prototype] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini deleted file mode 100644 index 8bdf0f7bd08..00000000000 --- a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[frameElement.sub.html] - [The window's frameElement attribute must return its container element if it is a nested browsing context] - expected: FAIL - - [The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin] - expected: FAIL - diff --git a/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html.ini b/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html.ini new file mode 100644 index 00000000000..3b5c4cfa6b3 --- /dev/null +++ b/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html.ini @@ -0,0 +1,2 @@ +[direction-inherit-rtl.html] + expected: FAIL diff --git a/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html.ini b/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html.ini new file mode 100644 index 00000000000..850216c2612 --- /dev/null +++ b/tests/wpt/metadata/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html.ini @@ -0,0 +1,2 @@ +[direction-rtl.html] + expected: FAIL diff --git a/tests/wpt/metadata/html/dom/aria-element-reflection.html.ini b/tests/wpt/metadata/html/dom/aria-element-reflection.html.ini deleted file mode 100644 index 068b277bbff..00000000000 --- a/tests/wpt/metadata/html/dom/aria-element-reflection.html.ini +++ /dev/null @@ -1,75 +0,0 @@ -[aria-element-reflection.html] - [aria-activedescendant element reflection] - expected: FAIL - - [If the content attribute is set directly, the IDL attribute getter always returns the first element whose ID matches the content attribute.] - expected: FAIL - - [Setting the IDL attribute to an element which is not the first element in DOM order with its ID causes the content attribute to be an empty string] - expected: FAIL - - [Setting an element reference that crosses into a shadow tree is disallowed, but setting one that is in a shadow inclusive ancestor is allowed.] - expected: FAIL - - [aria-errormessage] - expected: FAIL - - [aria-details] - expected: FAIL - - [Deleting a reflected element should return null for the IDL attribute and the content attribute will be empty.] - expected: FAIL - - [Changing the ID of an element doesn't lose the reference.] - expected: FAIL - - [Reparenting an element into a descendant shadow scope hides the element reference.] - expected: FAIL - - [Reparenting referenced element cannot cause retargeting of reference.] - expected: FAIL - - [Element reference set in invalid scope remains intact throughout move to valid scope.] - expected: FAIL - - [aria-labelledby.] - expected: FAIL - - [aria-controls.] - expected: FAIL - - [aria-describedby.] - expected: FAIL - - [aria-flowto.] - expected: FAIL - - [aria-owns.] - expected: FAIL - - [shadow DOM behaviour for FrozenArray element reflection.] - expected: FAIL - - [Moving explicitly set elements across shadow DOM boundaries.] - expected: FAIL - - [Moving explicitly set elements around within the same scope, and removing from the DOM.] - expected: FAIL - - [Reparenting.] - expected: FAIL - - [Attaching element reference before it's inserted into the DOM.] - expected: FAIL - - [Cross-document references and moves.] - expected: FAIL - - [Caching invariant different attributes.] - expected: FAIL - - [Caching invariant different elements.] - expected: FAIL - - [ariaErrorMessageElement is not defined] - expected: FAIL diff --git a/tests/wpt/metadata/html/dom/elements/images/bypass-cache-revalidation.html.ini b/tests/wpt/metadata/html/dom/elements/images/bypass-cache-revalidation.html.ini deleted file mode 100644 index 6c43c977094..00000000000 --- a/tests/wpt/metadata/html/dom/elements/images/bypass-cache-revalidation.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[bypass-cache-revalidation.html] - [Images can bypass no-cache] - expected: FAIL - diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/form-in-tables.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/form-in-tables.html.ini index 0e5df605971..f612da8cc7c 100644 --- a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/form-in-tables.html.ini +++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/form-in-tables.html.ini @@ -1,5 +1,33 @@ [form-in-tables.html] - expected: ERROR [UA style for form in table elements] expected: FAIL + [Computed display of form inside TABLE should be 'none'] + expected: FAIL + + [Computed display of form inside THEAD should be 'none'] + expected: FAIL + + [Computed display of form inside TBODY should be 'none'] + expected: FAIL + + [Computed display of form inside TFOOT should be 'none'] + expected: FAIL + + [Computed display of form inside TR should be 'none'] + expected: FAIL + + [Computed display of form inside TABLE should be 'none' (!important UA style))] + expected: FAIL + + [Computed display of form inside THEAD should be 'none' (!important UA style))] + expected: FAIL + + [Computed display of form inside TBODY should be 'none' (!important UA style))] + expected: FAIL + + [Computed display of form inside TFOOT should be 'none' (!important UA style))] + expected: FAIL + + [Computed display of form inside TR should be 'none' (!important UA style))] + expected: FAIL diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html.ini deleted file mode 100644 index 8a0f2895ba5..00000000000 --- a/tests/wpt/metadata/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html.ini +++ /dev/null @@ -1,16 +0,0 @@ -[table-ua-stylesheet.html] - [Computed 'display' on table should match html spec] - expected: FAIL - - [Computed 'box-sizing' on table should match html spec] - expected: FAIL - - [Computed 'border-collapse' on table should match html spec] - expected: FAIL - - [Computed 'text-indent' on table should match html spec] - expected: FAIL - - [Computed 'border-spacing' on table should match html spec] - expected: FAIL - diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini deleted file mode 100644 index 9c5e9de0c8e..00000000000 --- a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[img-alt-crash-001.html] - [Should not crash.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html.ini deleted file mode 100644 index 8f6ec7eaf8f..00000000000 --- a/tests/wpt/metadata/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[cross-domain-iframe.sub.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-001.html.ini b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-001.html.ini index 605ecd933a7..a15e196e8fc 100644 --- a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-001.html.ini +++ b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-001.html.ini @@ -1,2 +1,2 @@ [appearance-animation-001.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-002.html.ini b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-002.html.ini new file mode 100644 index 00000000000..fb11e60c0eb --- /dev/null +++ b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-animation-002.html.ini @@ -0,0 +1,2 @@ +[appearance-animation-002.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-001.html.ini b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-001.html.ini index e6ce06f2c0f..4d7f16342fb 100644 --- a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-001.html.ini +++ b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-001.html.ini @@ -1,2 +1,2 @@ [appearance-transition-001.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-002.html.ini b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-002.html.ini index 7f7fef51818..a5468b7465a 100644 --- a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-002.html.ini +++ b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-002.html.ini @@ -1,2 +1,2 @@ [appearance-transition-002.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-003.html.ini b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-003.html.ini index e6c40338141..784ec6e4053 100644 --- a/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-003.html.ini +++ b/tests/wpt/metadata/html/rendering/widgets/appearance/appearance-transition-003.html.ini @@ -1,2 +1,2 @@ [appearance-transition-003.html] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/rendering/widgets/the-select-element/select-invalidation.html.ini b/tests/wpt/metadata/html/rendering/widgets/the-select-element/select-invalidation.html.ini deleted file mode 100644 index 0e4cc405858..00000000000 --- a/tests/wpt/metadata/html/rendering/widgets/the-select-element/select-invalidation.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[select-invalidation.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html.ini deleted file mode 100644 index cf26762b950..00000000000 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[base_target_does_not_affect_iframe_src_navigation.html] - [base_target_does_not_affect_iframe_src_navigation] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html.ini deleted file mode 100644 index 6470ba6246c..00000000000 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[base_target_does_not_affect_location_assignment.html] - [base_target_does_not_affect_location_assignment] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html.ini index 8b7ac783be2..9968da4f473 100644 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html.ini +++ b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html.ini @@ -1,5 +1,24 @@ [meta-color-scheme-attribute-changes.html] - expected: ERROR [Meta color-scheme initially 'dark'.] expected: FAIL + [Removed name attribute from meta color-scheme.] + expected: FAIL + + [Set meta name to color-scheme.] + expected: FAIL + + [Set content attribute of meta color-scheme to empty string.] + expected: FAIL + + [Set content attribute of meta color-scheme to an invalid value.] + expected: FAIL + + [Set content attribute of meta color-scheme to 'light'.] + expected: FAIL + + [Set content attribute of meta color-scheme to 'dark'.] + expected: FAIL + + [Removed the content attribute of meta color-scheme.] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html.ini index 97b340f45f5..334710c699e 100644 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html.ini +++ b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html.ini @@ -1,4 +1,3 @@ [meta-color-scheme-normal-descendant-change.html] - expected: ERROR - [Normal initially dark] + [Normal should change to light from page color schemes] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html.ini index 13cf48e88e9..d3a92d9b364 100644 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html.ini +++ b/tests/wpt/metadata/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html.ini @@ -1,5 +1,9 @@ [meta-color-scheme-remove.html] - expected: ERROR [First meta applies.] expected: FAIL + [Second meta applies after first one is removed.] + expected: FAIL + + [Initial color-scheme with both meta elements removed.] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html.ini deleted file mode 100644 index 40b1a99d63d..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[embed-document-under-content-visibility-focus.html] - expected: ERROR diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html.ini deleted file mode 100644 index c3ffe398e16..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[embed-document-under-content-visibility-gbcr.html] - expected: ERROR diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html.ini deleted file mode 100644 index 6d62deddc8d..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[iframe-network-error.sub.html] - [navigating an existing iframe: nonexistent host] - expected: FAIL - - [navigating an existing iframe: X-Frame-Options prevents embedding] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html.ini deleted file mode 100644 index d20ef8fa0b9..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[srcdoc-anchor.html] - [Verify srcdoc content loads when src is about:srcdoc#foo.] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html.ini deleted file mode 100644 index 803ca2b221b..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[srcdoc-attribute-reset.html] - [Verify that the frame reloads with empty body after we remove srcdoc.] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-change.html.ini deleted file mode 100644 index e3b35a275da..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-compositing-change.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html.ini deleted file mode 100644 index 75cdcf5bf04..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-compositing-large-scale-change.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html.ini deleted file mode 100644 index f26ad2af93b..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-loading-lazy-clip-path.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html.ini index 8348efac9a4..b63c1b1d0d3 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html.ini @@ -1,2 +1,2 @@ [image-loading-lazy-slow-aspect-ratio.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini index 0d5516130f6..b4de496f4a0 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini @@ -1,2 +1,2 @@ [image-loading-lazy-slow.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html.ini deleted file mode 100644 index c62c097ad80..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[image-loading-lazy-zero-intersection-area.html] - [Image with zero intersection area is lazy-loaded] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html.ini deleted file mode 100644 index c93cf03b12d..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-loading-subpixel-clip.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html.ini deleted file mode 100644 index ca01205dd7c..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[form-double-submit-multiple-targets.html] - expected: ERROR - [Verifies that one form used to target multiple frames in succession navigates all of them.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html.ini deleted file mode 100644 index e1f84807421..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[form-double-submit-to-different-origin-frame.html] - [default submit action should supersede onclick submit() for cross-origin iframes] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini deleted file mode 100644 index b4b7cecba9e..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[reparent-form-during-planned-navigation-task.html] - [reparent-form-during-planned-navigation-task] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html.ini b/tests/wpt/metadata/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html.ini deleted file mode 100644 index 47d3066b0d8..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[button-willvalidate-readonly-attribute.html] - [Button element with "readonly" attribute shouldn't be barred from constraint validation] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html.ini deleted file mode 100644 index 35de920e4d7..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[datetime-local-trailing-zeros.html] - [Verifies that trailing zeros in the milliseconds portion of the date strings are removed.] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/radio-morphed.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/radio-morphed.html.ini deleted file mode 100644 index bfe62c08bba..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-input-element/radio-morphed.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[radio-morphed.html] - [Setting type attribute must unset checkedness of other elements] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html.ini b/tests/wpt/metadata/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html.ini deleted file mode 100644 index b78d2370196..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[show-picker-cross-origin-iframe.html] - [Test showPicker() called from cross-origin iframe] - expected: FAIL - - [Test showPicker() called from cross-origin iframe 1] - expected: FAIL - - [Test showPicker() called from cross-origin iframe 2] - expected: FAIL - - [Test showPicker() called from cross-origin iframe 3] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/the-progress-element/progress.html.ini b/tests/wpt/metadata/html/semantics/forms/the-progress-element/progress.html.ini deleted file mode 100644 index 7f7cd8394a9..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-progress-element/progress.html.ini +++ /dev/null @@ -1,35 +0,0 @@ -[progress.html] - type: testharness - [Indeterminate progress bar should have position -1] - expected: FAIL - - [Revoming the value attribute makes an intermediate progress bar, which should have position -1] - expected: FAIL - - [Determinate progress bar should have fractional position] - expected: FAIL - - [Indeterminate progress bar should have value 0] - expected: FAIL - - [Value must equal max if the parsed value is larger than max] - expected: FAIL - - [Max must be 1 by default] - expected: FAIL - - [Max must be 1 by default, even if value is specified] - expected: FAIL - - [Max must be 1 if max value is invalid] - expected: FAIL - - [Max must be 1 if the parsed max value is less than or equal to zero] - expected: FAIL - - [Value must be 0 if value is invalid] - expected: FAIL - - [Value must be 0 if the parsed value is less than or equal to zero] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html.ini b/tests/wpt/metadata/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html.ini deleted file mode 100644 index 650939ee62e..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[select-willvalidate-readonly-attribute.html] - [Select element with "readonly" attribute shouldn't be barred from constraint validation] - expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html.ini index deb521fe030..b8307c804a7 100644 --- a/tests/wpt/metadata/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html.ini +++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html.ini @@ -1,2 +1,21 @@ [inertness-with-modal-dialogs-and-iframes.html] - expected: ERROR + [Modal dialog in the outer iframe marks outer nodes in that iframe as inert.] + expected: FAIL + + [Modal dialog in the inner iframe marks outer nodes in that iframe as inert.] + expected: FAIL + + [Modal dialogs in both iframes mark outer nodes in these iframes as inert.] + expected: FAIL + + [Modal dialog in the main document marks outer nodes as inert. Contents of the outer iframe aren't marked as inert.] + expected: FAIL + + [Modal dialogs in the main document and inner iframe mark outer nodes as inert. Contents of the outer iframe aren't marked as inert.] + expected: FAIL + + [Modal dialogs in the main document and outer iframe mark outer nodes as inert. Contents of the outer iframe aren't marked as inert.] + expected: FAIL + + [Modal dialogs in the main document and both iframes mark outer nodes as inert. Contents of the outer iframe aren't marked as inert.] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-stacking.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-stacking.html.ini index 92b993d20ae..1d0aecb8a78 100644 --- a/tests/wpt/metadata/html/semantics/popovers/popover-stacking.html.ini +++ b/tests/wpt/metadata/html/semantics/popovers/popover-stacking.html.ini @@ -1,5 +1,4 @@ [popover-stacking.html] - expected: ERROR [Direct DOM children] expected: FAIL @@ -23,3 +22,12 @@ [nested popovertarget attribute relationship] expected: FAIL + + [more complex nesting, all using anchor ancestry] + expected: FAIL + + [popovers should be closed by dialogs] + expected: FAIL + + [dialogs should not be closed by popovers] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html.ini b/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html.ini deleted file mode 100644 index 667f1f58139..00000000000 --- a/tests/wpt/metadata/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[placeholder-shown-type-change.html] - type: testharness - [Evaluation of :placeholder-shown changes for input type change.] - expected: FAIL - diff --git a/tests/wpt/metadata/html/syntax/serializing-html-fragments/initial-linefeed-pre.html.ini b/tests/wpt/metadata/html/syntax/serializing-html-fragments/initial-linefeed-pre.html.ini deleted file mode 100644 index 56b03113d58..00000000000 --- a/tests/wpt/metadata/html/syntax/serializing-html-fragments/initial-linefeed-pre.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[initial-linefeed-pre.html] - type: testharness - [outer div] - expected: FAIL - - [inner div] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html.ini deleted file mode 100644 index 6d5e8a10291..00000000000 --- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[compile-event-handler-lexical-scopes-form-owner.html] - [ has a form owner] - expected: FAIL - - [ has a form owner] - expected: FAIL - - [
doesn't have a form owner] - expected: FAIL - - [form-associated has a form owner] - expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html.ini deleted file mode 100644 index d7242dd4451..00000000000 --- a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[frameset-element-synthetic-errorevent.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html.ini deleted file mode 100644 index 101afa1d455..00000000000 --- a/tests/wpt/metadata/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[frameset-element-synthetic-event.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-001.html.ini b/tests/wpt/metadata/quirks/unitless-length/excluded-properties-001.html.ini deleted file mode 100644 index 17feaebfc09..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-001.html.ini +++ /dev/null @@ -1,166 +0,0 @@ -[excluded-properties-001.html] - [Property grid-auto-rows does not support quirky length] - expected: FAIL - - [Property background-position-x does not support quirky length] - expected: FAIL - - [Property scroll-padding-left does not support quirky length] - expected: FAIL - - [Property grid-template-rows does not support quirky length] - expected: FAIL - - [Property padding-block-end does not support quirky length] - expected: FAIL - - [Property inline-size does not support quirky length] - expected: FAIL - - [Property padding-inline-end does not support quirky length] - expected: FAIL - - [Property scroll-margin-inline-end does not support quirky length] - expected: FAIL - - [Property border-bottom-left-radius does not support quirky length] - expected: FAIL - - [Property scroll-padding-inline-start does not support quirky length] - expected: FAIL - - [Property offset-distance does not support quirky length] - expected: FAIL - - [Property grid-auto-columns does not support quirky length] - expected: FAIL - - [Property padding-inline-start does not support quirky length] - expected: FAIL - - [Property scroll-padding-block-end does not support quirky length] - expected: FAIL - - [Property outline-width does not support quirky length] - expected: FAIL - - [Property column-rule-width does not support quirky length] - expected: FAIL - - [Property scroll-margin-bottom does not support quirky length] - expected: FAIL - - [Property grid-template-columns does not support quirky length] - expected: FAIL - - [Property perspective does not support quirky length] - expected: FAIL - - [Property margin-block-end does not support quirky length] - expected: FAIL - - [Property margin-block-start does not support quirky length] - expected: FAIL - - [Property scroll-margin-right does not support quirky length] - expected: FAIL - - [Property margin-inline-end does not support quirky length] - expected: FAIL - - [Property scroll-padding-right does not support quirky length] - expected: FAIL - - [Property block-size does not support quirky length] - expected: FAIL - - [Property scroll-padding-bottom does not support quirky length] - expected: FAIL - - [Property scroll-margin-top does not support quirky length] - expected: FAIL - - [Property background-position-y does not support quirky length] - expected: FAIL - - [Property border-top-left-radius does not support quirky length] - expected: FAIL - - [Property column-width does not support quirky length] - expected: FAIL - - [Property min-block-size does not support quirky length] - expected: FAIL - - [Property outline-offset does not support quirky length] - expected: FAIL - - [Property flex-basis does not support quirky length] - expected: FAIL - - [Property scroll-padding-block-start does not support quirky length] - expected: FAIL - - [Property padding-block-start does not support quirky length] - expected: FAIL - - [Property scroll-margin-block-end does not support quirky length] - expected: FAIL - - [Property row-gap does not support quirky length] - expected: FAIL - - [Property min-inline-size does not support quirky length] - expected: FAIL - - [Property margin-inline-start does not support quirky length] - expected: FAIL - - [Property scroll-margin-inline-start does not support quirky length] - expected: FAIL - - [Property scroll-padding-top does not support quirky length] - expected: FAIL - - [Property border-bottom-right-radius does not support quirky length] - expected: FAIL - - [Property scroll-padding-inline-end does not support quirky length] - expected: FAIL - - [Property border-top-right-radius does not support quirky length] - expected: FAIL - - [Property column-gap does not support quirky length] - expected: FAIL - - [Property scroll-margin-block-start does not support quirky length] - expected: FAIL - - [Property scroll-margin-left does not support quirky length] - expected: FAIL - - [Property shape-margin does not support quirky length] - expected: FAIL - - [Property inset-inline-start does not support quirky length] - expected: FAIL - - [Property inset-block does not support quirky length] - expected: FAIL - - [Property inset-block-start does not support quirky length] - expected: FAIL - - [Property inset-inline does not support quirky length] - expected: FAIL - - [Property inset-inline-end does not support quirky length] - expected: FAIL - - [Property inset does not support quirky length] - expected: FAIL - - [Property inset-block-end does not support quirky length] - expected: FAIL - diff --git a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-002.html.ini b/tests/wpt/metadata/quirks/unitless-length/excluded-properties-002.html.ini deleted file mode 100644 index 2921e774187..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-002.html.ini +++ /dev/null @@ -1,34 +0,0 @@ -[excluded-properties-002.html] - [Property mask does not support quirky length] - expected: FAIL - - [Property background-blend-mode does not support quirky length] - expected: FAIL - - [Property transform-origin does not support quirky length] - expected: FAIL - - [Property filter does not support quirky length] - expected: FAIL - - [Property text-shadow does not support quirky length] - expected: FAIL - - [Property clip-path does not support quirky length] - expected: FAIL - - [Property column-span does not support quirky length] - expected: FAIL - - [Property background-size does not support quirky length] - expected: FAIL - - [Property box-shadow does not support quirky length] - expected: FAIL - - [Property perspective-origin does not support quirky length] - expected: FAIL - - [Property object-position does not support quirky length] - expected: FAIL - diff --git a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-003.html.ini b/tests/wpt/metadata/quirks/unitless-length/excluded-properties-003.html.ini deleted file mode 100644 index a239e5a07dd..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/excluded-properties-003.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[excluded-properties-003.html] - [inset does not support quirky length values] - expected: FAIL - diff --git a/tests/wpt/metadata/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html.ini b/tests/wpt/metadata/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html.ini index f82c62feb91..e77c06044d4 100644 --- a/tests/wpt/metadata/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html.ini +++ b/tests/wpt/metadata/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html.ini @@ -1,4 +1,3 @@ [popup-inheritance-form-submission.html] - expected: TIMEOUT [A new frame's document.referrer is correct even if its initiator frame is gone] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/resource-timing/opaque-origin.html.ini b/tests/wpt/metadata/resource-timing/opaque-origin.html.ini index 484b3d58067..39bef618ce0 100644 --- a/tests/wpt/metadata/resource-timing/opaque-origin.html.ini +++ b/tests/wpt/metadata/resource-timing/opaque-origin.html.ini @@ -1,2 +1,2 @@ [opaque-origin.html] - expected: ERROR + expected: TIMEOUT diff --git a/tests/wpt/metadata/resource-timing/resource-reload-TAO.html.ini b/tests/wpt/metadata/resource-timing/resource-reload-TAO.html.ini index 5695602f326..f408958c0d4 100644 --- a/tests/wpt/metadata/resource-timing/resource-reload-TAO.html.ini +++ b/tests/wpt/metadata/resource-timing/resource-reload-TAO.html.ini @@ -1,2 +1,3 @@ [resource-reload-TAO.html] - expected: ERROR + [Test that TAO headers are reused on reloads.] + expected: FAIL diff --git a/tests/wpt/metadata/selection/bidi/modify.tentative.html.ini b/tests/wpt/metadata/selection/bidi/modify.tentative.html.ini index 635d6931bfe..3c079543ab8 100644 --- a/tests/wpt/metadata/selection/bidi/modify.tentative.html.ini +++ b/tests/wpt/metadata/selection/bidi/modify.tentative.html.ini @@ -1,2 +1,108 @@ [modify.tentative.html] - expected: ERROR + [LTR text with left direction in ltr context] + expected: FAIL + + [RTL text with left direction in ltr context] + expected: FAIL + + [RTL+LTR text with left direction in ltr context] + expected: FAIL + + [LTR+RTL text with left direction in ltr context] + expected: FAIL + + [LTR+RTL+LTR text with left direction in ltr context] + expected: FAIL + + [RTL+LTR+RTL text with left direction in ltr context] + expected: FAIL + + [LTR text with right direction in ltr context] + expected: FAIL + + [RTL text with right direction in ltr context] + expected: FAIL + + [RTL+LTR text with right direction in ltr context] + expected: FAIL + + [LTR+RTL text with right direction in ltr context] + expected: FAIL + + [LTR+RTL+LTR text with right direction in ltr context] + expected: FAIL + + [RTL+LTR+RTL text with right direction in ltr context] + expected: FAIL + + [LTR text with left direction in rtl context] + expected: FAIL + + [RTL text with left direction in rtl context] + expected: FAIL + + [RTL+LTR text with left direction in rtl context] + expected: FAIL + + [LTR+RTL text with left direction in rtl context] + expected: FAIL + + [LTR+RTL+LTR text with left direction in rtl context] + expected: FAIL + + [RTL+LTR+RTL text with left direction in rtl context] + expected: FAIL + + [LTR text with right direction in rtl context] + expected: FAIL + + [RTL text with right direction in rtl context] + expected: FAIL + + [RTL+LTR text with right direction in rtl context] + expected: FAIL + + [LTR+RTL text with right direction in rtl context] + expected: FAIL + + [LTR+RTL+LTR text with right direction in rtl context] + expected: FAIL + + [RTL+LTR+RTL text with right direction in rtl context] + expected: FAIL + + [LTR text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL+LTR text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [LTR+RTL text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [LTR+RTL+LTR text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL+LTR+RTL text with left direction in ltr context (which was previously rtl)] + expected: FAIL + + [LTR text with right direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL text with right direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL+LTR text with right direction in ltr context (which was previously rtl)] + expected: FAIL + + [LTR+RTL text with right direction in ltr context (which was previously rtl)] + expected: FAIL + + [LTR+RTL+LTR text with right direction in ltr context (which was previously rtl)] + expected: FAIL + + [RTL+LTR+RTL text with right direction in ltr context (which was previously rtl)] + expected: FAIL diff --git a/tests/wpt/metadata/selection/caret/empty-elements.html.ini b/tests/wpt/metadata/selection/caret/empty-elements.html.ini deleted file mode 100644 index 49f76f10d9c..00000000000 --- a/tests/wpt/metadata/selection/caret/empty-elements.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[empty-elements.html] - [Selection can be placed inside the empty element] - expected: FAIL diff --git a/tests/wpt/metadata/selection/contenteditable/cefalse-on-boundaries.html.ini b/tests/wpt/metadata/selection/contenteditable/cefalse-on-boundaries.html.ini deleted file mode 100644 index a140cd5cd2f..00000000000 --- a/tests/wpt/metadata/selection/contenteditable/cefalse-on-boundaries.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[cefalse-on-boundaries.html] - [Selection can start on cE=false element at the beginning of the cE=true element] - expected: FAIL - - [Selection can end on cE=false element at the end of the cE=true element] - expected: FAIL - - [Selection can start and end on cE=false elements at the boundaries of cE=true element] - expected: FAIL - - [Range#selectNodeContents() correctly select contents of cE=true element with cE=false elements on boundaries] - expected: FAIL diff --git a/tests/wpt/metadata/selection/contenteditable/modify.tentative.html.ini b/tests/wpt/metadata/selection/contenteditable/modify.tentative.html.ini index 9b201e3333c..1bc35a8cafe 100644 --- a/tests/wpt/metadata/selection/contenteditable/modify.tentative.html.ini +++ b/tests/wpt/metadata/selection/contenteditable/modify.tentative.html.ini @@ -1,4 +1,45 @@ [modify.tentative.html] - expected: ERROR [Selection.modify() must not select outside of the host] expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: inline] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: inline] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: inline-block] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: inline-block] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: suffix only] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: suffix only] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: prefix only] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: prefix only] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: standalone] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: standalone] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: inline linebreak] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: inline linebreak] + expected: FAIL + + [Selection.modify('move', 'forward', 'lineboundary') must be within the inline editing host: inline-block linebreak] + expected: FAIL + + [Selection.modify('move', 'backward', 'lineboundary') must be within the inline editing host: inline-block linebreak] + expected: FAIL diff --git a/tests/wpt/metadata/selection/textcontrols/onselectionchange-content-attribute.html.ini b/tests/wpt/metadata/selection/textcontrols/onselectionchange-content-attribute.html.ini deleted file mode 100644 index c73b48aac91..00000000000 --- a/tests/wpt/metadata/selection/textcontrols/onselectionchange-content-attribute.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[onselectionchange-content-attribute.html] - [handler set from parser] - expected: FAIL diff --git a/tests/wpt/metadata/selection/textcontrols/selectionchange-bubble.html.ini b/tests/wpt/metadata/selection/textcontrols/selectionchange-bubble.html.ini index 332c7e2b77d..21e1e28f7f5 100644 --- a/tests/wpt/metadata/selection/textcontrols/selectionchange-bubble.html.ini +++ b/tests/wpt/metadata/selection/textcontrols/selectionchange-bubble.html.ini @@ -1,2 +1,13 @@ [selectionchange-bubble.html] - expected: ERROR + expected: TIMEOUT + [selectionchange bubbles from input] + expected: TIMEOUT + + [selectionchange bubbles from input when focused] + expected: NOTRUN + + [selectionchange bubbles from textarea] + expected: NOTRUN + + [selectionchange bubbles from textarea when focused] + expected: NOTRUN diff --git a/tests/wpt/metadata/selection/textcontrols/selectionchange.html.ini b/tests/wpt/metadata/selection/textcontrols/selectionchange.html.ini index 0f02b5a6abc..e56b4784364 100644 --- a/tests/wpt/metadata/selection/textcontrols/selectionchange.html.ini +++ b/tests/wpt/metadata/selection/textcontrols/selectionchange.html.ini @@ -1,2 +1,132 @@ [selectionchange.html] - expected: ERROR + [Modifying selectionStart value of the input element] + expected: FAIL + + [Modifying selectionEnd value of the input element] + expected: FAIL + + [Calling setSelectionRange() on the input element] + expected: FAIL + + [Calling select() on the input element] + expected: FAIL + + [Calling setRangeText() on the input element] + expected: FAIL + + [Setting the same selectionStart value twice on the input element] + expected: FAIL + + [Setting the same selectionEnd value twice on the input element] + expected: FAIL + + [Setting the same selection range twice on the input element] + expected: FAIL + + [Calling select() twice on the input element] + expected: FAIL + + [Calling setRangeText() after select() on the input element] + expected: FAIL + + [Calling setRangeText() repeatedly on the input element] + expected: FAIL + + [Modifying selectionStart value of the disconnected input element] + expected: FAIL + + [Modifying selectionEnd value of the disconnected input element] + expected: FAIL + + [Calling setSelectionRange() on the disconnected input element] + expected: FAIL + + [Calling select() on the disconnected input element] + expected: FAIL + + [Calling setRangeText() on the disconnected input element] + expected: FAIL + + [Setting the same selectionStart value twice on the disconnected input element] + expected: FAIL + + [Setting the same selectionEnd value twice on the disconnected input element] + expected: FAIL + + [Setting the same selection range twice on the disconnected input element] + expected: FAIL + + [Calling select() twice on the disconnected input element] + expected: FAIL + + [Calling setRangeText() after select() on the disconnected input element] + expected: FAIL + + [Calling setRangeText() repeatedly on the disconnected input element] + expected: FAIL + + [Modifying selectionStart value of the textarea element] + expected: FAIL + + [Modifying selectionEnd value of the textarea element] + expected: FAIL + + [Calling setSelectionRange() on the textarea element] + expected: FAIL + + [Calling select() on the textarea element] + expected: FAIL + + [Calling setRangeText() on the textarea element] + expected: FAIL + + [Setting the same selectionStart value twice on the textarea element] + expected: FAIL + + [Setting the same selectionEnd value twice on the textarea element] + expected: FAIL + + [Setting the same selection range twice on the textarea element] + expected: FAIL + + [Calling select() twice on the textarea element] + expected: FAIL + + [Calling setRangeText() after select() on the textarea element] + expected: FAIL + + [Calling setRangeText() repeatedly on the textarea element] + expected: FAIL + + [Modifying selectionStart value of the disconnected textarea element] + expected: FAIL + + [Modifying selectionEnd value of the disconnected textarea element] + expected: FAIL + + [Calling setSelectionRange() on the disconnected textarea element] + expected: FAIL + + [Calling select() on the disconnected textarea element] + expected: FAIL + + [Calling setRangeText() on the disconnected textarea element] + expected: FAIL + + [Setting the same selectionStart value twice on the disconnected textarea element] + expected: FAIL + + [Setting the same selectionEnd value twice on the disconnected textarea element] + expected: FAIL + + [Setting the same selection range twice on the disconnected textarea element] + expected: FAIL + + [Calling select() twice on the disconnected textarea element] + expected: FAIL + + [Calling setRangeText() after select() on the disconnected textarea element] + expected: FAIL + + [Calling setRangeText() repeatedly on the disconnected textarea element] + expected: FAIL diff --git a/tests/wpt/metadata/webidl/ecmascript-binding/invalid-this-value-cross-realm.html.ini b/tests/wpt/metadata/webidl/ecmascript-binding/invalid-this-value-cross-realm.html.ini deleted file mode 100644 index c592c227df2..00000000000 --- a/tests/wpt/metadata/webidl/ecmascript-binding/invalid-this-value-cross-realm.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[invalid-this-value-cross-realm.html] - [Cross-realm operation throws when called on incompatible object] - expected: FAIL - - [Cross-realm setter throws when called on incompatible object] - expected: FAIL diff --git a/tests/wpt/metadata/webidl/ecmascript-binding/window-named-properties-object.html.ini b/tests/wpt/metadata/webidl/ecmascript-binding/window-named-properties-object.html.ini deleted file mode 100644 index b8ca5f57086..00000000000 --- a/tests/wpt/metadata/webidl/ecmascript-binding/window-named-properties-object.html.ini +++ /dev/null @@ -1,30 +0,0 @@ -[window-named-properties-object.html] - [[[GetOwnProperty\]\] (named property visibility algorithm)] - expected: FAIL - - [[[HasProperty\]\]] - expected: FAIL - - [[[Get\]\]] - expected: FAIL - - [[[Set\]\] (direct)] - expected: FAIL - - [[[Delete\]\]] - expected: FAIL - - [[[OwnPropertyKeys\]\]] - expected: FAIL - - [[[DefineOwnProperty\]\]] - expected: FAIL - - [[[SetPrototypeOf\]\] and [[GetPrototypeOf\]\]] - expected: FAIL - - [[[PreventExtensions\]\] and [[IsExtensible\]\]] - expected: FAIL - - [[[GetOwnProperty\]\]] - expected: FAIL