summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html')
-rw-r--r--testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html31
1 files changed, 31 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html b/testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html
new file mode 100644
index 0000000000..a6b37c2cf0
--- /dev/null
+++ b/testing/web-platform/tests/css/cssom/selectorText-modification-restyle-002.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<title>CSSOM: Modify selectorText in a shadow tree stylesheet</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstylerule-selectortext">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #container { color: red }
+ .subtree * { color: pink }
+</style>
+<div id="container">
+ <div id="host"></div>
+</div>
+<script>
+ const root = host.attachShadow({mode:"open"});
+ root.innerHTML = "<style>nomatch { color: green }</style><div>Green</div>";
+ const div = root.querySelector("div");
+
+ test(() => {
+ assert_equals(getComputedStyle(div).color, "rgb(255, 0, 0)", "Color should initial be red.");
+ }, "Check initial color.");
+
+ test(() => {
+ // The combination of the .subtree and CSSOM selector style invalidations
+ // caused the Blink implementation to fail an assertion.
+ container.className = "subtree";
+ root.styleSheets[0].cssRules[0].selectorText = "div";
+ assert_equals(getComputedStyle(div).color, "rgb(0, 128, 0)", "Color should be green after stylesheet change.");
+ }, "Check that color changes correctly after shadow stylesheet selector and #container class is changed.");
+</script>