| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 base64 | 5 import base64 |
| 6 import logging | 6 import logging |
| 7 import urlparse | 7 import urlparse |
| 8 | 8 |
| 9 from integration_tests import chrome_proxy_metrics as metrics | 9 from integration_tests import chrome_proxy_metrics as metrics |
| 10 from metrics import loading | 10 from metrics import loading |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 def StopBrowserAfterPage(self, browser, page): # pylint: disable=W0613 | 78 def StopBrowserAfterPage(self, browser, page): # pylint: disable=W0613 |
| 79 if hasattr(page, 'restart_after') and page.restart_after: | 79 if hasattr(page, 'restart_after') and page.restart_after: |
| 80 return True | 80 return True |
| 81 return False | 81 return False |
| 82 | 82 |
| 83 def RunNavigateSteps(self, page, tab): | 83 def RunNavigateSteps(self, page, tab): |
| 84 # The redirect from safebrowsing causes a timeout. Ignore that. | 84 # The redirect from safebrowsing causes a timeout. Ignore that. |
| 85 try: | 85 try: |
| 86 super(ChromeProxyValidation, self).RunNavigateSteps(page, tab) | 86 super(ChromeProxyValidation, self).RunNavigateSteps(page, tab) |
| 87 if self._expect_timeout: |
| 88 raise metrics.ChromeProxyMetricException, ( |
| 89 'Timeout was expected, but did not occur') |
| 87 except exceptions.DevtoolsTargetCrashException, e: | 90 except exceptions.DevtoolsTargetCrashException, e: |
| 88 if self._expect_timeout: | 91 if self._expect_timeout: |
| 89 logging.warning('Navigation timeout on page %s', | 92 logging.warning('Navigation timeout on page %s', |
| 90 page.name if page.name else page.url) | 93 page.name if page.name else page.url) |
| 91 else: | 94 else: |
| 92 raise e | 95 raise e |
| 93 | 96 |
| 94 | 97 |
| 95 class ChromeProxyHeaders(ChromeProxyValidation): | 98 class ChromeProxyHeaders(ChromeProxyValidation): |
| 96 """Correctness measurement for response headers.""" | 99 """Correctness measurement for response headers.""" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 class ChromeProxyBlockOnce(ChromeProxyValidation): | 135 class ChromeProxyBlockOnce(ChromeProxyValidation): |
| 133 """Correctness measurement for block-once responses.""" | 136 """Correctness measurement for block-once responses.""" |
| 134 | 137 |
| 135 def __init__(self): | 138 def __init__(self): |
| 136 super(ChromeProxyBlockOnce, self).__init__(restart_after_each_page=True) | 139 super(ChromeProxyBlockOnce, self).__init__(restart_after_each_page=True) |
| 137 | 140 |
| 138 def AddResults(self, tab, results): | 141 def AddResults(self, tab, results): |
| 139 self._metrics.AddResultsForBlockOnce(tab, results) | 142 self._metrics.AddResultsForBlockOnce(tab, results) |
| 140 | 143 |
| 141 | 144 |
| 142 class ChromeProxySafebrowsing(ChromeProxyValidation): | 145 class ChromeProxySafebrowsingOn(ChromeProxyValidation): |
| 143 """Correctness measurement for safebrowsing.""" | 146 """Correctness measurement for safebrowsing.""" |
| 144 | 147 |
| 145 def __init__(self): | 148 def __init__(self): |
| 146 super(ChromeProxySafebrowsing, self).__init__() | 149 super(ChromeProxySafebrowsingOn, self).__init__() |
| 147 | 150 |
| 148 def WillNavigateToPage(self, page, tab): | 151 def WillNavigateToPage(self, page, tab): |
| 149 super(ChromeProxySafebrowsing, self).WillNavigateToPage(page, tab) | 152 super(ChromeProxySafebrowsingOn, self).WillNavigateToPage(page, tab) |
| 150 self._expect_timeout = True | 153 self._expect_timeout = True |
| 151 | 154 |
| 152 def AddResults(self, tab, results): | 155 def AddResults(self, tab, results): |
| 153 self._metrics.AddResultsForSafebrowsing(tab, results) | 156 self._metrics.AddResultsForSafebrowsingOn(tab, results) |
| 154 | 157 |
| 158 class ChromeProxySafebrowsingOff(ChromeProxyValidation): |
| 159 """Correctness measurement for safebrowsing.""" |
| 160 |
| 161 def __init__(self): |
| 162 super(ChromeProxySafebrowsingOff, self).__init__() |
| 163 |
| 164 def AddResults(self, tab, results): |
| 165 self._metrics.AddResultsForSafebrowsingOff(tab, results) |
| 155 | 166 |
| 156 _FAKE_PROXY_AUTH_VALUE = 'aabbccdd3b7579186c1b0620614fdb1f0000ffff' | 167 _FAKE_PROXY_AUTH_VALUE = 'aabbccdd3b7579186c1b0620614fdb1f0000ffff' |
| 157 _TEST_SERVER = 'chromeproxy-test.appspot.com' | 168 _TEST_SERVER = 'chromeproxy-test.appspot.com' |
| 158 _TEST_SERVER_DEFAULT_URL = 'http://' + _TEST_SERVER + '/default' | 169 _TEST_SERVER_DEFAULT_URL = 'http://' + _TEST_SERVER + '/default' |
| 159 | 170 |
| 160 | 171 |
| 161 # We rely on the chromeproxy-test server to facilitate some of the tests. | 172 # We rely on the chromeproxy-test server to facilitate some of the tests. |
| 162 # The test server code is at <TBD location> and runs at _TEST_SERVER | 173 # The test server code is at <TBD location> and runs at _TEST_SERVER |
| 163 # | 174 # |
| 164 # The test server allow request to override response status, headers, and | 175 # The test server allow request to override response status, headers, and |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 | 333 |
| 323 | 334 |
| 324 class ChromeProxySmoke(ChromeProxyValidation): | 335 class ChromeProxySmoke(ChromeProxyValidation): |
| 325 """Smoke measurement for basic chrome proxy correctness.""" | 336 """Smoke measurement for basic chrome proxy correctness.""" |
| 326 | 337 |
| 327 def __init__(self): | 338 def __init__(self): |
| 328 super(ChromeProxySmoke, self).__init__() | 339 super(ChromeProxySmoke, self).__init__() |
| 329 | 340 |
| 330 def WillNavigateToPage(self, page, tab): | 341 def WillNavigateToPage(self, page, tab): |
| 331 super(ChromeProxySmoke, self).WillNavigateToPage(page, tab) | 342 super(ChromeProxySmoke, self).WillNavigateToPage(page, tab) |
| 332 if page.name == 'safebrowsing': | |
| 333 self._expect_timeout = True | |
| 334 | 343 |
| 335 def AddResults(self, tab, results): | 344 def AddResults(self, tab, results): |
| 336 # Map a page name to its AddResults func. | 345 # Map a page name to its AddResults func. |
| 337 page_to_metrics = { | 346 page_to_metrics = { |
| 338 'header validation': [self._metrics.AddResultsForHeaderValidation], | 347 'header validation': [self._metrics.AddResultsForHeaderValidation], |
| 339 'compression: image': [ | 348 'compression: image': [ |
| 340 self._metrics.AddResultsForHeaderValidation, | 349 self._metrics.AddResultsForHeaderValidation, |
| 341 self._metrics.AddResultsForDataSaving, | 350 self._metrics.AddResultsForDataSaving, |
| 342 ], | 351 ], |
| 343 'compression: javascript': [ | 352 'compression: javascript': [ |
| 344 self._metrics.AddResultsForHeaderValidation, | 353 self._metrics.AddResultsForHeaderValidation, |
| 345 self._metrics.AddResultsForDataSaving, | 354 self._metrics.AddResultsForDataSaving, |
| 346 ], | 355 ], |
| 347 'compression: css': [ | 356 'compression: css': [ |
| 348 self._metrics.AddResultsForHeaderValidation, | 357 self._metrics.AddResultsForHeaderValidation, |
| 349 self._metrics.AddResultsForDataSaving, | 358 self._metrics.AddResultsForDataSaving, |
| 350 ], | 359 ], |
| 351 'bypass': [self._metrics.AddResultsForBypass], | 360 'bypass': [self._metrics.AddResultsForBypass], |
| 352 'safebrowsing': [self._metrics.AddResultsForSafebrowsing], | |
| 353 } | 361 } |
| 354 if not self._page.name in page_to_metrics: | 362 if not self._page.name in page_to_metrics: |
| 355 raise page_test.MeasurementFailure( | 363 raise page_test.MeasurementFailure( |
| 356 'Invalid page name (%s) in smoke. Page name must be one of:\n%s' % ( | 364 'Invalid page name (%s) in smoke. Page name must be one of:\n%s' % ( |
| 357 self._page.name, page_to_metrics.keys())) | 365 self._page.name, page_to_metrics.keys())) |
| 358 for add_result in page_to_metrics[self._page.name]: | 366 for add_result in page_to_metrics[self._page.name]: |
| 359 add_result(tab, results) | 367 add_result(tab, results) |
| OLD | NEW |