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 });