| 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 |