summaryrefslogtreecommitdiffstats
path: root/layout/inspector/tests/test_getCSSStyleRules_slotted.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /layout/inspector/tests/test_getCSSStyleRules_slotted.html
parentInitial commit. (diff)
downloadfirefox-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 'layout/inspector/tests/test_getCSSStyleRules_slotted.html')
-rw-r--r--layout/inspector/tests/test_getCSSStyleRules_slotted.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/layout/inspector/tests/test_getCSSStyleRules_slotted.html b/layout/inspector/tests/test_getCSSStyleRules_slotted.html
new file mode 100644
index 0000000000..9fecb9bf5f
--- /dev/null
+++ b/layout/inspector/tests/test_getCSSStyleRules_slotted.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<title>Test getCSSStyleRules for pseudo elements</title>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css">
+
+<div id="host">
+ <test-element id="test1" slot="slot1">test1</test-element>
+ <test-element id="test2" slot="slot2">test2</test-element>
+</div>
+
+<script>
+ const host = document.getElementById("host");
+ const shadow = host.attachShadow({ mode: "open" });
+ shadow.innerHTML = `
+ <style>
+ #outer ::slotted(test-element) {
+ color: red;
+ }
+ </style>
+ <div id="outer">
+ <slot name="slot1"></slot>
+ </div>
+ <div id="nested">
+ <slot name="slot2"></slot>
+ </div>
+ `;
+
+ const nested = shadow.querySelector("#nested").attachShadow({ mode: "open" });
+ nested.innerHTML = `
+ <style>
+ #inner ::slotted(test-element) {
+ font-weight: bold;
+ }
+ </style>
+ <div id="inner">
+ <slot></slot>
+ </div>
+ `;
+
+ const InspectorUtils = SpecialPowers.InspectorUtils;
+
+ function checkElementRules(id, text, property) {
+ const element = document.getElementById(id);
+ let slottedRules = InspectorUtils.getCSSStyleRules(element);
+ is(slottedRules.length, 1, "Slotted element has expected number of rules.");
+
+ let slottedText = slottedRules[0].cssText;
+ ok(slottedText.includes(text), "Slotted node has expected style content.");
+ ok(slottedText.includes(property), "Has expected property.");
+ }
+
+ info("Check that slotted rules are retrieved");
+ checkElementRules("test1", "#outer ::slotted(test-element)", "color");
+
+ info("Check that slotted rules are also retrieved for nested slots");
+ checkElementRules("test2", "#inner ::slotted(test-element)", "font-weight");
+</script>