diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html')
-rw-r--r-- | testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html b/testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html new file mode 100644 index 0000000000..83a468bd07 --- /dev/null +++ b/testing/web-platform/tests/css/css-cascade/scope-shadow.tentative.html @@ -0,0 +1,163 @@ +<!DOCTYPE html> +<title>@scope - ShadowDOM</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/9025"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div id=host_plain> + <template shadowrootmode=open> + <style> + @scope (:host) { + .a { + z-index: 1; + } + } + </style> + <div class=a> + </div> + </template> +</div> +<script> + test(() => { + let a = host_plain.shadowRoot.querySelector('.a'); + assert_equals(getComputedStyle(a).zIndex, '1'); + }, '@scope can match :host'); +</script> + +<div id=host_functional> + <template shadowrootmode=open> + <style> + @scope (:host(div)) { + .a { + z-index: 1; + } + } + /* Should not match: */ + @scope (:host(span)) { + .a { + z-index: 42; + } + } + </style> + <div class=a> + </div> + </template> +</div> +<script> + test(() => { + let a = host_functional.shadowRoot.querySelector('.a'); + assert_equals(getComputedStyle(a).zIndex, '1'); + }, '@scope can match :host(...)'); +</script> + +<div id=host_scope_subject> + <template shadowrootmode=open> + <style> + @scope (:host) { + :scope { + z-index: 1; + } + } + </style> + <div class=a> + </div> + </template> +</div> +<script> + test(() => { + assert_equals(getComputedStyle(host_scope_subject).zIndex, '1'); + }, ':scope matches host via the scoping root'); +</script> + +<div id=host_scope_subject_is> + <div class=host> + <template shadowrootmode=open> + <style> + /* Should not match host, nor outside shadow. */ + :is(:scope, .a, .host) { + z-index: 2; + } + + @scope (:host) { + :is(:scope, .a) { + z-index: 1; + } + } + </style> + <div class=a> + </div> + </template> + </div> + <div class=a> + </div> +</div> +<script> + test(() => { + let host = host_scope_subject_is.querySelector('.host'); + assert_equals(getComputedStyle(host).zIndex, '1'); + let a = host.shadowRoot.querySelector('.a'); + assert_equals(getComputedStyle(a).zIndex, '1'); + + let a_outside = host_scope_subject_is.querySelector('.a'); + assert_equals(getComputedStyle(a_outside).zIndex, 'auto'); + }, ':scope within :is() matches host via the scoping root'); +</script> + +<!-- Tentative. https://github.com/w3c/csswg-drafts/issues/9178 --> +<div id=implicit_scope_shadow_parent> + <div class=host> + <template shadowrootmode=open> + <style> + @scope { + /* Matches host */ + :scope { + z-index: 1; + } + :scope > .a { + z-index: 2; + } + } + </style> + <div class=a> + </div> + </template> + </div> +</div> +<script> + test(() => { + let host = implicit_scope_shadow_parent.querySelector('.host'); + let a = host.shadowRoot.querySelector('.a'); + assert_equals(getComputedStyle(host).zIndex, '1'); + assert_equals(getComputedStyle(a).zIndex, '2'); + }, 'Implicit @scope as direct child of shadow root'); +</script> + +<!-- Tentative. https://github.com/w3c/csswg-drafts/issues/9178 --> +<div id=implicit_scope_constructed> + <div class=host> + <template shadowrootmode=open> + <div class=a> + </div> + </template> + </div> +</div> +<script> + test(() => { + let host = implicit_scope_constructed.querySelector('.host'); + let sheet = new CSSStyleSheet(); + sheet.replaceSync(` + @scope { + :scope { + z-index: 1; + } + :scope .a { + z-index: 2; + } + `); + host.shadowRoot.adoptedStyleSheets = [sheet]; + let a = host.shadowRoot.querySelector('.a'); + assert_equals(getComputedStyle(host).zIndex, '1'); + assert_equals(getComputedStyle(a).zIndex, '2'); + }, 'Implicit @scope in construted stylesheet'); +</script> |