From 0494bf3105f7b4ffee00c9268673531d673aec64 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Wed, 6 Nov 2024 16:43:57 +0000 Subject: [PATCH] Tests: Import all WPT css/css-nesting tests A few are skipped for now: - A few ref tests fail - Crash tests are not supported by our runner and time out - top-level-is-scope.html crashes and needs further investigation --- .../conditional-properties-ref.html | 33 +++ .../css-nesting/conditional-rules-ref.html | 64 +++++ .../css/css-nesting/has-nesting-ref.html | 8 + .../css/css-nesting/implicit-nesting-ref.html | 27 ++ .../nest-containing-forgiving-ref.html | 19 ++ .../supports-is-consistent-ref.html | 5 + .../css/css-nesting/supports-rule-ref.html | 23 ++ .../ref-filled-green-100px-square-only.html | 4 + .../css-nesting/conditional-properties.html | 34 +++ .../css/css-nesting/conditional-rules.html | 75 ++++++ .../css/css-nesting/has-nesting.html | 21 ++ .../css/css-nesting/host-nesting-001.html | 23 ++ .../css/css-nesting/host-nesting-002.html | 22 ++ .../css/css-nesting/host-nesting-003.html | 26 ++ .../css/css-nesting/host-nesting-004.html | 25 ++ .../css/css-nesting/host-nesting-005.html | 24 ++ .../css/css-nesting/implicit-nesting.html | 82 ++++++ .../nest-containing-forgiving.html | 34 +++ .../css-nesting/nesting-type-selector.html | 18 ++ .../css-nesting/supports-is-consistent.html | 17 ++ .../css/css-nesting/supports-rule.html | 55 ++++ Tests/LibWeb/TestConfig.ini | 15 ++ .../css/css-nesting/block-skipping.txt | 11 + .../implicit-nesting-ident-recovery.txt | 12 + .../css-nesting/implicit-nesting-ident.txt | 11 + .../css/css-nesting/invalid-inner-rules.txt | 12 + .../css/css-nesting/invalidation-001.txt | 11 + .../css/css-nesting/invalidation-002.txt | 11 + .../css/css-nesting/invalidation-003.txt | 11 + .../css/css-nesting/invalidation-004.txt | 11 + .../nested-declarations-cssom-whitespace.txt | 12 + .../css-nesting/nested-declarations-cssom.txt | 23 ++ .../nested-declarations-matching.txt | 21 ++ .../nested-rule-cssom-invalidation.txt | 11 + .../css/css-nesting/nesting-layer.txt | 11 + .../wpt-import/css/css-nesting/parsing.txt | 43 ++++ .../serialize-group-rules-with-decls.txt | 26 ++ .../top-level-parent-pseudo-specificity.txt | 11 + .../LibWeb/Text/input/wpt-import/common/gc.js | 52 ++++ .../css/css-nesting/block-skipping.css | 6 + .../css/css-nesting/block-skipping.html | 17 ++ .../css-nesting/delete-other-rule-crash.html | 15 ++ .../implicit-nesting-ident-recovery.html | 29 +++ .../css-nesting/implicit-nesting-ident.html | 22 ++ .../implicit-parent-insertion-crash.html | 16 ++ .../css/css-nesting/invalid-inner-rules.html | 56 +++++ .../css/css-nesting/invalidation-001.html | 33 +++ .../css/css-nesting/invalidation-002.html | 33 +++ .../css/css-nesting/invalidation-003.html | 34 +++ .../css/css-nesting/invalidation-004.html | 30 +++ .../nested-declarations-cssom-whitespace.html | 52 ++++ .../nested-declarations-cssom.html | 237 ++++++++++++++++++ .../nested-declarations-matching.html | 221 ++++++++++++++++ .../nested-rule-cssom-invalidation.html | 41 +++ .../css/css-nesting/nesting-layer.html | 52 ++++ .../wpt-import/css/css-nesting/parsing.html | 87 +++++++ .../css/css-nesting/pseudo-part-crash.html | 12 + .../css/css-nesting/pseudo-where-crash.html | 9 + .../serialize-group-rules-with-decls.html | 91 +++++++ .../css/css-nesting/top-level-is-scope.html | 30 +++ .../top-level-parent-pseudo-specificity.html | 19 ++ .../css/support/delete-other-rule-crash.css | 2 + 62 files changed, 2098 insertions(+) create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-properties-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-rules-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/has-nesting-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/implicit-nesting-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/nest-containing-forgiving-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-is-consistent-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-rule-ref.html create mode 100644 Tests/LibWeb/Ref/expected/wpt-import/css/reference/ref-filled-green-100px-square-only.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-properties.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-rules.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/has-nesting.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-001.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-002.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-003.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-004.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-005.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/implicit-nesting.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nest-containing-forgiving.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nesting-type-selector.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-is-consistent.html create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-rule.html create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/block-skipping.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-001.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-002.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-003.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-004.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-matching.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nesting-layer.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/parsing.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/serialize-group-rules-with-decls.txt create mode 100644 Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.txt create mode 100644 Tests/LibWeb/Text/input/wpt-import/common/gc.js create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.css create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/delete-other-rule-crash.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-parent-insertion-crash.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalid-inner-rules.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-001.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-002.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-003.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-004.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-matching.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nesting-layer.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/parsing.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-part-crash.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-where-crash.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/serialize-group-rules-with-decls.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-is-scope.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.html create mode 100644 Tests/LibWeb/Text/input/wpt-import/css/support/delete-other-rule-crash.css diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-properties-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-properties-ref.html new file mode 100644 index 000000000000..0285acbf33f9 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-properties-ref.html @@ -0,0 +1,33 @@ + +Properties in nested conditional rules + + + + +

