summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_copy_headers.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/netmonitor/test/browser_net_copy_headers.js
parentInitial commit. (diff)
downloadthunderbird-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_copy_headers.js')
-rw-r--r--devtools/client/netmonitor/test/browser_net_copy_headers.js105
1 files changed, 105 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_copy_headers.js b/devtools/client/netmonitor/test/browser_net_copy_headers.js
new file mode 100644
index 0000000000..cd6499d93b
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_copy_headers.js
@@ -0,0 +1,105 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests if copying a request's request/response headers works.
+ */
+
+add_task(async function () {
+ const { monitor } = await initNetMonitor(SIMPLE_URL, {
+ requestCount: 1,
+ });
+ info("Starting test... ");
+
+ const { document, store, windowRequire } = monitor.panelWin;
+ const { getSortedRequests, getSelectedRequest } = windowRequire(
+ "devtools/client/netmonitor/src/selectors/index"
+ );
+
+ const wait = waitForNetworkEvents(monitor, 1);
+ await reloadBrowser();
+ await wait;
+
+ EventUtils.sendMouseEvent(
+ { type: "mousedown" },
+ document.querySelectorAll(".request-list-item")[0]
+ );
+
+ const requestItem = getSortedRequests(store.getState())[0];
+ const { method, httpVersion, status, statusText } = requestItem;
+
+ EventUtils.sendMouseEvent(
+ { type: "contextmenu" },
+ document.querySelectorAll(".request-list-item")[0]
+ );
+
+ const selectedRequest = getSelectedRequest(store.getState());
+ is(selectedRequest, requestItem, "Proper request is selected");
+
+ const EXPECTED_REQUEST_HEADERS = [
+ `${method} ${SIMPLE_URL.split("example.com")[1]} ${httpVersion}`,
+ "Host: example.com",
+ "User-Agent: " + navigator.userAgent + "",
+ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "Accept-Language: " + navigator.languages.join(",") + ";q=0.5",
+ "Accept-Encoding: gzip, deflate",
+ "Connection: keep-alive",
+ "Upgrade-Insecure-Requests: 1",
+ "Pragma: no-cache",
+ "Cache-Control: no-cache",
+ ].join("\n");
+
+ await waitForClipboardPromise(
+ async function setup() {
+ await selectContextMenuItem(
+ monitor,
+ "request-list-context-copy-request-headers"
+ );
+ },
+ function validate(result) {
+ // Sometimes, a "Cookie" header is left over from other tests. Remove it:
+ result = String(result).replace(/Cookie: [^\n]+\n/, "");
+ return result === EXPECTED_REQUEST_HEADERS;
+ }
+ );
+ info("Clipboard contains the currently selected item's request headers.");
+
+ const EXPECTED_RESPONSE_HEADERS = [
+ `${httpVersion} ${status} ${statusText}`,
+ "last-modified: Sun, 3 May 2015 11:11:11 GMT",
+ "content-type: text/html",
+ "content-length: 465",
+ "connection: close",
+ "server: httpd.js",
+ "date: Sun, 3 May 2015 11:11:11 GMT",
+ ].join("\n");
+
+ EventUtils.sendMouseEvent(
+ { type: "contextmenu" },
+ document.querySelectorAll(".request-list-item")[0]
+ );
+
+ await waitForClipboardPromise(
+ async function setup() {
+ await selectContextMenuItem(
+ monitor,
+ "response-list-context-copy-response-headers"
+ );
+ },
+ function validate(result) {
+ // Fake the "Last-Modified" and "Date" headers because they will vary:
+ result = String(result)
+ .replace(
+ /last-modified: [^\n]+ GMT/,
+ "last-modified: Sun, 3 May 2015 11:11:11 GMT"
+ )
+ .replace(/date: [^\n]+ GMT/, "date: Sun, 3 May 2015 11:11:11 GMT");
+ return result === EXPECTED_RESPONSE_HEADERS;
+ }
+ );
+ info("Clipboard contains the currently selected item's response headers.");
+
+ await teardown(monitor);
+});