summaryrefslogtreecommitdiffstats
path: root/layout/generic/test/test_bug632379.xhtml
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/test/test_bug632379.xhtml')
-rw-r--r--layout/generic/test/test_bug632379.xhtml223
1 files changed, 223 insertions, 0 deletions
diff --git a/layout/generic/test/test_bug632379.xhtml b/layout/generic/test/test_bug632379.xhtml
new file mode 100644
index 0000000000..4d25b60fd3
--- /dev/null
+++ b/layout/generic/test/test_bug632379.xhtml
@@ -0,0 +1,223 @@
+<?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"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=632379
+-->
+<window title="Mozilla Bug 632379"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
+ <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
+
+ <style xmlns="http://www.w3.org/1999/xhtml"><![CDATA[
+ menuitem { height: 19px; box-sizing: border-box }
+ ]]></style>
+
+<toolbox flex="1">
+ <menubar>
+ <menu label="MENU" accesskey="m" id="mainMenu">
+ <menupopup maxheight="100" onpopupshown="openSubmenu(this, event)">
+ <menu label="menu1" accesskey="1" id="menu1">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu2" accesskey="2" id="menu2">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu3" accesskey="3" id="menu3">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu4" accesskey="4" id="menu4">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu5" accesskey="5" id="menu5">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu6" accesskey="6" id="menu6">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu7" accesskey="7" id="menu7">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu8" accesskey="8" id="menu8">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ <menu label="menu9" accesskey="9" id="menu9">
+ <menupopup onpopupshown="snapshot(this)">
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ <menuitem label="item"/>
+ </menupopup>
+ </menu>
+ </menupopup>
+ </menu>
+ </menubar>
+</toolbox>
+
+<body xmlns="http://www.w3.org/1999/xhtml">
+ <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=632379">Mozilla Bug 632379</a>
+
+ <p id="display"></p>
+<div id="content" style="display: none">
+</div>
+</body>
+
+
+<script class="testbody" type="application/javascript"><![CDATA[
+
+var gFinished = false;
+
+/** Test for Bug 632379 **/
+// Tests whether scrolling a menu affects the position at which popups appear
+var pos = new Array(2);
+var count=0;
+
+function snapshot(elem)
+{
+ info(`snapshot(${elem.parentNode.id}) called`);
+ pos[count] = elem.getBoundingClientRect().top;
+ info(elem.querySelector("menuitem").getBoundingClientRect().height);
+ ++count;
+ if (count <= 1) {
+ // close the submenu and open the bottom submenu
+ synthesizeKey("KEY_ArrowLeft");
+ sendString("9");
+ } else {
+ if (!navigator.platform.includes("Mac")) {
+ is(pos[1], pos[0], `Popup ${elem.parentNode.id} should open in the same place when the menu is scrolled`);
+ } else {
+ todo(false, "This test fails on Mac since it was ported to chrome: Bug 668716.");
+ }
+ info("Test finished");
+ gFinished = true;
+ SimpleTest.finish();
+ }
+}
+
+function doTest() {
+ info("doTest() called");
+ // open the top-level menu
+ $("mainMenu").open = true;
+}
+
+function openSubmenu(mainMenu, e)
+{
+ if (e.originalTarget != mainMenu) {
+ return;
+ }
+ info("openSubmenu() called");
+ // open a submenu in the middle
+ sendString("5");
+}
+
+SimpleTest.waitForExplicitFinish();
+info("Wait for focus");
+SimpleTest.waitForFocus(doTest);
+
+]]></script>
+</window>
+