tor-browser

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

network-messages.test.js (3456B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 "use strict";
      4 
      5 const {
      6  getAllNetworkMessagesUpdateById,
      7 } = require("resource://devtools/client/webconsole/selectors/messages.js");
      8 const {
      9  setupActions,
     10  setupStore,
     11  clonePacket,
     12 } = require("resource://devtools/client/webconsole/test/node/helpers.js");
     13 const {
     14  stubPackets,
     15 } = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js");
     16 
     17 const expect = require("expect");
     18 
     19 describe("Network message reducer:", () => {
     20  let actions;
     21  let getState;
     22  let dispatch;
     23 
     24  beforeAll(() => {
     25    actions = setupActions();
     26  });
     27 
     28  beforeEach(() => {
     29    const store = setupStore();
     30 
     31    getState = store.getState;
     32    dispatch = store.dispatch;
     33 
     34    const packet = clonePacket(stubPackets.get("GET request"));
     35    const updatePacket = clonePacket(stubPackets.get("GET request update"));
     36 
     37    packet.actor = "message1";
     38    updatePacket.actor = "message1";
     39    dispatch(actions.messagesAdd([packet]));
     40    dispatch(actions.networkMessageUpdates([updatePacket]));
     41  });
     42 
     43  describe("networkMessagesUpdateById", () => {
     44    it("adds fetched HTTP request headers", () => {
     45      const headers = {
     46        headers: [],
     47      };
     48 
     49      dispatch(
     50        actions.networkUpdateRequests([
     51          {
     52            id: "message1",
     53            data: {
     54              requestHeaders: headers,
     55            },
     56          },
     57        ])
     58      );
     59 
     60      const networkUpdates = getAllNetworkMessagesUpdateById(getState());
     61      expect(networkUpdates.message1.requestHeaders).toBe(headers);
     62    });
     63 
     64    it("makes sure multiple HTTP updates of same request does not override", () => {
     65      dispatch(
     66        actions.networkUpdateRequests([
     67          {
     68            id: "message1",
     69            data: {
     70              stacktrace: [{}],
     71            },
     72          },
     73          {
     74            id: "message1",
     75            data: {
     76              requestHeaders: { headers: [] },
     77            },
     78          },
     79        ])
     80      );
     81 
     82      const networkUpdates = getAllNetworkMessagesUpdateById(getState());
     83      expect(networkUpdates.message1.requestHeaders).toNotBe(undefined);
     84      expect(networkUpdates.message1.stacktrace).toNotBe(undefined);
     85    });
     86 
     87    it("adds fetched HTTP security info", () => {
     88      const securityInfo = {
     89        state: "insecure",
     90      };
     91 
     92      dispatch(
     93        actions.networkUpdateRequests([
     94          {
     95            id: "message1",
     96            data: {
     97              securityState: "insecure",
     98              securityInfo,
     99            },
    100          },
    101        ])
    102      );
    103 
    104      const networkUpdates = getAllNetworkMessagesUpdateById(getState());
    105      expect(networkUpdates.message1.securityInfo).toBe(securityInfo);
    106      expect(networkUpdates.message1.securityState).toBe("insecure");
    107    });
    108 
    109    it("adds fetched HTTP post data", () => {
    110      const uploadHeaders = Symbol();
    111      const requestPostData = {
    112        postData: {
    113          text: "",
    114        },
    115        uploadHeaders,
    116      };
    117 
    118      dispatch(
    119        actions.networkUpdateRequests([
    120          {
    121            id: "message1",
    122            data: {
    123              requestPostData,
    124            },
    125          },
    126        ])
    127      );
    128 
    129      const { message1 } = getAllNetworkMessagesUpdateById(getState());
    130      expect(message1.requestPostData).toBe(requestPostData);
    131      expect(message1.requestHeadersFromUploadStream).toBe(uploadHeaders);
    132    });
    133  });
    134 });