forked from mirrors/gecko-dev
Backed out changeset 877d9c37605a (bug 1711622) Backed out changeset c315e89b6e4b (bug 1711622)
106 lines
3.2 KiB
JavaScript
106 lines
3.2 KiB
JavaScript
/* 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",
|
|
"Priority: u=1, i",
|
|
"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);
|
|
});
|