OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 import sys | 5 import sys |
6 import unittest | 6 import unittest |
7 | 7 |
8 from telemetry.internal.browser import browser_options | 8 from telemetry.internal.browser import browser_options |
9 from telemetry.internal.results import page_test_results | 9 from telemetry.internal.results import page_test_results |
10 from telemetry.internal import story_runner | 10 from telemetry.internal import story_runner |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 'Iteration %d tab.clear_cache_calls %d' % | 203 'Iteration %d tab.clear_cache_calls %d' % |
204 (i, tab.clear_cache_calls)) | 204 (i, tab.clear_cache_calls)) |
205 cycler.ValidateAndMeasurePage(page, tab, results) | 205 cycler.ValidateAndMeasurePage(page, tab, results) |
206 results.DidRunPage(page) | 206 results.DidRunPage(page) |
207 | 207 |
208 values = results.all_page_specific_values | 208 values = results.all_page_specific_values |
209 self.assertGreater(len(values), 2) | 209 self.assertGreater(len(values), 2) |
210 | 210 |
211 self.assertEqual(values[0].page, page) | 211 self.assertEqual(values[0].page, page) |
212 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' | 212 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' |
213 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 213 self.assertEqual(values[0].name, '%s-page_load_time' % chart_name) |
214 self.assertEqual(values[0].units, 'ms') | 214 self.assertEqual(values[0].units, 'ms') |
215 | 215 |
216 cycler.DidNavigateToPage(page, tab) | 216 cycler.DidNavigateToPage(page, tab) |
217 | 217 |
218 def testColdWarm(self): | 218 def testColdWarm(self): |
219 cycler = self.SetUpCycler(pageset_repeat=3, setup_memory_module=True) | 219 cycler = self.SetUpCycler(pageset_repeat=3, setup_memory_module=True) |
220 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] | 220 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] |
221 tab = FakeTab() | 221 tab = FakeTab() |
222 for i in range(3): | 222 for i in range(3): |
223 for page in pages: | 223 for page in pages: |
224 results = page_test_results.PageTestResults() | 224 results = page_test_results.PageTestResults() |
225 results.WillRunPage(page) | 225 results.WillRunPage(page) |
226 cycler.WillNavigateToPage(page, tab) | 226 cycler.WillNavigateToPage(page, tab) |
227 cycler.ValidateAndMeasurePage(page, tab, results) | 227 cycler.ValidateAndMeasurePage(page, tab, results) |
228 results.DidRunPage(page) | 228 results.DidRunPage(page) |
229 | 229 |
230 values = results.all_page_specific_values | 230 values = results.all_page_specific_values |
231 self.assertGreater(len(values), 2) | 231 self.assertGreater(len(values), 2) |
232 | 232 |
233 self.assertEqual(values[0].page, page) | 233 self.assertEqual(values[0].page, page) |
234 | 234 |
235 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' | 235 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' |
236 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 236 self.assertEqual(values[0].name, '%s-page_load_time' % chart_name) |
237 self.assertEqual(values[0].units, 'ms') | 237 self.assertEqual(values[0].units, 'ms') |
238 | 238 |
239 cycler.DidNavigateToPage(page, tab) | 239 cycler.DidNavigateToPage(page, tab) |
240 | 240 |
241 def testResults(self): | 241 def testResults(self): |
242 cycler = self.SetUpCycler(setup_memory_module=True) | 242 cycler = self.SetUpCycler(setup_memory_module=True) |
243 | 243 |
244 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] | 244 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] |
245 tab = FakeTab() | 245 tab = FakeTab() |
246 | 246 |
247 for i in range(2): | 247 for i in range(2): |
248 for page in pages: | 248 for page in pages: |
249 results = page_test_results.PageTestResults() | 249 results = page_test_results.PageTestResults() |
250 results.WillRunPage(page) | 250 results.WillRunPage(page) |
251 cycler.WillNavigateToPage(page, tab) | 251 cycler.WillNavigateToPage(page, tab) |
252 cycler.ValidateAndMeasurePage(page, tab, results) | 252 cycler.ValidateAndMeasurePage(page, tab, results) |
253 results.DidRunPage(page) | 253 results.DidRunPage(page) |
254 | 254 |
255 values = results.all_page_specific_values | 255 values = results.all_page_specific_values |
256 | 256 |
257 # On Mac, there is an additional measurement: the number of keychain | 257 # On Mac, there is an additional measurement: the number of keychain |
258 # accesses. | 258 # accesses. |
259 value_count = 4 | 259 value_count = 6 |
260 if sys.platform == 'darwin': | 260 if sys.platform == 'darwin': |
261 value_count += 1 | 261 value_count += 1 |
262 self.assertEqual(value_count, len(values)) | 262 self.assertEqual(value_count, len(values)) |
263 | 263 |
264 self.assertEqual(values[0].page, page) | 264 self.assertEqual(values[0].page, page) |
265 chart_name = 'cold_times' if i == 0 else 'warm_times' | 265 chart_name = 'cold_times' if i == 0 else 'warm_times' |
266 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 266 self.assertEqual(values[0].name, '%s-page_load_time' % chart_name) |
267 self.assertEqual(values[0].units, 'ms') | 267 self.assertEqual(values[0].units, 'ms') |
268 self.assertEqual(values[1].name, '%s.time_to_onload' % chart_name) | 268 self.assertEqual(values[1].name, '%s-time_to_onload' % chart_name) |
269 self.assertEqual(values[1].units, 'ms') | 269 self.assertEqual(values[1].units, 'ms') |
270 | 270 |
271 expected_values = ['gpu', 'browser'] | 271 expected_values = ['gpu', 'browser'] |
272 for value, expected in zip(values[2:len(expected_values) + 1], | 272 for value, expected in zip(values[4:len(expected_values) + 1], |
273 expected_values): | 273 expected_values): |
274 self.assertEqual(value.page, page) | 274 self.assertEqual(value.page, page) |
275 self.assertEqual(value.name, | 275 self.assertEqual(value.name, |
276 'cpu_utilization.cpu_utilization_%s' % expected) | 276 'cpu_utilization.cpu_utilization_%s' % expected) |
277 self.assertEqual(value.units, '%') | 277 self.assertEqual(value.units, '%') |
278 | 278 |
279 cycler.DidNavigateToPage(page, tab) | 279 cycler.DidNavigateToPage(page, tab) |
280 | 280 |
281 def testLegacyPagesAvoidCrossRenderNavigation(self): | 281 def testLegacyPagesAvoidCrossRenderNavigation(self): |
282 # For legacy page cyclers with file URLs, verify that WillNavigateToPage | 282 # For legacy page cyclers with file URLs, verify that WillNavigateToPage |
283 # does an initial navigate to avoid paying for a cross-renderer navigation. | 283 # does an initial navigate to avoid paying for a cross-renderer navigation. |
284 cycler = self.SetUpCycler(setup_memory_module=True) | 284 cycler = self.SetUpCycler(setup_memory_module=True) |
285 pages = [FakePage('file://fakepage1.com'), FakePage('file://fakepage2.com')] | 285 pages = [FakePage('file://fakepage1.com'), FakePage('file://fakepage2.com')] |
286 tab = FakeTab() | 286 tab = FakeTab() |
287 | 287 |
288 self.assertEqual([], tab.navigated_urls) | 288 self.assertEqual([], tab.navigated_urls) |
289 for page in pages * 2: | 289 for page in pages * 2: |
290 cycler.WillNavigateToPage(page, tab) | 290 cycler.WillNavigateToPage(page, tab) |
291 self.assertEqual( | 291 self.assertEqual( |
292 ['http://fakeserver:99999/nonexistent.html'], tab.navigated_urls) | 292 ['http://fakeserver:99999/nonexistent.html'], tab.navigated_urls) |
OLD | NEW |