зеркало из https://github.com/mozilla/gecko-dev.git
92 строки
2.7 KiB
XML
92 строки
2.7 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
|
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1181560
|
|
-->
|
|
<window title="Mozilla Bug 1181560"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
onload="SimpleTest.waitForFocus(nextTest, window)">
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
|
|
|
|
|
|
<!-- test results are displayed in the html:body -->
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181560"
|
|
target="_blank">Mozilla Bug 1181560</a>
|
|
</body>
|
|
|
|
<vbox>
|
|
<menubar>
|
|
<menu id="menu" label="MyMenu">
|
|
<menupopup>
|
|
<menuitem label="A"/>
|
|
<menu id="b" label="B">
|
|
<menupopup>
|
|
<menuitem label="B1"/>
|
|
</menupopup>
|
|
</menu>
|
|
<menu id="c" label="C">
|
|
<menupopup>
|
|
<menuitem label="C1"/>
|
|
</menupopup>
|
|
</menu>
|
|
</menupopup>
|
|
</menu>
|
|
</menubar>
|
|
</vbox>
|
|
|
|
<!-- test code goes here -->
|
|
<script type="application/javascript">
|
|
<![CDATA[
|
|
/** Test for Bug 1181560 **/
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
let menuB, menuC, mainMenu, menuBOpen, menuCOpen;
|
|
let menuBOpenCount = 0;
|
|
|
|
function handleBOpens() {
|
|
menuBOpenCount++;
|
|
menuBOpen = true;
|
|
ok(!menuCOpen, "Menu C should not be open when menu B has opened");
|
|
if (menuBOpenCount >= 2) {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
sendKey("LEFT", window);
|
|
sendKey("DOWN", window);
|
|
sendKey("RIGHT", window);
|
|
}
|
|
|
|
function handleBCloses() {
|
|
menuBOpen = false;
|
|
}
|
|
|
|
function handleCOpens() {
|
|
menuCOpen = true;
|
|
ok(!menuBOpen, "Menu B should not be open when menu C has opened");
|
|
synthesizeMouseAtCenter(menuB, {}, window);
|
|
}
|
|
|
|
function handleCCloses() {
|
|
menuCOpen = false;
|
|
}
|
|
|
|
function nextTest(e) {
|
|
mainMenu = document.getElementById("menu");
|
|
menuB = document.getElementById("b");
|
|
menuC = document.getElementById("c");
|
|
menuB.firstChild.addEventListener("popupshown", handleBOpens, false);
|
|
menuB.firstChild.addEventListener("popuphidden", handleBCloses, false);
|
|
menuC.firstChild.addEventListener("popupshown", handleCOpens, false);
|
|
menuC.firstChild.addEventListener("popuphidden", handleCCloses, false);
|
|
mainMenu.addEventListener("popupshown", ev => {
|
|
synthesizeMouseAtCenter(menuB, {}, window);
|
|
});
|
|
mainMenu.open = true;
|
|
}
|
|
]]>
|
|
</script>
|
|
</window>
|