Tests pass if block is green

+
+
+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-rules-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-rules-ref.html new file mode 100644 index 000000000000..c4fabd672a46 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/conditional-rules-ref.html @@ -0,0 +1,64 @@ + +Conditional rules with nesting + + + + +

Tests pass if block is green

+
+
+
+
+
+
+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/has-nesting-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/has-nesting-ref.html new file mode 100644 index 000000000000..5ab79b68f100 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/has-nesting-ref.html @@ -0,0 +1,8 @@ + +Nested has shouldn't match + + diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/implicit-nesting-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/implicit-nesting-ref.html new file mode 100644 index 000000000000..0057a67fd037 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/implicit-nesting-ref.html @@ -0,0 +1,27 @@ + +Implicit nesting + + + + +

Tests pass if block is green

+
+
+
+
+
+
+
+
+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/nest-containing-forgiving-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/nest-containing-forgiving-ref.html new file mode 100644 index 000000000000..8fb7c8674a53 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/nest-containing-forgiving-ref.html @@ -0,0 +1,19 @@ + +Nest-containing in forgiving parsing + + +

Tests pass if block is green

+
+
+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-is-consistent-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-is-consistent-ref.html new file mode 100644 index 000000000000..0eb8cd16a168 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-is-consistent-ref.html @@ -0,0 +1,5 @@ + +@supports needs to be consistent with actual nesting support + +

Test passes if this text is not red

+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-rule-ref.html b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-rule-ref.html new file mode 100644 index 000000000000..1be71b225233 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/css-nesting/supports-rule-ref.html @@ -0,0 +1,23 @@ + +@supports with nesting + + + + +

Tests pass if block is green

+
+
+
+
+ diff --git a/Tests/LibWeb/Ref/expected/wpt-import/css/reference/ref-filled-green-100px-square-only.html b/Tests/LibWeb/Ref/expected/wpt-import/css/reference/ref-filled-green-100px-square-only.html new file mode 100644 index 000000000000..82fcaa3b2aa4 --- /dev/null +++ b/Tests/LibWeb/Ref/expected/wpt-import/css/reference/ref-filled-green-100px-square-only.html @@ -0,0 +1,4 @@ + + +

