summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js
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 /devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js
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 'devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js')
-rw-r--r--devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js b/devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js
new file mode 100644
index 0000000000..2f6a414249
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_scrollable_badge.js
@@ -0,0 +1,67 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Tests that the scrollable badge is shown next to scrollable elements, and is updated
+// dynamically when necessary.
+
+const TEST_URI = `
+ <style type="text/css">
+ #wrapper {
+ width: 300px;
+ height: 300px;
+ overflow: scroll;
+ }
+ #wrapper.no-scroll {
+ overflow: hidden;
+ }
+ #content {
+ height: 1000px;
+ }
+ </style>
+ <div id="wrapper">
+ <div id="content"></div>
+ </div>
+`;
+
+add_task(async function () {
+ const { inspector } = await openInspectorForURL(
+ "data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)
+ );
+
+ let badge = await getBadgeEl(inspector);
+ ok(badge, "The scrollable badge exists on the test node");
+
+ info("Make the test node non-scrollable");
+ let onStateChanged = inspector.walker.once("scrollable-change");
+ await toggleScrollableClass();
+ await onStateChanged;
+
+ badge = await getBadgeEl(inspector);
+ ok(!badge, "The scrollable badge doesn't exist anymore");
+
+ info("Make the test node scrollable again");
+ onStateChanged = inspector.walker.once("scrollable-change");
+ await toggleScrollableClass();
+ await onStateChanged;
+
+ badge = await getBadgeEl(inspector);
+ ok(badge, "The scrollable badge exists again");
+});
+
+async function getBadgeEl(inspector) {
+ const wrapperMarkupContainer = await getContainerForSelector(
+ "#wrapper",
+ inspector
+ );
+ return wrapperMarkupContainer.elt.querySelector(
+ ".inspector-badge.scrollable-badge"
+ );
+}
+
+async function toggleScrollableClass() {
+ await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () {
+ content.document.querySelector("#wrapper").classList.toggle("no-scroll");
+ });
+}