diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /devtools/client/netmonitor/test/browser_net_brotli.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_brotli.js')
-rw-r--r-- | devtools/client/netmonitor/test/browser_net_brotli.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_brotli.js b/devtools/client/netmonitor/test/browser_net_brotli.js new file mode 100644 index 0000000000..84576ceca6 --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_brotli.js @@ -0,0 +1,81 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const BROTLI_URL = HTTPS_EXAMPLE_URL + "html_brotli-test-page.html"; +const BROTLI_REQUESTS = 1; + +/** + * Test brotli encoded response is handled correctly on HTTPS. + */ + +add_task(async function () { + const { + L10N, + } = require("resource://devtools/client/netmonitor/src/utils/l10n.js"); + + const { tab, monitor } = await initNetMonitor(BROTLI_URL, { + requestCount: 1, + }); + info("Starting test... "); + + const { document, store, windowRequire } = monitor.panelWin; + const Actions = windowRequire("devtools/client/netmonitor/src/actions/index"); + const { getDisplayedRequests, getSortedRequests } = windowRequire( + "devtools/client/netmonitor/src/selectors/index" + ); + + store.dispatch(Actions.batchEnable(false)); + + // Execute requests. + await performRequests(monitor, tab, BROTLI_REQUESTS); + + const requestItem = document.querySelector(".request-list-item"); + // Status code title is generated on hover + const requestsListStatus = requestItem.querySelector(".status-code"); + EventUtils.sendMouseEvent({ type: "mouseover" }, requestsListStatus); + await waitUntil(() => requestsListStatus.title); + await waitForDOMIfNeeded(requestItem, ".requests-list-timings-total"); + + verifyRequestItemTarget( + document, + getDisplayedRequests(store.getState()), + getSortedRequests(store.getState())[0], + "GET", + HTTPS_CONTENT_TYPE_SJS + "?fmt=br", + { + status: 200, + statusText: "OK", + type: "json", + fullMimeType: "text/json", + transferred: L10N.getFormatStrWithNumbers("networkMenu.sizeB", 252), + size: L10N.getFormatStrWithNumbers("networkMenu.sizeB", 64), + time: true, + } + ); + + const wait = waitForDOM(document, ".CodeMirror-code"); + const onResponseContent = monitor.panelWin.api.once( + TEST_EVENTS.RECEIVED_RESPONSE_CONTENT + ); + store.dispatch(Actions.toggleNetworkDetails()); + clickOnSidebarTab(document, "response"); + await wait; + await onResponseContent; + await testResponse("br"); + await teardown(monitor); + + function testResponse(type) { + switch (type) { + case "br": { + is( + getCodeMirrorValue(monitor), + "X".repeat(64), + "The text shown in the source editor is incorrect for the brotli request." + ); + break; + } + } + } +}); |