Bug 1432865 - Clean up show and hideColumn test API. r=Honza
MozReview-Commit-ID: EGL5wC3UPa2
--- a/devtools/client/netmonitor/test/browser_net_columns_last_column.js
+++ b/devtools/client/netmonitor/test/browser_net_columns_last_column.js
@@ -2,18 +2,18 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests that last visible column can't be hidden
*/
-add_task(function* () {
- let { monitor } = yield initNetMonitor(SIMPLE_URL);
+add_task(async function () {
+ let { monitor } = await initNetMonitor(SIMPLE_URL);
info("Starting test... ");
let { document, store, parent } = monitor.panelWin;
let initialColumns = store.getState().ui.columns;
for (let column in initialColumns) {
let shown = initialColumns[column];
@@ -24,41 +24,27 @@ add_task(function* () {
visibleColumns.push(c);
}
}
if (visibleColumns.length === 1) {
if (!shown) {
continue;
}
- yield testLastMenuItem(column);
+ await testLastMenuItem(column);
break;
}
if (shown) {
- yield hideColumn(column);
+ await hideColumn(monitor, column);
}
}
- yield teardown(monitor);
-
- function* hideColumn(column) {
- info(`Clicking context-menu item for ${column}`);
- EventUtils.sendMouseEvent({ type: "contextmenu" },
- document.querySelector("#requests-list-status-button") ||
- document.querySelector("#requests-list-waterfall-button"));
+ await teardown(monitor);
- let onHeaderRemoved = waitForDOM(document, `#requests-list-${column}-button`, 0);
- parent.document.querySelector(`#request-list-header-${column}-toggle`).click();
-
- yield onHeaderRemoved;
- ok(!document.querySelector(`#requests-list-${column}-button`),
- `Column ${column} should be hidden`);
- }
-
- function* testLastMenuItem(column) {
+ async function testLastMenuItem(column) {
EventUtils.sendMouseEvent({ type: "contextmenu" },
document.querySelector(`#requests-list-${column}-button`));
let menuItem = parent.document.querySelector(`#request-list-header-${column}-toggle`);
ok(menuItem.disabled, "Last visible column menu item should be disabled.");
}
});
--- a/devtools/client/netmonitor/test/browser_net_columns_pref.js
+++ b/devtools/client/netmonitor/test/browser_net_columns_pref.js
@@ -2,43 +2,43 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests if visible columns are properly saved
*/
-add_task(function* () {
+add_task(async function () {
Services.prefs.setCharPref("devtools.netmonitor.visibleColumns",
'["status", "contentSize", "waterfall"]');
- let { monitor } = yield initNetMonitor(SIMPLE_URL);
+ let { monitor } = await initNetMonitor(SIMPLE_URL);
info("Starting test... ");
let { document } = monitor.panelWin;
ok(document.querySelector("#requests-list-status-button"),
"Status column should be shown");
ok(document.querySelector("#requests-list-contentSize-button"),
"Content size column should be shown");
- yield hideColumn(monitor, "status");
- yield hideColumn(monitor, "contentSize");
+ await hideColumn(monitor, "status");
+ await hideColumn(monitor, "contentSize");
let visibleColumns = JSON.parse(
Services.prefs.getCharPref("devtools.netmonitor.visibleColumns")
);
ok(!visibleColumns.includes("status"),
"Pref should be synced for status");
ok(!visibleColumns.includes("contentSize"),
"Pref should be synced for contentSize");
- yield showColumn(monitor, "status");
+ await showColumn(monitor, "status");
visibleColumns = JSON.parse(
Services.prefs.getCharPref("devtools.netmonitor.visibleColumns")
);
ok(visibleColumns.includes("status"),
"Pref should be synced for status");
});
--- a/devtools/client/netmonitor/test/browser_net_columns_reset.js
+++ b/devtools/client/netmonitor/test/browser_net_columns_reset.js
@@ -1,27 +1,27 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests reset column menu item
*/
-add_task(function* () {
- let { monitor } = yield initNetMonitor(SIMPLE_URL);
+add_task(async function () {
+ let { monitor } = await initNetMonitor(SIMPLE_URL);
info("Starting test... ");
let { document, parent, windowRequire } = monitor.panelWin;
let { Prefs } = windowRequire("devtools/client/netmonitor/src/utils/prefs");
let prefBefore = Prefs.visibleColumns;
- hideColumn(monitor, "status");
- hideColumn(monitor, "waterfall");
+ await hideColumn(monitor, "status");
+ await hideColumn(monitor, "waterfall");
EventUtils.sendMouseEvent({ type: "contextmenu" },
document.querySelector("#requests-list-contentSize-button"));
parent.document.querySelector("#request-list-header-reset-columns").click();
ok(JSON.stringify(prefBefore) === JSON.stringify(Prefs.visibleColumns),
"Reset columns item should reset columns pref");
--- a/devtools/client/netmonitor/test/browser_net_columns_time.js
+++ b/devtools/client/netmonitor/test/browser_net_columns_time.js
@@ -9,21 +9,32 @@
add_task(async function () {
let { tab, monitor } = await initNetMonitor(SIMPLE_URL);
info("Starting test... ");
let { document, store, windowRequire } = monitor.panelWin;
let Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
- hideColumn(monitor, "waterfall");
- showColumn(monitor, "endTime");
- showColumn(monitor, "responseTime");
- showColumn(monitor, "duration");
- showColumn(monitor, "latency");
+ let visibleColumns = store.getState().ui.columns;
+
+ // Hide the waterfall column to make sure timing data are fetched
+ // by the other timing columns ("endTime", "responseTime", "duration",
+ // "latency").
+ // Note that all these timing columns are based on the same
+ // `RequestListColumnTime` component.
+ if (visibleColumns.waterfall) {
+ await hideColumn(monitor, "waterfall");
+ }
+
+ ["endTime", "responseTime", "duration", "latency"].forEach(async (column) => {
+ if (!visibleColumns[column]) {
+ await showColumn(monitor, column);
+ }
+ });
let onNetworkEvents = waitForNetworkEvents(monitor, 1);
let onEventTimings = waitFor(monitor.panelWin, EVENTS.RECEIVED_EVENT_TIMINGS);
tab.linkedBrowser.reload();
await Promise.all([onNetworkEvents, onEventTimings]);
// There should be one request in the list.
let requestItems = document.querySelectorAll(".request-list-item");
--- a/devtools/client/netmonitor/test/head.js
+++ b/devtools/client/netmonitor/test/head.js
@@ -701,41 +701,41 @@ function testColumnsAlignment(headers, r
let requestColumn = firstRequestLine.childNodes[i];
is(headerColumn.getBoundingClientRect().left,
requestColumn.getBoundingClientRect().left,
"Headers for columns number " + i + " are aligned."
);
}
}
-function* hideColumn(monitor, column) {
+async function hideColumn(monitor, column) {
let { document, parent } = monitor.panelWin;
info(`Clicking context-menu item for ${column}`);
EventUtils.sendMouseEvent({ type: "contextmenu" },
document.querySelector(".devtools-toolbar.requests-list-headers"));
let onHeaderRemoved = waitForDOM(document, `#requests-list-${column}-button`, 0);
parent.document.querySelector(`#request-list-header-${column}-toggle`).click();
- yield onHeaderRemoved;
+ await onHeaderRemoved;
ok(!document.querySelector(`#requests-list-${column}-button`),
`Column ${column} should be hidden`);
}
-function* showColumn(monitor, column) {
+async function showColumn(monitor, column) {
let { document, parent } = monitor.panelWin;
info(`Clicking context-menu item for ${column}`);
EventUtils.sendMouseEvent({ type: "contextmenu" },
document.querySelector(".devtools-toolbar.requests-list-headers"));
let onHeaderAdded = waitForDOM(document, `#requests-list-${column}-button`, 1);
parent.document.querySelector(`#request-list-header-${column}-toggle`).click();
- yield onHeaderAdded;
+ await onHeaderAdded;
ok(document.querySelector(`#requests-list-${column}-button`),
`Column ${column} should be visible`);
}
/**
* Select a request and switch to its response panel.
*