forked from mirrors/gecko-dev
65 lines
1.6 KiB
JavaScript
65 lines
1.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Test RDM menu item is checked when expected, on multiple tabs.
|
|
|
|
const TEST_URL = "data:text/html;charset=utf-8,";
|
|
|
|
const { startup } = require("devtools/client/responsive/utils/window");
|
|
|
|
const activateTab = tab =>
|
|
new Promise(resolve => {
|
|
const { gBrowser } = tab.ownerGlobal;
|
|
const { tabContainer } = gBrowser;
|
|
|
|
tabContainer.addEventListener("TabSelect", function listener({ type }) {
|
|
tabContainer.removeEventListener(type, listener);
|
|
resolve();
|
|
});
|
|
|
|
gBrowser.selectedTab = tab;
|
|
});
|
|
|
|
const isMenuChecked = () => {
|
|
const menu = document.getElementById("menu_responsiveUI");
|
|
return menu.getAttribute("checked") === "true";
|
|
};
|
|
|
|
add_task(async function() {
|
|
await startup(window);
|
|
|
|
ok(!isMenuChecked(), "RDM menu item is unchecked by default");
|
|
});
|
|
|
|
let tab2;
|
|
|
|
addRDMTaskWithPreAndPost(
|
|
TEST_URL,
|
|
function pre_task() {
|
|
ok(!isMenuChecked(), "RDM menu item is unchecked for new tab");
|
|
},
|
|
async function task({ browser }) {
|
|
ok(isMenuChecked(), "RDM menu item is checked with RDM open");
|
|
|
|
tab2 = await addTab(TEST_URL);
|
|
|
|
ok(!isMenuChecked(), "RDM menu item is unchecked for new tab");
|
|
|
|
const tab = gBrowser.getTabForBrowser(browser);
|
|
await activateTab(tab);
|
|
|
|
ok(
|
|
isMenuChecked(),
|
|
"RDM menu item is checked for the tab where RDM is open"
|
|
);
|
|
},
|
|
function post_task() {
|
|
ok(!isMenuChecked(), "RDM menu item is unchecked after RDM is closed");
|
|
}
|
|
);
|
|
|
|
add_task(async function() {
|
|
await removeTab(tab2);
|
|
});
|