diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/css/css-nesting/parsing.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-nesting/parsing.html')
-rw-r--r-- | testing/web-platform/tests/css/css-nesting/parsing.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-nesting/parsing.html b/testing/web-platform/tests/css/css-nesting/parsing.html new file mode 100644 index 0000000000..c22eaada3c --- /dev/null +++ b/testing/web-platform/tests/css/css-nesting/parsing.html @@ -0,0 +1,47 @@ +<!doctype html> +<title>CSS Selectors parsing</title> +<link rel="author" title="Adam Argyle" href="mailto:argyle@google.com"> +<link rel="help" href="https://drafts.csswg.org/css-nesting-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<style id="test-sheet"></style> +<script> + let [ss] = document.styleSheets + + const beforeEach = () => { + while (ss.rules.length) + ss.removeRule(0) + } + + const testRules = [ + `.foo {\n & { color: green; }\n}`, // 🐰 + `.foo {\n &.bar { color: green; }\n}`, + `.foo {\n & .bar { color: green; }\n}`, + `.foo {\n & > .bar { color: green; }\n}`, + `.foo {\n > .bar { color: green; }\n}`, + `.foo {\n > & .bar { color: green; }\n}`, + `.foo {\n + .bar & { color: green; }\n}`, + `.foo {\n .test > & .bar { color: green; }\n}`, + `.foo {\n + .bar, .foo, > .lol { color: green; }\n}`, + `.foo {\n &:is(.bar, &.baz) { color: green; }\n}`, + `.foo {\n .bar& { color: green; }\n}`, + `.foo {\n .bar & { color: green; }\n}`, + `.foo {\n .bar > & { color: green; }\n}`, + `.foo, .bar {\n & + .baz, &.qux { color: green; }\n}`, + `.foo {\n & .bar & .baz & .qux { color: green; }\n}`, + `.foo {\n @media (min-width: 50px) { color: green; }\n}`, + `main {\n & > section, & > article {\n & > header { color: green; }\n}\n}`, + ] + + testRules.forEach(testRule => { + test(function() { + beforeEach() + ss.insertRule(testRule) + // todo? + // when parsing is being ready/prototyped, + // switch to crawling nested rules instead of comparing text + assert_equals(ss.rules[0].cssText, testRule) + }, testRule) + }) +</script> |