Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
const TEST_FILE = "test-network-request.html";
const TEST_PATH =
const TEST_URI = TEST_PATH + TEST_FILE;
const NET_PREF = "devtools.webconsole.filter.net";
const XHR_PREF = "devtools.webconsole.filter.netxhr";
const {
l10n,
} = require("resource://devtools/client/webconsole/utils/messages.js");
const LEARN_MORE_URI =
pushPref(NET_PREF, true);
pushPref(XHR_PREF, true);
registerCleanupFunction(async function () {
await new Promise(resolve => {
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
resolve()
);
});
});
add_task(async function task() {
const hud = await openNewTabAndConsole(TEST_URI);
const onNetworkMessageUpdate = hud.ui.once("network-messages-updated");
// Fire an XHR POST request.
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
content.wrappedJSObject.testXhrPost();
});
info("XHR executed");
await onNetworkMessageUpdate;
const xhrUrl = TEST_PATH + "test-data.json";
const messageNode = await waitFor(() =>
findMessageByType(hud, xhrUrl, ".network")
);
ok(!!messageNode, "Network message found.");
const statusCodeNode = await waitFor(() =>
messageNode.querySelector(".status-code")
);
is(
statusCodeNode.title,
l10n.getStr("webConsoleMoreInfoLabel"),
"Status code has the expected tooltip"
);
info("Left click status code node and observe the link opens.");
const { link, where } = await simulateLinkClick(statusCodeNode);
is(link, LEARN_MORE_URI, `Clicking the provided link opens ${link}`);
is(where, "tab", "Link opened in correct tab.");
info("Right click status code node and observe the context menu opening.");
await openContextMenu(hud, statusCodeNode);
await hideContextMenu(hud);
await new Promise(resolve => {
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
resolve()
);
});
});