diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js')
-rw-r--r-- | devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js b/devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js new file mode 100644 index 0000000000..197e752a05 --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_edit_resend_with_filtering.js @@ -0,0 +1,153 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests if resending a XHR request while filtering XHR displays + * the correct requests + */ +add_task(async function () { + if ( + Services.prefs.getBoolPref( + "devtools.netmonitor.features.newEditAndResend", + true + ) + ) { + ok( + true, + "Skip this test when pref is true, because this panel won't be default when that is the case." + ); + return; + } + + const { tab, monitor } = await initNetMonitor(POST_RAW_URL, { + requestCount: 1, + }); + const { document, store, windowRequire } = monitor.panelWin; + const { getSelectedRequest } = windowRequire( + "devtools/client/netmonitor/src/selectors/index" + ); + const Actions = windowRequire("devtools/client/netmonitor/src/actions/index"); + store.dispatch(Actions.batchEnable(false)); + + // Execute XHR request and filter by XHR + await performRequests(monitor, tab, 1); + document.querySelector(".requests-list-filter-xhr-button").click(); + + // Confirm XHR request and click it + const xhrRequestItem = document.querySelectorAll(".request-list-item")[0]; + EventUtils.sendMouseEvent({ type: "mousedown" }, xhrRequestItem); + const waitForHeaders = waitUntil(() => + document.querySelector(".headers-overview") + ); + await waitForHeaders; + const firstRequest = getSelectedRequest(store.getState()); + + // Open context menu and execute "Edit & Resend". + EventUtils.sendMouseEvent({ type: "contextmenu" }, xhrRequestItem); + await selectContextMenuItem(monitor, "request-list-context-edit-resend"); + + // Wait for "Edit & Resend" panel to appear + await waitUntil(() => document.querySelector("#custom-request-send-button")); + + // Select the temporary clone-request and check its ID + // it should be calculated from the original request + // by appending '-clone' suffix. + document.querySelectorAll(".request-list-item")[1].click(); + const cloneRequest = getSelectedRequest(store.getState()); + + ok( + cloneRequest.id.replace(/-clone$/, "") == firstRequest.id, + "The second XHR request is a clone of the first" + ); + + // Click the "Send" button and wait till the new request appears in the list + document.querySelector("#custom-request-send-button").click(); + await waitForNetworkEvents(monitor, 1); + + // Filtering by "other" so the resent request is visible after completion + document.querySelector(".requests-list-filter-other-button").click(); + + // Select the new (cloned) request + document.querySelectorAll(".request-list-item")[0].click(); + const resendRequest = getSelectedRequest(store.getState()); + + ok( + resendRequest.id !== firstRequest.id, + "The second XHR request was made and is unique" + ); + + await teardown(monitor); +}); + +/** + * Tests if resending an XHR request while XHR filtering is on, displays + * the correct requests + */ +add_task(async function () { + if ( + Services.prefs.getBoolPref( + "devtools.netmonitor.features.newEditAndResend", + true + ) + ) { + const { tab, monitor } = await initNetMonitor(POST_RAW_URL, { + requestCount: 1, + }); + const { document, store, windowRequire } = monitor.panelWin; + const { getSelectedRequest } = windowRequire( + "devtools/client/netmonitor/src/selectors/index" + ); + const Actions = windowRequire( + "devtools/client/netmonitor/src/actions/index" + ); + store.dispatch(Actions.batchEnable(false)); + + // Execute XHR request and filter by XHR + await performRequests(monitor, tab, 1); + document.querySelector(".requests-list-filter-xhr-button").click(); + + // Confirm XHR request and click it + const xhrRequestItem = document.querySelectorAll(".request-list-item")[0]; + EventUtils.sendMouseEvent({ type: "mousedown" }, xhrRequestItem); + const waitForHeaders = waitUntil(() => + document.querySelector(".headers-overview") + ); + await waitForHeaders; + const firstRequest = getSelectedRequest(store.getState()); + + // Open context menu and execute "Edit & Resend". + EventUtils.sendMouseEvent({ type: "contextmenu" }, xhrRequestItem); + + info("Opening the new request panel"); + const waitForPanels = waitUntil( + () => + document.querySelector(".http-custom-request-panel") && + document.querySelector("#http-custom-request-send-button").disabled === + false + ); + + await selectContextMenuItem(monitor, "request-list-context-edit-resend"); + await waitForPanels; + + // Click the "Send" button and wait till the new request appears in the list + document.querySelector("#http-custom-request-send-button").click(); + await waitForNetworkEvents(monitor, 1); + + // Filtering by "other" so the resent request is visible after completion + document.querySelector(".requests-list-filter-other-button").click(); + + // Select new request + const newRequest = document.querySelectorAll(".request-list-item")[1]; + EventUtils.sendMouseEvent({ type: "mousedown" }, newRequest); + const resendRequest = getSelectedRequest(store.getState()); + + ok( + resendRequest.id !== firstRequest.id, + "The second XHR request was made and is unique" + ); + + await teardown(monitor); + } +}); |