tor-browser

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

browser_menu_item_01.js (1646B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 // Test RDM menu item is checked when expected, on multiple tabs.
      7 
      8 const TEST_URL = "data:text/html;charset=utf-8,";
      9 
     10 const {
     11  startup,
     12 } = require("resource://devtools/client/responsive/utils/window.js");
     13 
     14 const activateTab = tab =>
     15  new Promise(resolve => {
     16    const { gBrowser } = tab.ownerGlobal;
     17    const { tabContainer } = gBrowser;
     18 
     19    tabContainer.addEventListener("TabSelect", function listener({ type }) {
     20      tabContainer.removeEventListener(type, listener);
     21      resolve();
     22    });
     23 
     24    gBrowser.selectedTab = tab;
     25  });
     26 
     27 const isMenuChecked = () => {
     28  const menu = document.getElementById("menu_responsiveUI");
     29  return menu.getAttribute("checked") === "true";
     30 };
     31 
     32 add_task(async function () {
     33  await startup(window);
     34 
     35  ok(!isMenuChecked(), "RDM menu item is unchecked by default");
     36 });
     37 
     38 let tab2;
     39 
     40 addRDMTaskWithPreAndPost(
     41  TEST_URL,
     42  function pre_task() {
     43    ok(!isMenuChecked(), "RDM menu item is unchecked for new tab");
     44  },
     45  async function task({ browser }) {
     46    ok(isMenuChecked(), "RDM menu item is checked with RDM open");
     47 
     48    tab2 = await addTab(TEST_URL);
     49 
     50    ok(!isMenuChecked(), "RDM menu item is unchecked for new tab");
     51 
     52    const tab = gBrowser.getTabForBrowser(browser);
     53    await activateTab(tab);
     54 
     55    ok(
     56      isMenuChecked(),
     57      "RDM menu item is checked for the tab where RDM is open"
     58    );
     59  },
     60  function post_task() {
     61    ok(!isMenuChecked(), "RDM menu item is unchecked after RDM is closed");
     62  }
     63 );
     64 
     65 add_task(async function () {
     66  await removeTab(tab2);
     67 });