/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "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); });