tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_submenuClose.xhtml (2668B)


      1 <?xml version="1.0"?>
      2 <?xml-stylesheet type="text/css" href="chrome://global/skin"?>
      3 <?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
      4 <!--
      5 https://bugzilla.mozilla.org/show_bug.cgi?id=1181560
      6 -->
      7 <window title="Mozilla Bug 1181560"
      8        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      9        onload="SimpleTest.waitForFocus(nextTest, window)">
     10  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
     11  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
     12 
     13 
     14  <!-- test results are displayed in the html:body -->
     15  <body xmlns="http://www.w3.org/1999/xhtml">
     16  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181560"
     17     target="_blank">Mozilla Bug 1181560</a>
     18  </body>
     19 
     20  <vbox>
     21    <menubar>
     22      <menu id="menu" label="MyMenu">
     23        <menupopup>
     24          <menuitem label="A"/>
     25          <menu id="b" label="B">
     26            <menupopup>
     27              <menuitem label="B1"/>
     28            </menupopup>
     29          </menu>
     30          <menu id="c" label="C">
     31            <menupopup>
     32              <menuitem label="C1"/>
     33            </menupopup>
     34          </menu>
     35        </menupopup>
     36      </menu>
     37    </menubar>
     38  </vbox>
     39 
     40  <!-- test code goes here -->
     41  <script type="application/javascript">
     42  <![CDATA[
     43  /** Test for Bug 1181560 */
     44  SimpleTest.waitForExplicitFinish();
     45 
     46  let menuB, menuC, mainMenu, menuBOpen, menuCOpen;
     47  let menuBOpenCount = 0;
     48 
     49  function handleBOpens() {
     50    menuBOpenCount++;
     51    menuBOpen = true;
     52    ok(!menuCOpen, "Menu C should not be open when menu B has opened");
     53    if (menuBOpenCount >= 2) {
     54      SimpleTest.finish();
     55      return;
     56    }
     57    sendKey("LEFT", window);
     58    sendKey("DOWN", window);
     59    sendKey("RIGHT", window);
     60  }
     61 
     62  function handleBCloses() {
     63    menuBOpen = false;
     64  }
     65 
     66  function handleCOpens() {
     67    menuCOpen = true;
     68    ok(!menuBOpen, "Menu B should not be open when menu C has opened");
     69    synthesizeMouseAtCenter(menuB, {}, window);
     70  }
     71 
     72  function handleCCloses() {
     73    menuCOpen = false;
     74  }
     75 
     76  function nextTest(e) {
     77    mainMenu = document.getElementById("menu");
     78    menuB = document.getElementById("b");
     79    menuC = document.getElementById("c");
     80    menuB.menupopup.addEventListener("popupshown", handleBOpens);
     81    menuB.menupopup.addEventListener("popuphidden", handleBCloses);
     82    menuC.menupopup.addEventListener("popupshown", handleCOpens);
     83    menuC.menupopup.addEventListener("popuphidden", handleCCloses);
     84    mainMenu.addEventListener("popupshown", ev => {
     85      synthesizeMouseAtCenter(menuB, {}, window);
     86    });
     87    mainMenu.open = true;
     88  }
     89  ]]>
     90  </script>
     91 </window>