1
0
Fork 0
firefox/devtools/client/netmonitor/test/browser_net_throttle.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

60 lines
1.8 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// Network throttling integration test.
"use strict";
requestLongerTimeout(2);
add_task(async function () {
await throttleTest({ throttle: true, addLatency: true });
await throttleTest({ throttle: true, addLatency: false });
await throttleTest({ throttle: false, addLatency: false });
});
async function throttleTest(options) {
const { throttle, addLatency } = options;
const { monitor } = await initNetMonitor(SIMPLE_URL, { requestCount: 1 });
const { store, windowRequire, connector } = monitor.panelWin;
const { ACTIVITY_TYPE } = windowRequire(
"devtools/client/netmonitor/src/constants"
);
const { updateNetworkThrottling, triggerActivity } = connector;
const { getSortedRequests } = windowRequire(
"devtools/client/netmonitor/src/selectors/index"
);
info(`Starting test... (throttle = ${throttle}, addLatency = ${addLatency})`);
// When throttling, must be smaller than the length of the content
// of SIMPLE_URL in bytes.
const size = throttle ? 200 : 0;
const latency = addLatency ? 100 : 0;
const throttleProfile = {
latency,
download: size,
upload: 10000,
};
info("sending throttle request");
await updateNetworkThrottling(true, throttleProfile);
const wait = waitForNetworkEvents(monitor, 1);
await triggerActivity(ACTIVITY_TYPE.RELOAD.WITH_CACHE_DISABLED);
await wait;
await waitForRequestData(store, ["eventTimings"]);
const requestItem = getSortedRequests(store.getState())[0];
const reportedOneSecond = requestItem.eventTimings.timings.receive > 1000;
if (throttle) {
ok(reportedOneSecond, "download reported as taking more than one second");
} else {
ok(!reportedOneSecond, "download reported as taking less than one second");
}
await teardown(monitor);
}