summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/chrome/test_popuphidden.xhtml
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 /toolkit/content/tests/chrome/test_popuphidden.xhtml
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 'toolkit/content/tests/chrome/test_popuphidden.xhtml')
-rw-r--r--toolkit/content/tests/chrome/test_popuphidden.xhtml86
1 files changed, 86 insertions, 0 deletions
diff --git a/toolkit/content/tests/chrome/test_popuphidden.xhtml b/toolkit/content/tests/chrome/test_popuphidden.xhtml
new file mode 100644
index 0000000000..aa4b5aff1e
--- /dev/null
+++ b/toolkit/content/tests/chrome/test_popuphidden.xhtml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
+
+<window title="Hidden Popup Test"
+ onload="setTimeout(runTests, 0, $('popup'));"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+<menupopup id="popup" hidden="true" onpopupshown="ok(true, 'popupshown'); this.hidePopup()"
+ onpopuphidden="$('popup-hideonshow').openPopup(null, 'after_start')">
+ <menuitem id="i1" label="One"/>
+ <menuitem id="i2" label="Two"/>
+</menupopup>
+
+<menupopup id="popup-hideonshow" onpopupshowing="hidePopupWhileShowing(this)"
+ onpopupshown="ok(false, 'popupshown when hidden')">
+ <menuitem id="i1" label="One"/>
+ <menuitem id="i2" label="Two"/>
+</menupopup>
+
+<button id="button" type="menu" label="Menu">
+ <menupopup id="popupinbutton" hidden="true"
+ onpopupshown="ok(true, 'popupshown'); ok($('button').open, 'open'); this.hidden = true;">
+ <menuitem id="i1" label="One"/>
+ <menuitem id="i2" label="Two"/>
+ </menupopup>
+</button>
+
+<script class="testbody" type="application/javascript">
+<![CDATA[
+
+SimpleTest.waitForExplicitFinish();
+
+function runTests(popup)
+{
+ const observer = new MutationObserver(checkEndTest);
+ observer.observe($("button"), { attributes: true });
+ popup.hidden = false;
+ popup.openPopup(null, "after_start");
+}
+
+function hidePopupWhileShowing(popup)
+{
+ popup.hidden = true;
+ popup.clientWidth; // flush layout
+ is(popup.state, 'closed', 'popupshowing hidden');
+ SimpleTest.executeSoon(() => runTests($('popupinbutton')));
+}
+
+let finished = false;
+function checkEndTest(aMutationList, aObserver)
+{
+ if (finished) {
+ return; // XXX I don't know why this is necessary.
+ }
+ const button = $("button");
+ for (const mutation of aMutationList) {
+ if (mutation.attributeName != "open" || button.hasAttribute("open")) {
+ continue;
+ }
+
+ ok($("popupinbutton").hidden, "popup hidden");
+ is($("popupinbutton").state, "closed", "popup state");
+ ok(!button.open, "not open after hidden");
+ aObserver.disconnect();
+ SimpleTest.finish();
+ finished = true;
+ return;
+ }
+}
+
+]]>
+</script>
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+<p id="display">
+</p>
+<div id="content" style="display: none">
+</div>
+<pre id="test">
+</pre>
+</body>
+
+</window>