Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: http3 OR http2
- Manifest: devtools/client/netmonitor/test/browser.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests that file URL requests are properly displayed in the network monitor.
*/
add_task(async function test_file_uris() {
const TEST_URI = Services.io.newFileURI(
new FileUtils.File(getTestFilePath("html_file_channel.html"))
).spec;
const { monitor } = await initNetMonitor(TEST_URI, {
requestCount: 2,
waitForLoad: false,
});
info("Starting test... ");
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
const wait = waitForNetworkEvents(monitor, 2);
reloadBrowser({ waitForLoad: false });
await wait;
const htmlEntry = document.querySelectorAll(".request-list-item")[0];
ok(
htmlEntry
.querySelector(".requests-list-url")
.innerText.endsWith("file_channel.html"),
"The url for the html request is correct"
);
is(
htmlEntry.querySelector(".requests-list-scheme").innerText,
"file",
"The scheme for the html request is correct"
);
ok(hasValidSize(htmlEntry), "The request shows a valid size");
const imageEntry = document.querySelectorAll(".request-list-item")[1];
ok(
imageEntry
.querySelector(".requests-list-url")
.innerText.endsWith("test-image.png"),
"The url for the image request is correct"
);
is(
imageEntry.querySelector(".requests-list-scheme").innerText,
"file",
"The scheme for the image request is correct"
);
ok(hasValidSize(imageEntry), "The request shows a valid size");
const onResponseContent = monitor.panelWin.api.once(
TEST_EVENTS.RECEIVED_RESPONSE_CONTENT
);
info("Check that a valid image is loaded in the response tab");
const waitDOM = waitForDOM(document, "#response-panel .response-image");
store.dispatch(Actions.selectRequestByIndex(1));
document.querySelector("#response-tab").click();
const [imageNode] = await waitDOM;
await once(imageNode, "load");
await onResponseContent;
info("Verify we only have 2 requests, and the chrome request was not listed");
const sortedRequests = getSortedRequests(store.getState());
is(sortedRequests.length, 2, "Only 2 requests are displayed");
await teardown(monitor);
});