Bug 1458609 - Fix browser_console_context_menu_entries; r=bgrins. draft
authorNicolas Chevobbe <nchevobbe@mozilla.com>
Wed, 02 May 2018 19:37:12 +0200
changeset 791078 b2a6340200db9223d4a59f97ea98a51a6db35678
parent 790721 f877359308b17e691209e1afb7193b8e86f175ce
push id108680
push userbmo:nchevobbe@mozilla.com
push dateThu, 03 May 2018 12:25:03 +0000
reviewersbgrins
bugs1458609
milestone61.0a1
Bug 1458609 - Fix browser_console_context_menu_entries; r=bgrins. The test is changed to take into account that the sidebar is still not enabled in non-nightly build. We check that the preference is enabled before adding it to the expected entries. MozReview-Commit-ID: CdgPQvhn1Q6
devtools/client/webconsole/test/mochitest/browser_console_context_menu_entries.js
--- a/devtools/client/webconsole/test/mochitest/browser_console_context_menu_entries.js
+++ b/devtools/client/webconsole/test/mochitest/browser_console_context_menu_entries.js
@@ -21,51 +21,57 @@ add_task(async function() {
     content.wrappedJSObject.location.reload();
   });
   const networkMessage = await onNetworkMessage;
 
   info("Open and check the context menu for the network message");
   let menuPopup = await openContextMenu(hud, networkMessage.node);
   ok(menuPopup, "The context menu is displayed on a network message");
 
-  let expectedContextMenu = [
+  let expectedContextMenu = addPrefBasedEntries([
     "#console-menu-copy-url (a)",
     "#console-menu-open-url (T)",
     "#console-menu-store (S) [disabled]",
     "#console-menu-copy (C)",
     "#console-menu-copy-object (o) [disabled]",
     "#console-menu-select (A)",
-    "#console-menu-open-sidebar (V) [disabled]",
-  ];
+  ]);
   is(getSimplifiedContextMenu(menuPopup).join("\n"), expectedContextMenu.join("\n"),
     "The context menu has the expected entries for a network message");
 
   info("Logging a text message in the content window");
   const onLogMessage = waitForMessage(hud, "simple text message");
   ContentTask.spawn(gBrowser.selectedBrowser, null, () => {
     content.wrappedJSObject.console.log("simple text message");
   });
 
   const logMessage = await onLogMessage;
   menuPopup = await openContextMenu(hud, logMessage.node);
   ok(menuPopup, "The context menu is displayed on a log message");
 
-  expectedContextMenu = [
+  expectedContextMenu = addPrefBasedEntries([
     "#console-menu-store (S) [disabled]",
     "#console-menu-copy (C)",
     "#console-menu-copy-object (o) [disabled]",
     "#console-menu-select (A)",
-    "#console-menu-open-sidebar (V) [disabled]",
-  ];
+  ]);
   is(getSimplifiedContextMenu(menuPopup).join("\n"), expectedContextMenu.join("\n"),
     "The context menu has the expected entries for a simple log message");
 
   await hideContextMenu(hud);
 });
 
+function addPrefBasedEntries(expectedEntries) {
+  if (Services.prefs.getBoolPref("devtools.webconsole.sidebarToggle", false)) {
+    expectedEntries.push("#console-menu-open-sidebar (V) [disabled]");
+  }
+
+  return expectedEntries;
+}
+
 function getSimplifiedContextMenu(popupElement) {
   return [...popupElement.querySelectorAll("menuitem")]
     .map(entry => {
       const key = entry.getAttribute("accesskey");
       const disabled = entry.hasAttribute("disabled");
       return `#${entry.id} (${key})${disabled ? " [disabled]" : ""}`;
     });
 }