Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / devtools / client / netmonitor / test / browser_net_footer-summary.js
blobe0b12bcf770db361e52ed40b9dd0edaf284bac89
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 "use strict";
6 /**
7 * Test if the summary text displayed in the network requests menu footer is correct.
8 */
10 add_task(async function () {
11 const {
12 getFormattedSize,
13 getFormattedTime,
14 } = require("resource://devtools/client/netmonitor/src/utils/format-utils.js");
16 requestLongerTimeout(2);
18 const { tab, monitor } = await initNetMonitor(FILTERING_URL, {
19 requestCount: 1,
20 });
21 info("Starting test... ");
23 const { document, store, windowRequire } = monitor.panelWin;
24 const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
25 const { getDisplayedRequestsSummary } = windowRequire(
26 "devtools/client/netmonitor/src/selectors/index"
28 const { L10N } = windowRequire("devtools/client/netmonitor/src/utils/l10n");
29 const { PluralForm } = windowRequire("devtools/shared/plural-form");
31 store.dispatch(Actions.batchEnable(false));
32 testStatus();
34 for (let i = 0; i < 2; i++) {
35 info(`Performing requests in batch #${i}`);
36 const wait = waitForNetworkEvents(monitor, 8);
37 await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
38 content.wrappedJSObject.performRequests(
39 '{ "getMedia": true, "getFlash": true }'
41 });
42 await wait;
44 testStatus();
46 const buttons = ["html", "css", "js", "xhr", "fonts", "images", "media"];
47 for (const button of buttons) {
48 const buttonEl = document.querySelector(
49 `.requests-list-filter-${button}-button`
51 EventUtils.sendMouseEvent({ type: "click" }, buttonEl);
52 testStatus();
56 await teardown(monitor);
58 function testStatus() {
59 const state = store.getState();
60 const totalRequestsCount = state.requests.requests.length;
61 const requestsSummary = getDisplayedRequestsSummary(state);
62 info(
63 `Current requests: ${requestsSummary.count} of ${totalRequestsCount}.`
66 const valueCount = document.querySelector(
67 ".requests-list-network-summary-count"
68 ).textContent;
69 info("Current summary count: " + valueCount);
70 const expectedCount = PluralForm.get(
71 requestsSummary.count,
72 L10N.getStr("networkMenu.summary.requestsCount2")
73 ).replace("#1", requestsSummary.count);
75 if (!totalRequestsCount || !requestsSummary.count) {
76 is(
77 valueCount,
78 L10N.getStr("networkMenu.summary.requestsCountEmpty"),
79 "The current summary text is incorrect, expected an 'empty' label."
81 return;
84 const valueTransfer = document.querySelector(
85 ".requests-list-network-summary-transfer"
86 ).textContent;
87 info("Current summary transfer: " + valueTransfer);
88 const expectedTransfer = L10N.getFormatStrWithNumbers(
89 "networkMenu.summary.transferred",
90 getFormattedSize(requestsSummary.contentSize),
91 getFormattedSize(requestsSummary.transferredSize)
94 const valueFinish = document.querySelector(
95 ".requests-list-network-summary-finish"
96 ).textContent;
97 info("Current summary finish: " + valueFinish);
98 const expectedFinish = L10N.getFormatStrWithNumbers(
99 "networkMenu.summary.finish",
100 getFormattedTime(requestsSummary.ms)
103 info(`Computed total bytes: ${requestsSummary.bytes}`);
104 info(`Computed total ms: ${requestsSummary.ms}`);
106 is(valueCount, expectedCount, "The current summary count is correct.");
108 valueTransfer,
109 expectedTransfer,
110 "The current summary transfer is correct."
112 is(valueFinish, expectedFinish, "The current summary finish is correct.");