summaryrefslogtreecommitdiffstats
path: root/layout/inspector/tests/test_parseStyleSheet_nested.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /layout/inspector/tests/test_parseStyleSheet_nested.html
parentInitial commit. (diff)
downloadfirefox-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 'layout/inspector/tests/test_parseStyleSheet_nested.html')
-rw-r--r--layout/inspector/tests/test_parseStyleSheet_nested.html79
1 files changed, 79 insertions, 0 deletions
diff --git a/layout/inspector/tests/test_parseStyleSheet_nested.html b/layout/inspector/tests/test_parseStyleSheet_nested.html
new file mode 100644
index 0000000000..15dbd71783
--- /dev/null
+++ b/layout/inspector/tests/test_parseStyleSheet_nested.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Test InspectorUtils.parseStyleSheet with nested rules</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <style>
+ h1 {
+ .mySpan {
+ background: gold;
+ &.mySpan {
+ color: red;
+ }
+ }
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Hello<span class="mySpan">world</span>
+ <script>
+ add_task(function() {
+ info("Flush layout");
+ // This is important to reproduce the original issue
+ document.documentElement.getBoundingClientRect();
+
+ const InspectorUtils = SpecialPowers.InspectorUtils;
+ const sheet = document.styleSheets[0];
+ const spanEl = document.querySelector(".mySpan");
+
+ is(
+ sheet.cssRules[0].cssRules[0].cssRules[0].cssText,
+ `&.mySpan { color: red; }`,
+ "Nested rule has expected initial text"
+ );
+
+ is(
+ InspectorUtils.getCSSStyleRules(spanEl).length,
+ 2,
+ "getCSSStyleRules returned 2 rules for .mySpan"
+ );
+
+ info("Modify stylesheet using InspectorUtils.parseStyleSheet");
+ InspectorUtils.parseStyleSheet(
+ sheet,
+ `h1 {
+ .mySpan {
+ background: gold;
+ &.mySpan {
+ color: black;
+ }
+ }
+ }`
+ );
+
+ is(
+ sheet.cssRules[0].cssRules[0].cssRules[0].cssText,
+ `&.mySpan { color: black; }`,
+ "Nested rule has expected text after updating the stylesheet"
+ );
+
+ info("Flush layout");
+ // This is important to reproduce the original issue
+ document.documentElement.getBoundingClientRect();
+
+ is(
+ getComputedStyle(spanEl).color,
+ "rgb(0, 0, 0)",
+ "the color of the span element was properly updated"
+ );
+ const rules = InspectorUtils.getCSSStyleRules(spanEl);
+ is(
+ rules.length,
+ 2,
+ "getCSSStyleRules still returned 2 rules for .mySpan after stylesheet was updated"
+ );
+ is(rules[1].style.color, "black", "rule was properly updated");
+ });
+ </script>
+ </body>
+</html> \ No newline at end of file