summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_columns_pref.js
blob: 4c64ac8f943e16602f8ed026227670ade5952ecc (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
55
56
57
58
59
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Tests if visible columns are properly saved. Note that the column
 * header is visible only if there are requests in the list.
 */

add_task(async function () {
  Services.prefs.setCharPref(
    "devtools.netmonitor.visibleColumns",
    '["status", "contentSize", "waterfall"]'
  );

  const { monitor } = await initNetMonitor(SIMPLE_URL, {
    requestCount: 1,
  });
  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, 1);
  await reloadBrowser();
  await wait;

  ok(
    document.querySelector("#requests-list-status-button"),
    "Status column should be shown"
  );
  ok(
    document.querySelector("#requests-list-contentSize-button"),
    "Content size column should be shown"
  );

  await hideColumn(monitor, "status");
  await hideColumn(monitor, "contentSize");

  let visibleColumns = JSON.parse(
    Services.prefs.getCharPref("devtools.netmonitor.visibleColumns")
  );

  ok(!visibleColumns.includes("status"), "Pref should be synced for status");
  ok(
    !visibleColumns.includes("contentSize"),
    "Pref should be synced for contentSize"
  );

  await showColumn(monitor, "status");

  visibleColumns = JSON.parse(
    Services.prefs.getCharPref("devtools.netmonitor.visibleColumns")
  );

  ok(visibleColumns.includes("status"), "Pref should be synced for status");
});