Bug 1404227 - Enhance test for network logs in the Console panel; r=nchevobbe draft
authorJan Odvarko <odvarko@gmail.com>
Tue, 03 Oct 2017 13:33:39 +0200
changeset 675601 0b06ec1daa4fe6deb5d2071ce1c2c776a915c113
parent 674765 294f332a35538940469b1a2576615ff5ffe1e016
child 734652 c1ec03bc9b5165a01f07bcf3db8a72ff969b83f4
push id83182
push userjodvarko@mozilla.com
push dateThu, 05 Oct 2017 15:59:24 +0000
reviewersnchevobbe
bugs1404227
milestone58.0a1
Bug 1404227 - Enhance test for network logs in the Console panel; r=nchevobbe MozReview-Commit-ID: KMiuawrEwYe
devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_network_messages_expand.js
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_network_messages_expand.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_network_messages_expand.js
@@ -25,43 +25,74 @@ add_task(async function task() {
   const currentTab = gBrowser.selectedTab;
   let target = TargetFactory.forTab(currentTab);
   let toolbox = gDevTools.getToolbox(target);
 
   const documentUrl = TEST_PATH + TEST_FILE;
   await loadDocument(documentUrl);
   info("Document loaded.");
 
-  await testNetworkMessage(hud, documentUrl);
-  await waitForNetworkUpdates(toolbox);
-});
-
-async function testNetworkMessage(hud, url) {
-  let messageNode = await waitFor(() => findMessage(hud, url));
+  let messageNode = await waitFor(() => findMessage(hud, documentUrl));
   let urlNode = messageNode.querySelector(".url");
   info("Network message found.");
 
-  EventUtils.sendMouseEvent({ type: "click" }, urlNode);
+  // Expand network log
+  urlNode.click();
 
+  await waitForNetworkUpdates(toolbox);
+  await testNetworkMessage(messageNode);
+});
+
+async function testNetworkMessage(messageNode) {
   let headersTab = messageNode.querySelector("#headers-tab");
   let cookiesTab = messageNode.querySelector("#cookies-tab");
   let paramsTab = messageNode.querySelector("#params-tab");
   let responseTab = messageNode.querySelector("#response-tab");
   let timingsTab = messageNode.querySelector("#timings-tab");
 
   ok(headersTab, "Headers tab is available");
   ok(cookiesTab, "Cookies tab is available");
   ok(paramsTab, "Params tab is available");
   ok(responseTab, "Response tab is available");
   ok(timingsTab, "Timings tab is available");
+
+  // Headers tab should be selected by default, so just check its content.
+  let headersContent = messageNode.querySelector(
+    "#headers-panel .headers-overview");
+  ok(headersContent, "Headers content is available");
+
+  // Select Response tab and check the content. CodeMirror initialization
+  // is delayed  to prevent UI freeze, so wait for a little while.
+  // TODO: Bug 1406100 - The 'responseContent' network event update is missing sometimes
+  /* responseTab.click();
+  await waitForSourceEditor(messageNode);
+  let responseContent = messageNode.querySelector(
+    "#response-panel .editor-row-container .CodeMirror");
+  ok(responseContent, "Response content is available");
+  ok(responseContent.textContent, "Response text is available"); */
+
+  // Select Timings tab and check the content.
+  timingsTab.click();
+  let timingsContent = messageNode.querySelector(
+    "#timings-panel .timings-container .timings-label");
+  ok(timingsContent, "Timings content is available");
+  ok(timingsContent.textContent, "Timings text is available");
 }
 
 async function waitForNetworkUpdates(toolbox) {
   let panel = toolbox.getCurrentPanel();
   let hud = panel.hud;
   let ui = hud.ui;
 
   return new Promise(resolve => {
     ui.jsterm.hud.on("network-request-payload-ready", () => {
+      info("network-request-payload-ready received");
       resolve();
     });
   });
 }
+
+/* async function waitForSourceEditor(messageNode) {
+  return waitUntil(() => {
+    return !!messageNode.querySelector(
+      "#response-panel .editor-row-container .CodeMirror");
+  });
+} */