Test passes if there is a filled green square.

+
diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-properties.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-properties.html new file mode 100644 index 000000000000..36f3ac802ec1 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-properties.html @@ -0,0 +1,34 @@ + +Properties in nested conditional rules + + + + + +

Tests pass if block is green

+
+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-rules.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-rules.html new file mode 100644 index 000000000000..507c0ac94a12 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/conditional-rules.html @@ -0,0 +1,75 @@ + +Conditional rules with nesting + + + + + +

Tests pass if block is green

+
+
+
+
+
+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/has-nesting.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/has-nesting.html new file mode 100644 index 000000000000..6efbac13f749 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/has-nesting.html @@ -0,0 +1,21 @@ + +Nested has shouldn't match + + + + + + diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-001.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-001.html new file mode 100644 index 000000000000..ea8b0b61707d --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-001.html @@ -0,0 +1,23 @@ + + +:host and nesting (basic) + + + + +

Test passes if there is a filled green square.

+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-002.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-002.html new file mode 100644 index 000000000000..11bc39ff0c24 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-002.html @@ -0,0 +1,22 @@ + + +:host and nesting (bare declarations) + + + + +

Test passes if there is a filled green square.

+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-003.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-003.html new file mode 100644 index 000000000000..6dd1af5fe9c7 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-003.html @@ -0,0 +1,26 @@ + + +:host and nesting (combined with something else) + + + + +

Test passes if there is a filled green square.

+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-004.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-004.html new file mode 100644 index 000000000000..5d016e933e38 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-004.html @@ -0,0 +1,25 @@ + + +:host and nesting (combined with something else, bare declarations) + + + + +

Test passes if there is a filled green square.

+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-005.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-005.html new file mode 100644 index 000000000000..f225a3811913 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/host-nesting-005.html @@ -0,0 +1,24 @@ + + +:host and nesting (with pseudos) + + + + +

Test passes if there is a filled green square.

+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/implicit-nesting.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/implicit-nesting.html new file mode 100644 index 000000000000..2567dba21f05 --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/implicit-nesting.html @@ -0,0 +1,82 @@ + +Implicit nesting + + + + + +

Tests pass if block is green

+
+
+
+
+
+
+
+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nest-containing-forgiving.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nest-containing-forgiving.html new file mode 100644 index 000000000000..f3593ae955cc --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nest-containing-forgiving.html @@ -0,0 +1,34 @@ + +Nest-containing in forgiving parsing + + + + + +

Tests pass if block is green

+
+
+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nesting-type-selector.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nesting-type-selector.html new file mode 100644 index 000000000000..f5c27f3d998b --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/nesting-type-selector.html @@ -0,0 +1,18 @@ + + +Nesting works with bare type selectors + + + + + +

Test passes if there is a filled green square.

+
diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-is-consistent.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-is-consistent.html new file mode 100644 index 000000000000..e99932ee591a --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-is-consistent.html @@ -0,0 +1,17 @@ + +@supports needs to be consistent with actual nesting support + + + + + +

Test passes if this text is not red

+ diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-rule.html b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-rule.html new file mode 100644 index 000000000000..4d33f11acf9c --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/css-nesting/supports-rule.html @@ -0,0 +1,55 @@ + +@supports with nesting + + + + + +

Tests pass if block is green

