From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../netmonitor/test/browser_net_large-response.js | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 devtools/client/netmonitor/test/browser_net_large-response.js (limited to 'devtools/client/netmonitor/test/browser_net_large-response.js') diff --git a/devtools/client/netmonitor/test/browser_net_large-response.js b/devtools/client/netmonitor/test/browser_net_large-response.js new file mode 100644 index 0000000000..b72536199a --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_large-response.js @@ -0,0 +1,92 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests if very large response contents are just displayed as plain text. + */ + +const HTML_LONG_URL = CONTENT_TYPE_SJS + "?fmt=html-long"; + +add_task(async function () { + const { tab, monitor } = await initNetMonitor(CUSTOM_GET_URL, { + requestCount: 1, + }); + info("Starting test... "); + + // This test could potentially be slow because over 100 KB of stuff + // is going to be requested and displayed in the source editor. + requestLongerTimeout(2); + + 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)); + + let wait = waitForNetworkEvents(monitor, 1); + await SpecialPowers.spawn( + tab.linkedBrowser, + [HTML_LONG_URL], + async function (url) { + content.wrappedJSObject.performRequests(1, url); + } + ); + await wait; + + const requestItem = document.querySelector(".request-list-item"); + requestItem.scrollIntoView(); + 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", + CONTENT_TYPE_SJS + "?fmt=html-long", + { + status: 200, + statusText: "OK", + } + ); + + wait = waitForDOM(document, "#response-panel .data-header"); + store.dispatch(Actions.toggleNetworkDetails()); + clickOnSidebarTab(document, "response"); + await wait; + + wait = waitForDOM(document, "#response-panel .CodeMirror-code"); + const payloadHeader = document.querySelector( + "#response-panel .raw-data-toggle-input .devtools-checkbox-toggle" + ); + clickElement(payloadHeader, monitor); + await wait; + + ok( + getCodeMirrorValue(monitor).match(/^

/), + "The text shown in the source editor is incorrect." + ); + + info("Check that search input can be displayed"); + document.querySelector(".CodeMirror").CodeMirror.focus(); + synthesizeKeyShortcut("CmdOrCtrl+F"); + const searchInput = await waitFor(() => + document.querySelector(".CodeMirror input[type=search]") + ); + ok( + searchInput.ownerDocument.activeElement == searchInput, + "search input is focused" + ); + + await teardown(monitor); + + // This test uses a lot of memory, so force a GC to help fragmentation. + info("Forcing GC after netmonitor test."); + Cu.forceGC(); +}); -- cgit v1.2.3