Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests for timings columns. Note that the column
* header is visible only if there are requests in the list.
*/
add_task(async function () {
const { monitor } = await initNetMonitor(SIMPLE_URL, {
requestCount: 1,
});
info("Starting test... ");
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
const visibleColumns = store.getState().ui.columns;
const wait = waitForNetworkEvents(monitor, 1);
await reloadBrowser();
await wait;
// 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);
}
});
const onNetworkEvents = waitForNetworkEvents(monitor, 1);
await reloadBrowser();
await onNetworkEvents;
// There should be one request in the list.
const requestItems = document.querySelectorAll(".request-list-item");
is(requestItems.length, 1, "There must be one visible item");
const item = requestItems[0];
const types = ["end", "response", "duration", "latency"];
for (const t of types) {
await waitUntil(() => {
const node = item.querySelector(".requests-list-" + t + "-time");
const value = parseInt(node.textContent, 10);
return value > 0;
});
}
await teardown(monitor);
});