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_telemetry_edit_resend.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_telemetry_edit_resend.js')
-rw-r--r-- | devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js b/devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js new file mode 100644 index 0000000000..3ed6b55aeb --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_telemetry_edit_resend.js @@ -0,0 +1,71 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const ALL_CHANNELS = Ci.nsITelemetry.DATASET_ALL_CHANNELS; + +/** + * Test the edit_resend telemetry event. + */ +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 { monitor } = await initNetMonitor(HTTPS_SIMPLE_URL, { + requestCount: 1, + }); + info("Starting test... "); + + const { document, store, windowRequire } = monitor.panelWin; + const Actions = windowRequire("devtools/client/netmonitor/src/actions/index"); + store.dispatch(Actions.batchEnable(false)); + + // Remove all telemetry events (you can check about:telemetry). + Services.telemetry.clearEvents(); + + // Ensure no events have been logged + const snapshot = Services.telemetry.snapshotEvents(ALL_CHANNELS, true); + ok(!snapshot.parent, "No events have been logged for the main process"); + + // Reload to have one request in the list. + const waitForEvents = waitForNetworkEvents(monitor, 1); + await navigateTo(HTTPS_SIMPLE_URL); + await waitForEvents; + + // Open context menu and execute "Edit & Resend". + const firstRequest = document.querySelectorAll(".request-list-item")[0]; + const waitForHeaders = waitUntil(() => + document.querySelector(".headers-overview") + ); + EventUtils.sendMouseEvent({ type: "mousedown" }, firstRequest); + await waitForHeaders; + await waitForRequestData(store, ["requestHeaders", "responseHeaders"]); + EventUtils.sendMouseEvent({ type: "contextmenu" }, firstRequest); + + // Open "New Request" form and resend. + await selectContextMenuItem(monitor, "request-list-context-edit-resend"); + await waitUntil(() => document.querySelector("#custom-request-send-button")); + document.querySelector("#custom-request-send-button").click(); + + await waitForNetworkEvents(monitor, 1); + + // Verify existence of the telemetry event. + checkTelemetryEvent( + {}, + { + method: "edit_resend", + } + ); + + await teardown(monitor); +}); |