Files
sousa-gecko/devtools/client/netmonitor/test/browser_net_pane-toggle.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

108 lines
2.8 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests if toggling the details pane works as expected.
*/
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");
const { getSelectedRequest, getSortedRequests } = windowRequire(
"devtools/client/netmonitor/src/selectors/index"
);
store.dispatch(Actions.batchEnable(false));
ok(
!document.querySelector(".sidebar-toggle"),
"The pane toggle button should not be visible."
);
is(
!!document.querySelector(".network-details-bar"),
false,
"The details pane should be hidden when the frontend is opened."
);
is(
getSelectedRequest(store.getState()),
undefined,
"There should be no selected item in the requests menu."
);
const networkEvent = waitForNetworkEvents(monitor, 1);
await reloadSelectedTab();
await networkEvent;
ok(
!document.querySelector(".sidebar-toggle"),
"The pane toggle button should not be visible after the first request."
);
is(
!!document.querySelector(".network-details-bar"),
false,
"The details pane should still be hidden after the first request."
);
is(
getSelectedRequest(store.getState()),
undefined,
"There should still be no selected item in the requests menu."
);
store.dispatch(Actions.toggleNetworkDetails());
const toggleButton = document.querySelector(".sidebar-toggle");
is(
toggleButton.classList.contains("pane-collapsed"),
false,
"The pane toggle button should now indicate that the details pane is " +
"not collapsed anymore."
);
is(
!!document.querySelector(".network-details-bar"),
true,
"The details pane should not be hidden after toggle button was pressed."
);
isnot(
getSelectedRequest(store.getState()),
undefined,
"There should be a selected item in the requests menu."
);
is(
getSelectedIndex(store.getState()),
0,
"The first item should be selected in the requests menu."
);
EventUtils.sendMouseEvent({ type: "click" }, toggleButton);
is(
!!document.querySelector(".network-details-bar"),
false,
"The details pane should now be hidden after the toggle button was pressed again."
);
is(
getSelectedRequest(store.getState()),
undefined,
"There should now be no selected item in the requests menu."
);
await teardown(monitor);
function getSelectedIndex(state) {
if (!state.requests.selectedId) {
return -1;
}
return getSortedRequests(state).findIndex(
r => r.id === state.requests.selectedId
);
}
});