+
+
+
+
+ diff --git a/Tests/LibWeb/TestConfig.ini b/Tests/LibWeb/TestConfig.ini index 405eb45eb591..c805811ad66e 100644 --- a/Tests/LibWeb/TestConfig.ini +++ b/Tests/LibWeb/TestConfig.ini @@ -55,3 +55,18 @@ Text/input/wpt-import/html/infrastructure/safe-passing-of-structured-data/resour ; Flaky, apparently due to font loading Text/input/wpt-import/css/css-flexbox/flex-item-compressible-001.html + +; WPT ref-tests that currently fail +Ref/input/wpt-import/css/css-nesting/has-nesting.html +Ref/input/wpt-import/css/css-nesting/host-nesting-003.html +Ref/input/wpt-import/css/css-nesting/host-nesting-004.html +Ref/input/wpt-import/css/css-nesting/nest-containing-forgiving.html + +; WPT crash tests are not supported yet - and probably should go in a separate directory +Text/input/wpt-import/css/css-nesting/delete-other-rule-crash.html +Text/input/wpt-import/css/css-nesting/implicit-parent-insertion-crash.html +Text/input/wpt-import/css/css-nesting/pseudo-part-crash.html +Text/input/wpt-import/css/css-nesting/pseudo-where-crash.html + +; Currently crashes +Text/input/wpt-import/css/css-nesting/top-level-is-scope.html diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/block-skipping.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/block-skipping.txt new file mode 100644 index 000000000000..bf2217da77c4 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/block-skipping.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass CSS Nesting bug: Block ignored after lack of whitespace \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.txt new file mode 100644 index 000000000000..c62089b82b7e --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.txt @@ -0,0 +1,12 @@ +Summary + +Harness status: OK + +Rerun + +Found 2 tests + +2 Pass +Details +Result Test Name MessagePass Unknown declaration does not consume subsequent declaration +Pass Unknown declaration with blocks does not consume subsequent declaration \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident.txt new file mode 100644 index 000000000000..9f801e41dc20 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/implicit-nesting-ident.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass Nested rule starting with tag \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt new file mode 100644 index 000000000000..cf937029dbaf --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt @@ -0,0 +1,12 @@ +Summary + +Harness status: OK + +Rerun + +Found 2 tests + +2 Fail +Details +Result Test Name MessageFail Simple CSSOM manipulation of subrules +Fail Simple CSSOM manipulation of subrules 1 \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-001.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-001.txt new file mode 100644 index 000000000000..cdc3188ae136 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-001.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass CSS Selectors nested invalidation on changed parent \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-002.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-002.txt new file mode 100644 index 000000000000..cfbdc42d7ded --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-002.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass CSS Selectors nested invalidation on changed child \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-003.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-003.txt new file mode 100644 index 000000000000..deafe1e66522 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-003.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass CSS Selectors nested invalidation with :has() \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-004.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-004.txt new file mode 100644 index 000000000000..6a6420886384 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalidation-004.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass CSS Selectors nested invalidation through @media by selectorText \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.txt new file mode 100644 index 000000000000..c3676da0108e --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.txt @@ -0,0 +1,12 @@ +Summary + +Harness status: OK + +Rerun + +Found 2 tests + +2 Fail +Details +Result Test Name MessageFail Empty CSSNestedDeclarations do not affect outer serialization +Fail Empty CSSNestedDeclarations do not affect outer serialization (nested grouping rule) \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom.txt new file mode 100644 index 000000000000..ce0d62b40ab4 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-cssom.txt @@ -0,0 +1,23 @@ +Summary + +Harness status: OK + +Rerun + +Found 12 tests + +6 Pass +6 Fail +Details +Result Test Name MessageFail Trailing declarations +Fail Mixed declarations +Fail CSSNestedDeclarations.style +Pass Nested group rule +Pass Nested @scope rule +Fail Inner rule starting with an ident +Fail Inserting a CSSNestedDeclaration rule into style rule Unable to parse CSS rule. +Fail Inserting a CSSNestedDeclaration rule into nested group rule Unable to parse CSS rule. +Pass Attempting to insert a CSSNestedDeclaration rule into top-level @media rule +Pass Attempting to insert a CSSNestedDeclaration rule into a stylesheet +Pass Attempting to insert a CSSNestedDeclaration rule, empty block +Pass Attempting to insert a CSSNestedDeclaration rule, all invalid declarations \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-matching.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-matching.txt new file mode 100644 index 000000000000..17b3bb317f29 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-declarations-matching.txt @@ -0,0 +1,21 @@ +Summary + +Harness status: OK + +Rerun + +Found 11 tests + +11 Fail +Details +Result Test Name MessageFail Trailing declarations apply after any preceding rules +Fail Trailing declarations apply after any preceding rules (no leading) +Fail Trailing declarations apply after any preceding rules (multiple) +Fail Nested declarations rule has same specificity as outer selector +Fail Nested declarations rule has top-level specificity behavior +Fail Nested declarations rule has top-level specificity behavior (max matching) +Fail Bare declartaion in nested grouping rule can match pseudo-element +Fail Nested group rules have top-level specificity behavior +Fail Nested @scope rules behave like :where(:scope) +Fail Nested @scope rules behave like :where(:scope) (trailing) +Fail Nested declarations rule responds to parent selector text change \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.txt new file mode 100644 index 000000000000..0b119b35299e --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Fail +Details +Result Test Name MessageFail Nested rule responds to parent selector text change \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nesting-layer.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nesting-layer.txt new file mode 100644 index 000000000000..83300023f570 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/nesting-layer.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Pass +Details +Result Test Name MessagePass @layer can be nested \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/parsing.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/parsing.txt new file mode 100644 index 000000000000..2a3d0a1e70fc --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/parsing.txt @@ -0,0 +1,43 @@ +Summary + +Harness status: OK + +Rerun + +Found 32 tests + +31 Pass +1 Fail +Details +Result Test Name MessagePass .foo { & { color: green; }} +Pass .foo { &.bar { color: green; }} +Pass .foo { & .bar { color: green; }} +Pass .foo { & > .bar { color: green; }} +Pass .foo { > .bar { color: green; }} +Pass .foo { > & .bar { color: green; }} +Pass .foo { + .bar & { color: green; }} +Pass .foo { + .bar, .foo, > .baz { color: green; }} +Pass .foo { .foo { color: green; }} +Pass .foo { .test > & .bar { color: green; }} +Pass .foo { .foo, .foo & { color: green; }} +Pass .foo { .foo, .bar { color: green; }} +Pass .foo { :is(.bar, .baz) { color: green; }} +Pass .foo { &:is(.bar, .baz) { color: green; }} +Pass .foo { :is(.bar, &.baz) { color: green; }} +Pass .foo { &:is(.bar, &.baz) { color: green; }} +Pass .foo { div& { color: green; }} +Fail INVALID: .foo { &div { color: green; }} +Pass .foo { .class& { color: green; }} +Pass .foo { &.class { color: green; }} +Pass .foo { [attr]& { color: green; }} +Pass .foo { &[attr] { color: green; }} +Pass .foo { #id& { color: green; }} +Pass .foo { &#id { color: green; }} +Pass .foo { :hover& { color: green; }} +Pass .foo { &:hover { color: green; }} +Pass .foo { :is(div)& { color: green; }} +Pass .foo { &:is(div) { color: green; }} +Pass .foo { & .bar & .baz & .qux { color: green; }} +Pass .foo { && { color: green; }} +Pass .foo { & > section, & > article { color: green; }} +Pass .foo, .bar { & + .baz, &.qux { color: green; }} \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/serialize-group-rules-with-decls.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/serialize-group-rules-with-decls.txt new file mode 100644 index 000000000000..6f17ed4a4416 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/serialize-group-rules-with-decls.txt @@ -0,0 +1,26 @@ +Summary + +Harness status: OK + +Rerun + +Found 15 tests + +4 Pass +11 Fail +Details +Result Test Name MessageFail Declarations are serialized on one line, rules on two. +Fail Mixed declarations/rules are on two lines. +Fail Implicit rule is serialized +Fail Implicit rule not removed +Fail Implicit + empty hover rule +Fail Implicit like rule not in first position +Fail Two implicit-like rules +Fail Implicit like rule after decls +Fail Implicit like rule after decls, missing closing braces +Fail Implicit like rule with other selectors +Fail Implicit-like rule in style rule +Pass Empty conditional rule +Pass Empty style rule +Pass Empty conditional inside style rule +Pass Empty style inside conditional \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.txt new file mode 100644 index 000000000000..0682c632752f --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.txt @@ -0,0 +1,11 @@ +Summary + +Harness status: OK + +Rerun + +Found 1 tests + +1 Fail +Details +Result Test Name MessageFail CSS Nesting: Specificity of top-level '&' \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/common/gc.js b/Tests/LibWeb/Text/input/wpt-import/common/gc.js new file mode 100644 index 000000000000..ac43a4cfaf77 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/common/gc.js @@ -0,0 +1,52 @@ +/** + * Does a best-effort attempt at invoking garbage collection. Attempts to use + * the standardized `TestUtils.gc()` function, but falls back to other + * environment-specific nonstandard functions, with a final result of just + * creating a lot of garbage (in which case you will get a console warning). + * + * This should generally only be used to attempt to trigger bugs and crashes + * inside tests, i.e. cases where if garbage collection happened, then this + * should not trigger some misbehavior. You cannot rely on garbage collection + * successfully trigger, or that any particular unreachable object will be + * collected. + * + * @returns {Promise} A promise you should await to ensure garbage + * collection has had a chance to complete. + */ +self.garbageCollect = async () => { + // https://testutils.spec.whatwg.org/#the-testutils-namespace + if (self.TestUtils?.gc) { + return TestUtils.gc(); + } + + // Use --expose_gc for V8 (and Node.js) + // to pass this flag at chrome launch use: --js-flags="--expose-gc" + // Exposed in SpiderMonkey shell as well + if (self.gc) { + return self.gc(); + } + + // Present in some WebKit development environments + if (self.GCController) { + return GCController.collect(); + } + + console.warn( + 'Tests are running without the ability to do manual garbage collection. ' + + 'They will still work, but coverage will be suboptimal.'); + + for (var i = 0; i < 1000; i++) { + gcRec(10); + } + + function gcRec(n) { + if (n < 1) { + return {}; + } + + let temp = { i: "ab" + i + i / 100000 }; + temp += "foo"; + + gcRec(n - 1); + } +}; diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.css b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.css new file mode 100644 index 000000000000..c92e2dc9f795 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.css @@ -0,0 +1,6 @@ +.test{span{color:red}span{color:green}} + +/* + * There needs to be some text here, or the bug + * will not manifest for unrelated reasons. + */ diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.html new file mode 100644 index 000000000000..d857e47d4dfd --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/block-skipping.html @@ -0,0 +1,17 @@ + +CSS Nesting bug: Block ignored after lack of whitespace + + + + + +
+ Test passes if this text is green. +
+ + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/delete-other-rule-crash.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/delete-other-rule-crash.html new file mode 100644 index 000000000000..a8319ce25b0c --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/delete-other-rule-crash.html @@ -0,0 +1,15 @@ + + +Crash with lazy parsing child rules and stylesheet copy-on-write + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.html new file mode 100644 index 000000000000..2329a16c3259 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident-recovery.html @@ -0,0 +1,29 @@ + +CSS Nesting: Nesting, error recovery + + + + +
Green
+
Green
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident.html new file mode 100644 index 000000000000..e4049fb8fd3c --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-nesting-ident.html @@ -0,0 +1,22 @@ + +CSS Nesting: Implicit nesting (ident) + + + + +
+
+ Green +
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-parent-insertion-crash.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-parent-insertion-crash.html new file mode 100644 index 000000000000..4be1e1c8f9ed --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/implicit-parent-insertion-crash.html @@ -0,0 +1,16 @@ + + +Use-after-free when inserting implicit parent selector + + +
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalid-inner-rules.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalid-inner-rules.html new file mode 100644 index 000000000000..9551583d0af3 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalid-inner-rules.html @@ -0,0 +1,56 @@ + +Simple CSSOM manipulation of subrules + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-001.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-001.html new file mode 100644 index 000000000000..42094ffc698b --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-001.html @@ -0,0 +1,33 @@ + +CSS Selectors nested invalidation on changed parent + + + + + + + +
+
+ Test passes if color is green. +
+
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-002.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-002.html new file mode 100644 index 000000000000..a2a4564c8e26 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-002.html @@ -0,0 +1,33 @@ + +CSS Selectors nested invalidation on changed child + + + + + + + +
+
+ Test passes if color is green. +
+
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-003.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-003.html new file mode 100644 index 000000000000..1f80bab004d2 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-003.html @@ -0,0 +1,34 @@ + +CSS Selectors nested invalidation with :has() + + + + + + + +
+ Test passes if color is green. +
+
+
+
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-004.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-004.html new file mode 100644 index 000000000000..de982984554c --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/invalidation-004.html @@ -0,0 +1,30 @@ + +CSS Selectors nested invalidation through @media by selectorText + + + + + + + +
+ Test passes if color is green. +
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.html new file mode 100644 index 000000000000..280732d8709d --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom-whitespace.html @@ -0,0 +1,52 @@ + +CSS Nesting: CSSNestedDeclarations CSSOM (whitespace) + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom.html new file mode 100644 index 000000000000..2f396714c564 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-cssom.html @@ -0,0 +1,237 @@ + +CSS Nesting: CSSNestedDeclarations CSSOM + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-matching.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-matching.html new file mode 100644 index 000000000000..9d68478ad9ab --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-declarations-matching.html @@ -0,0 +1,221 @@ + +CSS Nesting: CSSNestedDeclarations matching + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+
A1
+
A2
+
+ diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.html new file mode 100644 index 000000000000..798da1e8ab61 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nested-rule-cssom-invalidation.html @@ -0,0 +1,41 @@ + +CSS Nesting: Style invalidates after CSSOM mutations to nested rules + + + + + + +
+
A1
+
A2
+
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nesting-layer.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nesting-layer.html new file mode 100644 index 000000000000..110c9536f95a --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/nesting-layer.html @@ -0,0 +1,52 @@ + +Nested @layers + + + + + +
+
+
+
+
+
+ diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/parsing.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/parsing.html new file mode 100644 index 000000000000..aa59338522ca --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/parsing.html @@ -0,0 +1,87 @@ + +CSS Selectors parsing + + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-part-crash.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-part-crash.html new file mode 100644 index 000000000000..3ab521d71c84 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-part-crash.html @@ -0,0 +1,12 @@ + + +Nesting pseudo element selectors should not crash + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-where-crash.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-where-crash.html new file mode 100644 index 000000000000..c069872c60be --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/pseudo-where-crash.html @@ -0,0 +1,9 @@ + + +
diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/serialize-group-rules-with-decls.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/serialize-group-rules-with-decls.html new file mode 100644 index 000000000000..d8391cb5c56b --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/serialize-group-rules-with-decls.html @@ -0,0 +1,91 @@ + +Serialization of declarations in group rules + + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-is-scope.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-is-scope.html new file mode 100644 index 000000000000..ab0a806aab4d --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-is-scope.html @@ -0,0 +1,30 @@ + +Top-level & is treated like :scope + + + + + +
+
+
+
+
+ + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.html b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.html new file mode 100644 index 000000000000..2aa6f2ac663f --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-nesting/top-level-parent-pseudo-specificity.html @@ -0,0 +1,19 @@ + +CSS Nesting: Specificity of top-level '&' + + + + + + diff --git a/Tests/LibWeb/Text/input/wpt-import/css/support/delete-other-rule-crash.css b/Tests/LibWeb/Text/input/wpt-import/css/support/delete-other-rule-crash.css new file mode 100644 index 000000000000..13f5d6acf006 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/support/delete-other-rule-crash.css @@ -0,0 +1,2 @@ +.a {} +.b { .c {} }