summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/xpcshell/test_request-utils-fetchNetworkUpdatePacket.js
blob: 6b7a66f5ad2014c276336d93ff64f7ab4285e63c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

// Test devtools/client/netmonitor/src/utils/request-utils.js function
// |fetchNetworkUpdatePacket|

"use strict";

const { require } = ChromeUtils.importESModule(
  "resource://devtools/shared/loader/Loader.sys.mjs"
);
const {
  fetchNetworkUpdatePacket,
} = require("resource://devtools/client/netmonitor/src/utils/request-utils.js");

function run_test() {
  let fetchedNetworkUpdateTypes = [];
  async function mockConnectorRequestData(id, updateType) {
    fetchedNetworkUpdateTypes.push(updateType);
    return updateType;
  }

  const updateTypes = ["requestHeaders", "responseHeaders"];
  const request = {
    id: "foo",
    requestHeadersAvailable: true,
    responseHeadersAvailable: true,
  };

  info(
    "Testing that the expected network update packets were fetched from the server"
  );
  fetchNetworkUpdatePacket(mockConnectorRequestData, request, updateTypes);
  equal(fetchedNetworkUpdateTypes.length, 2, "Two network request updates");
  equal(
    fetchedNetworkUpdateTypes[0],
    "requestHeaders",
    "Request headers updates"
  );
  equal(
    fetchedNetworkUpdateTypes[1],
    "responseHeaders",
    " Response headers updates"
  );

  // clear the fetch updates for next test
  fetchedNetworkUpdateTypes = [];

  info(
    "Testing that no network updates were fetched when no `request` is provided"
  );
  fetchNetworkUpdatePacket(mockConnectorRequestData, undefined, updateTypes);
  equal(fetchedNetworkUpdateTypes.length, 0, "No network request updates");
}