1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
7 * Test if the summary text displayed in the network requests menu footer is correct.
10 add_task(async
function () {
14 } = require("resource://devtools/client/netmonitor/src/utils/format-utils.js");
16 requestLongerTimeout(2);
18 const { tab
, monitor
} = await
initNetMonitor(FILTERING_URL
, {
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));
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 }'
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
);
56 await
teardown(monitor
);
58 function testStatus() {
59 const state
= store
.getState();
60 const totalRequestsCount
= state
.requests
.requests
.length
;
61 const requestsSummary
= getDisplayedRequestsSummary(state
);
63 `Current requests: ${requestsSummary.count} of ${totalRequestsCount}.`
66 const valueCount
= document
.querySelector(
67 ".requests-list-network-summary-count"
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
) {
78 L10N
.getStr("networkMenu.summary.requestsCountEmpty"),
79 "The current summary text is incorrect, expected an 'empty' label."
84 const valueTransfer
= document
.querySelector(
85 ".requests-list-network-summary-transfer"
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"
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.");
110 "The current summary transfer is correct."
112 is(valueFinish
, expectedFinish
, "The current summary finish is correct.");