tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_net_file_uri.js (2366B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 /**
      7 * Tests that file URL requests are properly displayed in the network monitor.
      8 */
      9 add_task(async function test_file_uris() {
     10  const TEST_URI = Services.io.newFileURI(
     11    new FileUtils.File(getTestFilePath("html_file_channel.html"))
     12  ).spec;
     13 
     14  const { monitor } = await initNetMonitor(TEST_URI, {
     15    requestCount: 2,
     16    waitForLoad: false,
     17  });
     18  info("Starting test... ");
     19 
     20  const { document, store, windowRequire } = monitor.panelWin;
     21  const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
     22 
     23  store.dispatch(Actions.batchEnable(false));
     24 
     25  const wait = waitForNetworkEvents(monitor, 2);
     26  reloadBrowser({ waitForLoad: false });
     27  await wait;
     28 
     29  const htmlEntry = document.querySelectorAll(".request-list-item")[0];
     30  ok(
     31    htmlEntry
     32      .querySelector(".requests-list-url")
     33      .innerText.endsWith("file_channel.html"),
     34    "The url for the html request is correct"
     35  );
     36  is(
     37    htmlEntry.querySelector(".requests-list-scheme").innerText,
     38    "file",
     39    "The scheme for the html request is correct"
     40  );
     41  ok(hasValidSize(htmlEntry), "The request shows a valid size");
     42 
     43  const imageEntry = document.querySelectorAll(".request-list-item")[1];
     44  ok(
     45    imageEntry
     46      .querySelector(".requests-list-url")
     47      .innerText.endsWith("test-image.png"),
     48    "The url for the image request is correct"
     49  );
     50  is(
     51    imageEntry.querySelector(".requests-list-scheme").innerText,
     52    "file",
     53    "The scheme for the image request is correct"
     54  );
     55  ok(hasValidSize(imageEntry), "The request shows a valid size");
     56 
     57  const onResponseContent = monitor.panelWin.api.once(
     58    TEST_EVENTS.RECEIVED_RESPONSE_CONTENT
     59  );
     60 
     61  info("Check that a valid image is loaded in the response tab");
     62  const waitDOM = waitForDOM(document, "#response-panel .response-image");
     63  store.dispatch(Actions.selectRequestByIndex(1));
     64  document.querySelector("#response-tab").click();
     65  const [imageNode] = await waitDOM;
     66  await once(imageNode, "load");
     67  await onResponseContent;
     68 
     69  info("Verify we only have 2 requests, and the chrome request was not listed");
     70  const sortedRequests = getSortedRequests(store.getState());
     71  is(sortedRequests.length, 2, "Only 2 requests are displayed");
     72 
     73  await teardown(monitor);
     74 });