OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Include test fixture. | 5 // Include test fixture. |
6 GEN_INCLUDE(['net_internals_test.js']); | 6 GEN_INCLUDE(['net_internals_test.js']); |
7 | 7 |
8 // Anonymous namespace | 8 // Anonymous namespace |
9 (function() { | 9 (function() { |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... | |
22 */ | 22 */ |
23 function BandwidthTask(expectedLength, faviconLength) { | 23 function BandwidthTask(expectedLength, faviconLength) { |
24 NetInternalsTest.Task.call(this); | 24 NetInternalsTest.Task.call(this); |
25 this.url_ = null; | 25 this.url_ = null; |
26 this.expectedLength_ = expectedLength; | 26 this.expectedLength_ = expectedLength; |
27 this.faviconLength_ = faviconLength; | 27 this.faviconLength_ = faviconLength; |
28 this.sessionVerified = false; | 28 this.sessionVerified = false; |
29 this.historicVerified = false; | 29 this.historicVerified = false; |
30 } | 30 } |
31 | 31 |
32 /** | |
33 * The task loads data reduction proxy info. | |
34 * | |
35 * Checks that we see all relevant events and update the corresponding elements. | |
36 * | |
37 * @param {boolean} isEnabled The desired state of the data reduction proxy. | |
38 * @extends {NetInternalsTest.Task} | |
39 * @constructor | |
40 */ | |
41 function DataReductionProxyTask(isEnabled) { | |
42 NetInternalsTest.Task.call(this); | |
43 this.enabled_ = isEnabled; | |
44 this.dataReductionProxyInfoVerified_ = false; | |
45 this.proxySettingsReceived_ = false; | |
46 this.badProxyChangesReceived_ = false; | |
47 } | |
48 | |
32 BandwidthTask.prototype = { | 49 BandwidthTask.prototype = { |
33 __proto__: NetInternalsTest.Task.prototype, | 50 __proto__: NetInternalsTest.Task.prototype, |
34 | 51 |
35 /** | 52 /** |
36 * Switches to the bandwidth tab, loads a page in the background, and waits | 53 * Switches to the bandwidth tab, loads a page in the background, and waits |
37 * for the arrival of network statistics. | 54 * for the arrival of network statistics. |
38 * | 55 * |
39 * @param {string} url URL to be fetched. | 56 * @param {string} url URL to be fetched. |
40 */ | 57 */ |
41 start: function(url) { | 58 start: function(url) { |
42 assertEquals('string', typeof url); | 59 assertEquals('string', typeof url); |
43 this.url_ = url; | 60 this.url_ = url; |
44 g_browser.addSessionNetworkStatsObserver(this, true); | 61 g_browser.addSessionNetworkStatsObserver(this, true); |
45 g_browser.addHistoricNetworkStatsObserver(this, false); | 62 g_browser.addHistoricNetworkStatsObserver(this, false); |
46 NetInternalsTest.switchToView('bandwidth'); | 63 NetInternalsTest.switchToView('bandwidth'); |
47 chrome.send('loadPage', [this.url_]); | 64 chrome.send('loadPage', [this.url_]); |
48 }, | 65 }, |
49 | 66 |
50 /** | 67 /** |
51 * Returns the float value the specified cell of the bandwidth table. | 68 * Returns the float value the specified cell of the bandwidth table. |
52 */ | 69 */ |
53 getBandwidthTableCell_: function(row, col) { | 70 getBandwidthTableCell_: function(row, col) { |
54 return parseFloat(NetInternalsTest.getTbodyText( | 71 return parseFloat(NetInternalsTest.getTbodyText( |
55 BandwidthView.MAIN_BOX_ID, row, col)); | 72 BandwidthView.STATS_BOX_ID, row, col)); |
56 }, | 73 }, |
57 | 74 |
58 /** | 75 /** |
59 * Confirms that the bandwidth usage table displays the expected values. | 76 * Confirms that the bandwidth usage table displays the expected values. |
60 * Does not check exact displayed values, to avoid races, but makes sure | 77 * Does not check exact displayed values, to avoid races, but makes sure |
61 * values are high enough after an event of interest. | 78 * values are high enough after an event of interest. |
62 * | 79 * |
63 * @param {number} col The column of the table to validate, either 1 or 2. | 80 * @param {number} col The column of the table to validate, either 1 or 2. |
64 * @param {number} expectedReceived Expected received content length. | 81 * @param {number} expectedReceived Expected received content length. |
65 * @param {number} expectedOriginal Expected original content length. | 82 * @param {number} expectedOriginal Expected original content length. |
(...skipping 14 matching lines...) Expand all Loading... | |
80 expectFalse(isNaN(row4)); | 97 expectFalse(isNaN(row4)); |
81 }, | 98 }, |
82 | 99 |
83 /** | 100 /** |
84 * A task is complete only when session and historic counters have been | 101 * A task is complete only when session and historic counters have been |
85 * verified to reflect the expected number of bytes received. | 102 * verified to reflect the expected number of bytes received. |
86 */ | 103 */ |
87 completeIfDone: function() { | 104 completeIfDone: function() { |
88 if (this.historicVerified && this.sessionVerified) { | 105 if (this.historicVerified && this.sessionVerified) { |
89 // Check number of rows in the table. | 106 // Check number of rows in the table. |
90 NetInternalsTest.checkTbodyRows(BandwidthView.MAIN_BOX_ID, 4); | 107 NetInternalsTest.checkTbodyRows(BandwidthView.STATS_BOX_ID, 4); |
91 this.onTaskDone(); | 108 this.onTaskDone(); |
92 } | 109 } |
93 }, | 110 }, |
94 | 111 |
95 /** | 112 /** |
96 * SessionNetworkStatsObserver function. Sanity checks the received data | 113 * SessionNetworkStatsObserver function. Sanity checks the received data |
97 * and constructed table. | 114 * and constructed table. |
98 | 115 |
99 * @param {object} networkStats State of the network session. | 116 * @param {object} networkStats State of the network session. |
100 */ | 117 */ |
(...skipping 28 matching lines...) Expand all Loading... | |
129 if (!isNaN(this.getBandwidthTableCell_(0, 2))) { | 146 if (!isNaN(this.getBandwidthTableCell_(0, 2))) { |
130 expectLE(expectedLength, networkStats.historic_original_content_length); | 147 expectLE(expectedLength, networkStats.historic_original_content_length); |
131 // Column 2 contains historic information. | 148 // Column 2 contains historic information. |
132 this.validateBandwidthTableColumn_(2, expectedLength, expectedLength); | 149 this.validateBandwidthTableColumn_(2, expectedLength, expectedLength); |
133 this.historicVerified = true; | 150 this.historicVerified = true; |
134 this.completeIfDone(); | 151 this.completeIfDone(); |
135 } | 152 } |
136 } | 153 } |
137 }; | 154 }; |
138 | 155 |
156 DataReductionProxyTask.prototype = { | |
157 __proto__: NetInternalsTest.Task.prototype, | |
158 | |
159 /** | |
160 * Switches to the bandwidth tab and waits for arrival of data reduction | |
161 * proxy information. | |
162 */ | |
163 start: function() { | |
164 chrome.send('enableDataReductionProxy', [this.enabled_]); | |
165 g_browser.addDataReductionProxyInfoObserver(this, true); | |
166 g_browser.addProxySettingsObserver(this, true); | |
167 g_browser.addBadProxiesObserver(this, true); | |
168 NetInternalsTest.switchToView('bandwidth'); | |
169 }, | |
170 | |
171 /** | |
172 * A task is complete only when session and historic counters have been | |
173 * verified to reflect the expected number of bytes received. | |
174 */ | |
175 completeIfDone: function() { | |
176 if (this.dataReductionProxyInfoVerified_) { | |
177 this.onTaskDone(); | |
178 } | |
179 }, | |
180 | |
181 /** | |
182 * ProxySettingsObserver function. | |
183 * | |
184 * @param {object} proxySettings Proxy settings. | |
185 */ | |
186 onProxySettingsChanged: function(proxySettings) { | |
187 if (this.isDone() || this.proxySettingsReceived_) | |
188 return; | |
189 | |
190 this.proxySettingsReceived_ = true; | |
191 }, | |
192 | |
193 /** | |
194 * BadProxiesObserver function. | |
195 * | |
196 * @param {object} badProxies Bad proxies. | |
197 */ | |
198 onBadProxiesChanged: function(badProxies) { | |
199 if (this.isDone() || this.badProxyChangesReceived_) | |
200 return; | |
201 | |
202 this.badProxyChangesReceived_ = true; | |
203 }, | |
204 | |
205 /** | |
206 * DataReductionProxyInfoObserver function. Sanity checks the received data | |
207 * and constructed table. | |
208 | |
209 * @param {object} info State of the data reduction proxy. | |
210 */ | |
211 onDataReductionProxyInfoChanged: function(info) { | |
212 if (this.isDone() || | |
213 this.dataReductionProxyInfoVerified_ || | |
214 !this.proxySettingsReceived_) | |
215 return; | |
mmenke
2014/12/09 21:58:53
use braces
jeremyim
2014/12/09 23:14:28
Done.
| |
216 | |
217 if (info) { | |
218 expectEquals(this.enabled_, info.enabled); | |
219 if (this.enabled_) { | |
220 expectEquals("Enabled", $(BandwidthView.ENABLED_ID).innerText); | |
221 expectNotEquals('', $(BandwidthView.PRIMARY_PROXY_ID).innerText); | |
222 expectNotEquals('', $(BandwidthView.SECONDARY_PROXY_ID).innerText); | |
223 } else { | |
224 expectEquals("Disabled", $(BandwidthView.ENABLED_ID).innerText); | |
225 expectEquals('', $(BandwidthView.PRIMARY_PROXY_ID).innerText); | |
226 expectEquals('', $(BandwidthView.SECONDARY_PROXY_ID).innerText); | |
227 // Each event results in 2 rows, and we get 2 events since the startup | |
228 // event starts as disabled, and we subsequently manually set it to the | |
229 // disabled state. | |
230 expectEquals( | |
231 4, NetInternalsTest.getTbodyNumRows(BandwidthView.EVENTS_TBODY_ID)); | |
mmenke
2014/12/09 21:58:52
+4 indent
jeremyim
2014/12/09 23:14:28
Done.
| |
232 } | |
233 | |
234 this.dataReductionProxyInfoVerified_ = true; | |
235 this.completeIfDone(); | |
236 } | |
237 | |
mmenke
2014/12/09 21:58:52
remove blank line.
jeremyim
2014/12/09 23:14:28
Done.
| |
238 } | |
239 }; | |
240 | |
139 /** | 241 /** |
140 * Loads a page and checks bandwidth statistics. | 242 * Loads a page and checks bandwidth statistics. |
141 */ | 243 */ |
142 TEST_F('NetInternalsTest', 'netInternalsSessionBandwidthSucceed', function() { | 244 TEST_F('NetInternalsTest', 'netInternalsSessionBandwidthSucceed', function() { |
143 var taskQueue = new NetInternalsTest.TaskQueue(true); | 245 var taskQueue = new NetInternalsTest.TaskQueue(true); |
144 taskQueue.addTask( | 246 taskQueue.addTask( |
145 new NetInternalsTest.GetTestServerURLTask('files/title1.html')); | 247 new NetInternalsTest.GetTestServerURLTask('files/title1.html')); |
146 // Load a page with a content length of 66 bytes and a 45-byte favicon. | 248 // Load a page with a content length of 66 bytes and a 45-byte favicon. |
147 taskQueue.addTask(new BandwidthTask(66, 45)); | 249 taskQueue.addTask(new BandwidthTask(66, 45)); |
148 taskQueue.run(); | 250 taskQueue.run(); |
149 }); | 251 }); |
150 | 252 |
253 /** | |
254 * Checks data reduction proxy info when it is enabled. | |
255 */ | |
256 TEST_F('NetInternalsTest', 'netInternalsDataReductionProxyEnabled', function() { | |
257 var taskQueue = new NetInternalsTest.TaskQueue(true); | |
258 taskQueue.addTask(new DataReductionProxyTask(true)); | |
259 taskQueue.run(); | |
260 }); | |
261 | |
262 /** | |
263 * Checks data reduction proxy info when it is disabled. | |
264 */ | |
265 TEST_F('NetInternalsTest', | |
266 'netInternalsDataReductionProxyDisabled', function() { | |
267 var taskQueue = new NetInternalsTest.TaskQueue(true); | |
268 taskQueue.addTask(new DataReductionProxyTask(false)); | |
269 taskQueue.run(); | |
270 }); | |
271 | |
151 })(); // Anonymous namespace | 272 })(); // Anonymous namespace |
OLD | NEW |