Bug 1377401 - Fix devtools.inspectedWindow test intermittent. r=aswan draft
authorLuca Greco <lgreco@mozilla.com>
Thu, 24 Aug 2017 13:11:52 +0200
changeset 652906 c14f72a9edfb3793124e106263a69fd374e40844
parent 651395 c86b7150523c10e1d1dbc0be2d8ed96f205be35f
child 728226 ca1b653ae1ebea40ad3ec4ec6b64c3298824a8d6
push id76202
push userluca.greco@alcacoop.it
push dateFri, 25 Aug 2017 11:11:22 +0000
reviewersaswan
bugs1377401
milestone57.0a1
Bug 1377401 - Fix devtools.inspectedWindow test intermittent. r=aswan MozReview-Commit-ID: ICghVmM5q5F
browser/components/extensions/test/browser/browser_ext_devtools_inspectedWindow.js
--- a/browser/components/extensions/test/browser/browser_ext_devtools_inspectedWindow.js
+++ b/browser/components/extensions/test/browser/browser_ext_devtools_inspectedWindow.js
@@ -259,43 +259,53 @@ add_task(async function test_devtools_in
 add_task(async function test_devtools_inspectedWindow_eval_in_page_and_panel() {
   const TEST_TARGET_URL = "http://mochi.test:8888/";
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_TARGET_URL);
 
   async function devtools_page() {
     await browser.devtools.panels.create("test-eval", "fake-icon.png", "devtools_panel.html");
 
     browser.test.onMessage.addListener(async (msg, ...args) => {
-      if (msg !== "inspectedWindow-eval-request") {
-        browser.test.fail(`Unexpected test message received: ${msg}`);
-        return;
+      switch (msg) {
+        case "inspectedWindow-page-eval-request": {
+          const [evalResult, errorResult] = await browser.devtools.inspectedWindow.eval(...args);
+          browser.test.sendMessage("inspectedWindow-page-eval-result", {
+            evalResult,
+            errorResult,
+          });
+          break;
+        }
+        case "inspectedWindow-panel-eval-request":
+          // Ignore the test message expected by the devtools panel.
+          break;
+        default:
+          browser.test.fail(`Unexpected test message received: ${msg}`);
       }
-
-      const [evalResult, errorResult] = await browser.devtools.inspectedWindow.eval(...args);
-      browser.test.sendMessage("inspectedWindow-page-eval-result", {
-        evalResult,
-        errorResult,
-      });
     });
 
     browser.test.sendMessage("devtools_panel_created");
   }
 
   function devtools_panel() {
     browser.test.onMessage.addListener(async (msg, ...args) => {
-      if (msg !== "inspectedWindow-eval-request") {
-        browser.test.fail(`Unexpected test message received: ${msg}`);
-        return;
+      switch (msg) {
+        case "inspectedWindow-panel-eval-request": {
+          const [evalResult, errorResult] = await browser.devtools.inspectedWindow.eval(...args);
+          browser.test.sendMessage("inspectedWindow-panel-eval-result", {
+            evalResult,
+            errorResult,
+          });
+          break;
+        }
+        case "inspectedWindow-page-eval-request":
+          // Ignore the test message expected by the devtools page.
+          break;
+        default:
+          browser.test.fail(`Unexpected test message received: ${msg}`);
       }
-
-      const [evalResult, errorResult] = await browser.devtools.inspectedWindow.eval(...args);
-      browser.test.sendMessage("inspectedWindow-panel-eval-result", {
-        evalResult,
-        errorResult,
-      });
     });
     browser.test.sendMessage("devtools_panel_initialized");
   }
 
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       devtools_page: "devtools_page.html",
     },
@@ -334,23 +344,26 @@ add_task(async function test_devtools_in
   await extension.awaitMessage("devtools_panel_created");
 
   info("Switch to the extension test panel");
   await gDevTools.showToolbox(target, getAdditionalPanelId(toolbox, "test-eval"));
 
   info("Wait for devtools_panel_initialized event");
   await extension.awaitMessage("devtools_panel_initialized");
 
-  info(`test inspectedWindow.eval with eval(window.location.href)`);
-  extension.sendMessage(`inspectedWindow-eval-request`, "window.location.href");
+  info(`test inspectedWindow.eval with eval(window.location.href) from the devtools page`);
+  extension.sendMessage(`inspectedWindow-page-eval-request`, "window.location.href");
 
   info("Wait for response from the page");
   let {evalResult} = await extension.awaitMessage(`inspectedWindow-page-eval-result`);
   Assert.deepEqual(evalResult, TEST_TARGET_URL, "Got the expected eval result in the page");
 
+  info(`test inspectedWindow.eval with eval(window.location.href) from the devtools panel`);
+  extension.sendMessage(`inspectedWindow-panel-eval-request`, "window.location.href");
+
   info("Wait for response from the panel");
   ({evalResult} = await extension.awaitMessage(`inspectedWindow-panel-eval-result`));
   Assert.deepEqual(evalResult, TEST_TARGET_URL, "Got the expected eval result in the panel");
 
   // Cleanup
   await gDevTools.closeToolbox(target);
   await target.destroy();
   await extension.unload();