Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 /**
5 * Test if the summary text displayed in the network requests menu footer
6 * is correct.
7 */
9 function test() {
10 requestLongerTimeout(2);
11 let { PluralForm } = Cu.import("resource://gre/modules/PluralForm.jsm", {});
13 initNetMonitor(FILTERING_URL).then(([aTab, aDebuggee, aMonitor]) => {
14 info("Starting test... ");
16 let { $, L10N, NetMonitorView } = aMonitor.panelWin;
17 let { RequestsMenu } = NetMonitorView;
19 RequestsMenu.lazyUpdate = false;
20 testStatus();
22 waitForNetworkEvents(aMonitor, 8).then(() => {
23 testStatus();
25 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-html-button"));
26 testStatus();
28 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-css-button"));
29 testStatus();
31 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-js-button"));
32 testStatus();
34 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-xhr-button"));
35 testStatus();
37 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-fonts-button"));
38 testStatus();
40 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-images-button"));
41 testStatus();
43 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-media-button"));
44 testStatus();
46 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-flash-button"));
47 testStatus();
49 info("Performing more requests.");
50 aDebuggee.performRequests('{ "getMedia": true, "getFlash": true }');
51 return waitForNetworkEvents(aMonitor, 8);
52 })
53 .then(() => {
54 testStatus();
56 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-html-button"));
57 testStatus();
59 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-css-button"));
60 testStatus();
62 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-js-button"));
63 testStatus();
65 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-xhr-button"));
66 testStatus();
68 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-fonts-button"));
69 testStatus();
71 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-images-button"));
72 testStatus();
74 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-media-button"));
75 testStatus();
77 EventUtils.sendMouseEvent({ type: "click" }, $("#requests-menu-filter-flash-button"));
78 testStatus();
80 teardown(aMonitor).then(finish);
81 })
83 function testStatus() {
84 let summary = $("#requests-menu-network-summary-label");
85 let value = summary.getAttribute("value");
86 info("Current summary: " + value);
88 let visibleItems = RequestsMenu.visibleItems;
89 let visibleRequestsCount = visibleItems.length;
90 let totalRequestsCount = RequestsMenu.itemCount;
91 info("Current requests: " + visibleRequestsCount + " of " + totalRequestsCount + ".");
93 if (!totalRequestsCount || !visibleRequestsCount) {
94 is(value, L10N.getStr("networkMenu.empty"),
95 "The current summary text is incorrect, expected an 'empty' label.");
96 return;
97 }
99 let totalBytes = RequestsMenu._getTotalBytesOfRequests(visibleItems);
100 let totalMillis =
101 RequestsMenu._getNewestRequest(visibleItems).attachment.endedMillis -
102 RequestsMenu._getOldestRequest(visibleItems).attachment.startedMillis;
104 info("Computed total bytes: " + totalBytes);
105 info("Computed total millis: " + totalMillis);
107 is(value, PluralForm.get(visibleRequestsCount, L10N.getStr("networkMenu.summary"))
108 .replace("#1", visibleRequestsCount)
109 .replace("#2", L10N.numberWithDecimals((totalBytes || 0) / 1024, 2))
110 .replace("#3", L10N.numberWithDecimals((totalMillis || 0) / 1000, 2))
111 , "The current summary text is incorrect.")
112 }
114 aDebuggee.performRequests('{ "getMedia": true, "getFlash": true }');
115 });
116 }