tor-browser

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

browser_bug424101.js (2129B)


      1 /* Make sure that the context menu appears on form elements */
      2 
      3 add_setup(async function () {
      4  await SpecialPowers.pushPrefEnv({
      5    set: [["test.wait300msAfterTabSwitch", true]],
      6  });
      7 });
      8 
      9 add_task(async function () {
     10  await BrowserTestUtils.openNewForegroundTab(gBrowser, "data:text/html,test");
     11 
     12  let contentAreaContextMenu = document.getElementById(
     13    "contentAreaContextMenu"
     14  );
     15 
     16  let tests = [
     17    { element: "input", type: "text" },
     18    { element: "input", type: "password" },
     19    { element: "input", type: "image" },
     20    { element: "input", type: "button" },
     21    { element: "input", type: "submit" },
     22    { element: "input", type: "reset" },
     23    { element: "input", type: "checkbox" },
     24    { element: "input", type: "radio" },
     25    { element: "button" },
     26    { element: "select" },
     27    { element: "option" },
     28    { element: "optgroup" },
     29  ];
     30 
     31  for (let index = 0; index < tests.length; index++) {
     32    let test = tests[index];
     33 
     34    await SpecialPowers.spawn(
     35      gBrowser.selectedBrowser,
     36      [{ element: test.element, type: test.type, index }],
     37      async function (arg) {
     38        let element = content.document.createElement(arg.element);
     39        element.id = "element" + arg.index;
     40        if (arg.type) {
     41          element.setAttribute("type", arg.type);
     42        }
     43        content.document.body.appendChild(element);
     44      }
     45    );
     46 
     47    let popupShownPromise = BrowserTestUtils.waitForEvent(
     48      contentAreaContextMenu,
     49      "popupshown"
     50    );
     51    await BrowserTestUtils.synthesizeMouseAtCenter(
     52      "#element" + index,
     53      { type: "contextmenu", button: 2 },
     54      gBrowser.selectedBrowser
     55    );
     56    await popupShownPromise;
     57 
     58    let typeAttr = test.type ? "type=" + test.type + " " : "";
     59    is(
     60      gContextMenu.shouldDisplay,
     61      true,
     62      "context menu behavior for <" +
     63        test.element +
     64        " " +
     65        typeAttr +
     66        "> is wrong"
     67    );
     68 
     69    let popupHiddenPromise = BrowserTestUtils.waitForEvent(
     70      contentAreaContextMenu,
     71      "popuphidden"
     72    );
     73    contentAreaContextMenu.hidePopup();
     74    await popupHiddenPromise;
     75  }
     76 
     77  gBrowser.removeCurrentTab();
     78 });