Files
sousa-gecko/devtools/client/netmonitor/test/browser_net_status-bar.js
T
Alexandre Poirot 25c8ad77e8 Bug 2007539 - [devtools] Reload pages as Firefox does in DevTools tests. r=devtools-reviewers,nchevobbe
The `gBrowser.reloadTab` method was doing a very light reload,
which could preserve iframe overriden locations.
The new method ensures we load the original HTML content back,
this seems to also have an impact on keep-alive which is not longer guaranteed.

Only supports reloading the currently selected tab, to better replicate
real user scenarios. But also to comply to `BrowserCommands.reload`,
which only supports reloading the selected tab.

Also tune the har test, now that requests are really cancelled
and we may try to fetch reponse content for such request.

Differential Revision: https://phabricator.services.mozilla.com/D277433
2026-01-20 20:44:46 +00:00

61 lines
1.9 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Test whether the StatusBar properly renders expected labels.
*/
add_task(async () => {
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));
await SpecialPowers.pushPrefEnv({
set: [["privacy.reduceTimerPrecision", false]],
});
const requestsDone = waitForNetworkEvents(monitor, 1);
const markersDone = waitForTimelineMarkers(monitor);
await reloadSelectedTab();
await Promise.all([requestsDone, markersDone]);
const statusBar = document.querySelector(".devtools-toolbar-bottom");
const requestCount = statusBar.querySelector(
".requests-list-network-summary-count"
);
const size = statusBar.querySelector(
".requests-list-network-summary-transfer"
);
const onContentLoad = statusBar.querySelector(".dom-content-loaded");
const onLoad = statusBar.querySelector(".load");
// All expected labels should be there
ok(requestCount, "There must be request count label");
ok(size, "There must be size label");
ok(onContentLoad, "There must be DOMContentLoaded label");
ok(onLoad, "There must be load label");
// The content should not be empty. The UI update can also be async,
// so use waitUntil.
await waitUntil(() => requestCount.textContent);
ok(true, "There must be request count label text");
await waitUntil(() => size.textContent);
ok(true, "There must be size label text");
await waitUntil(() => onContentLoad.textContent);
ok(true, "There must be DOMContentLoaded label text");
await waitUntil(() => onLoad.textContent);
ok(true, "There must be load label text");
return teardown(monitor);
});