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.netxhr", true);
const hud = await openNewTabAndConsole(TEST_URI);
const currentTab = gBrowser.selectedTab;
const toolbox = gDevTools.getToolboxForTab(currentTab);
const xhrUrl = TEST_PATH + "test-data.json";
const onMessage = waitForMessageByType(hud, xhrUrl, ".network");
// Fire an XHR POST request.
SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
content.wrappedJSObject.testXhrGet();
});
const { node: messageNode } = await onMessage;
ok(messageNode, "Network message found.");
// Expand network log
info("Click on XHR message to display network detail panel");
messageNode.querySelector(".url").click();
const headersTab = await waitFor(() =>
messageNode.querySelector("#headers-tab")
);
ok(headersTab, "Headers tab is available");
// Wait for all network RDP request to be finished and have updated the UI
await waitUntil(() =>
messageNode.querySelector("#headers-panel .headers-overview")
);
info("Focus header tab and hit Escape");
headersTab.focus();
EventUtils.sendKey("ESCAPE", toolbox.win);
await waitFor(() => !messageNode.querySelector(".network-info"));
ok(true, "The detail panel was closed on escape");
});