Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* 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;
registerCleanupFunction(async function () {
await new Promise(resolve => {
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
resolve()
);
});
});
add_task(async function task() {
await pushPref("devtools.webconsole.filter.net", false);
await pushPref("devtools.webconsole.filter.netxhr", true);
await openNewTabAndToolbox(TEST_URI, "netmonitor");
const currentTab = gBrowser.selectedTab;
const toolbox = gDevTools.getToolboxForTab(currentTab);
const panel = toolbox.getCurrentPanel().panelWin;
const netReady = panel.api.once("NetMonitor:PayloadReady");
// Fire an XHR POST request.
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
content.wrappedJSObject.testXhrGet();
});
info("XHR executed");
await netReady;
info("NetMonitor:PayloadReady received");
const { hud } = await toolbox.selectTool("webconsole");
const xhrUrl = TEST_PATH + "test-data.json";
const messageNode = await waitFor(() =>
findMessageByType(hud, xhrUrl, ".network")
);
const urlNode = messageNode.querySelector(".url");
info("Network message found.");
const onReady = hud.ui.once("network-request-payload-ready");
// Expand network log
urlNode.click();
await onReady;
info("network-request-payload-ready received");
await testNetworkMessage(messageNode);
await waitForLazyRequests(toolbox);
});
async function testNetworkMessage(messageNode) {
const headersTab = messageNode.querySelector("#headers-tab");
ok(headersTab, "Headers tab is available");
// Headers tab should be selected by default, so just check its content.
await waitUntil(() =>
messageNode.querySelector("#headers-panel .headers-overview")
);
}