tor-browser

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

test_keys.xhtml (3846B)


      1 <?xml version="1.0"?>
      2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
      3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
      4                 type="text/css"?>
      5 
      6 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      7        xmlns:html="http://www.w3.org/1999/xhtml"
      8        title="Accessible XUL access keys and shortcut keys tests">
      9 
     10  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
     11 
     12  <script type="application/javascript"
     13          src="../common.js" />
     14  <script type="application/javascript"
     15          src="../events.js" />
     16 
     17  <script type="application/javascript">
     18  <![CDATA[
     19    SimpleTest.requestCompleteLog(); // To help diagnose bug 1845221
     20 
     21    function openMenu(aMenuID, aMenuitemID)
     22    {
     23      this.menuNode = getNode(aMenuID);
     24      this.menuitemNode = getNode(aMenuitemID);
     25 
     26      this.eventSeq = [
     27        new invokerChecker(EVENT_FOCUS, this.menuNode)
     28      ];
     29 
     30      this.invoke = function openMenu_invoke()
     31      {
     32        // Show menu.
     33        this.menuNode.open = true;
     34      }
     35 
     36      this.finalCheck = function openMenu_finalCheck()
     37      {
     38        var menu = getAccessible(aMenuID);
     39        is(menu.accessKey, (MAC ? "u" : "Alt+u"),
     40           "Wrong accesskey on " + prettyName(this.menuitemNode));
     41 
     42        var menuitem = getAccessible(aMenuitemID);
     43        is(menuitem.accessKey, "p",
     44           "Wrong accesskey on " + prettyName(this.menuitemNode));
     45        is(menuitem.keyboardShortcut, (MAC ? "⌃l" : "Ctrl+l"),
     46           "Wrong keyboard shortcut on " + prettyName(this.menuitemNode));
     47      }
     48 
     49      this.getID = function openMenu_getID()
     50      {
     51        return "menuitem accesskey and shortcut test " +
     52          prettyName(this.menuItemNode);
     53      }
     54    }
     55 
     56    var gQueue = null;
     57    function doTest()
     58    {
     59      // HTML element should get accessKey from associated XUL label.
     60      let input = getAccessible("input");
     61      is(input.accessKey, (MAC ? "⌃⌥i" : "Alt+Shift+i"),
     62         "Wrong accessKey on input");
     63 
     64      // Test accessKey on HTML element inside shadow DOM.
     65      let shadowButton = getAccessible(
     66        document.getElementById("buttonShadow").shadowRoot.firstElementChild);
     67      is(shadowButton.accessKey, (MAC ? "⌃⌥t" : "Alt+Shift+t"),
     68         "Wrong accessKey on shadow button");
     69 
     70      gQueue = new eventQueue();
     71      gQueue.push(new openMenu("menu", "menuitem"));
     72      gQueue.invoke(); // Will call SimpleTest.finish();
     73    }
     74 
     75    SimpleTest.waitForExplicitFinish();
     76    addA11yLoadEvent(doTest);
     77  ]]>
     78  </script>
     79 
     80  <hbox flex="1" style="overflow: auto;">
     81    <body xmlns="http://www.w3.org/1999/xhtml">
     82      <a target="_blank" rel="opener"
     83         href="https://bugzilla.mozilla.org/show_bug.cgi?id=672092"
     84         title="Reorganize access key and keyboard shortcut handling code">
     85        Mozilla Bug 672092
     86      </a><br/>
     87      <p id="display"></p>
     88      <div id="content" style="display: none">
     89      </div>
     90      <pre id="test">
     91      </pre>
     92    </body>
     93 
     94    <vbox flex="1">
     95      <label control="input" accesskey="i">input</label>
     96      <html:input id="input"/>
     97 
     98      <html:div id="buttonShadow"/>
     99      <script>
    100      <![CDATA[
    101        let host = document.getElementById("buttonShadow");
    102        let shadow = host.attachShadow({mode: "open"});
    103        let button = document.createElement("button");
    104        button.setAttribute("accesskey", "t");
    105        shadow.append(button);
    106      ]]>
    107      </script>
    108 
    109      <keyset>
    110        <key key="l" modifiers="control" id="key1"/>
    111      </keyset>
    112 
    113      <menubar>
    114        <menu label="menu" id="menu" accesskey="u">
    115          <menupopup>
    116            <menuitem accesskey="p" key="key1" label="item1" id="menuitem"/>
    117          </menupopup>
    118        </menu>
    119      </menubar>
    120 
    121      <vbox id="debug"/>
    122    </vbox>
    123  </hbox>
    124 
    125 </window>