60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Tests if the POST data displays in the UI before the server
|
|
* sends any response.
|
|
*/
|
|
add_task(async function () {
|
|
const { tab, monitor } = await initNetMonitor(SIMPLE_URL, {
|
|
requestCount: 1,
|
|
});
|
|
info("Starting test... ");
|
|
|
|
const { document, store, windowRequire } = monitor.panelWin;
|
|
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
|
|
|
|
store.dispatch(Actions.batchEnable(false));
|
|
|
|
const waitForRequest = waitForDOM(document, ".request-list-item");
|
|
SpecialPowers.spawn(
|
|
tab.linkedBrowser,
|
|
["sjs_no-response-server.sjs"],
|
|
url => {
|
|
const xhr = new content.XMLHttpRequest();
|
|
xhr.open("POST", url, true);
|
|
xhr.send("foobar");
|
|
}
|
|
);
|
|
|
|
await waitForRequest;
|
|
EventUtils.sendMouseEvent(
|
|
{ type: "mousedown" },
|
|
document.querySelectorAll(".request-list-item")[0]
|
|
);
|
|
|
|
const waitForPanel = waitForDOM(document, "#request-panel .cm-content");
|
|
clickOnSidebarTab(document, "request");
|
|
|
|
await waitForPanel;
|
|
const tabpanel = document.querySelector("#request-panel");
|
|
is(
|
|
tabpanel.querySelectorAll(".empty-notice").length,
|
|
0,
|
|
"The empty notice is not displayed in this tabpanel."
|
|
);
|
|
|
|
const editor = tabpanel.querySelector(".cm-content");
|
|
is(editor.textContent, "foobar", "The editor content is foobar");
|
|
|
|
const requestListItem = document.querySelectorAll(".request-list-item")[0];
|
|
ok(
|
|
!requestListItem.querySelector(".requests-list-status-code")?.textContent,
|
|
"The request list item should not display a status code yet."
|
|
);
|
|
|
|
return teardown(monitor);
|
|
});
|