| 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 """Runs a Google Maps pixel test. |    5 """Runs a Google Maps pixel test. | 
|    6 Performs several common navigation actions on the map (pan, zoom, rotate) then |    6 Performs several common navigation actions on the map (pan, zoom, rotate) then | 
|    7 captures a screenshot and compares selected pixels against expected values""" |    7 captures a screenshot and compares selected pixels against expected values""" | 
|    8  |    8  | 
|    9 import json |    9 import json | 
|   10 import optparse |   10 import optparse | 
|   11 import os |   11 import os | 
|   12  |   12  | 
|   13 import cloud_storage_test_base |   13 import cloud_storage_test_base | 
|   14 import maps_expectations |   14 import maps_expectations | 
|   15  |   15  | 
|   16 from telemetry import benchmark |   16 from telemetry import benchmark | 
|   17 from telemetry.core import bitmap |  | 
|   18 from telemetry.core import util |   17 from telemetry.core import util | 
|   19 from telemetry.page import page |   18 from telemetry.page import page | 
|   20 from telemetry.page import page_set |   19 from telemetry.page import page_set | 
|   21 from telemetry.page import page_test |   20 from telemetry.page import page_test | 
|   22  |   21  | 
|   23 class _MapsValidator(cloud_storage_test_base.ValidatorBase): |   22 class _MapsValidator(cloud_storage_test_base.ValidatorBase): | 
|   24   def CustomizeBrowserOptions(self, options): |   23   def CustomizeBrowserOptions(self, options): | 
|   25     options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') |   24     options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') | 
|   26  |   25  | 
|   27   def ValidateAndMeasurePage(self, page, tab, results): |   26   def ValidateAndMeasurePage(self, page, tab, results): | 
|   28     # TODO: This should not be necessary, but it's not clear if the test is |   27     # TODO: This should not be necessary, but it's not clear if the test is | 
|   29     # failing on the bots in it's absence. Remove once we can verify that it's |   28     # failing on the bots in it's absence. Remove once we can verify that it's | 
|   30     # safe to do so. |   29     # safe to do so. | 
|   31     _MapsValidator.SpinWaitOnRAF(tab, 3) |   30     _MapsValidator.SpinWaitOnRAF(tab, 3) | 
|   32  |   31  | 
|   33     if not tab.screenshot_supported: |   32     if not tab.screenshot_supported: | 
|   34       raise page_test.Failure('Browser does not support screenshot capture') |   33       raise page_test.Failure('Browser does not support screenshot capture') | 
|   35     screenshot = tab.Screenshot(5) |   34     screenshot = tab.Screenshot(5) | 
|   36     if not screenshot: |   35     if screenshot is None: | 
|   37       raise page_test.Failure('Could not capture screenshot') |   36       raise page_test.Failure('Could not capture screenshot') | 
|   38  |   37  | 
|   39     dpr = tab.EvaluateJavaScript('window.devicePixelRatio') |   38     dpr = tab.EvaluateJavaScript('window.devicePixelRatio') | 
|   40     expected = self._ReadPixelExpectations(page) |   39     expected = self._ReadPixelExpectations(page) | 
|   41     self._ValidateScreenshotSamples( |   40     self._ValidateScreenshotSamples( | 
|   42         page.display_name, screenshot, expected, dpr) |   41         page.display_name, screenshot, expected, dpr) | 
|   43  |   42  | 
|   44   @staticmethod |   43   @staticmethod | 
|   45   def SpinWaitOnRAF(tab, iterations, timeout = 60): |   44   def SpinWaitOnRAF(tab, iterations, timeout = 60): | 
|   46     waitScript = r""" |   45     waitScript = r""" | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   95     return maps_expectations.MapsExpectations() |   94     return maps_expectations.MapsExpectations() | 
|   96  |   95  | 
|   97   def CreatePageSet(self, options): |   96   def CreatePageSet(self, options): | 
|   98     page_set_path = os.path.join( |   97     page_set_path = os.path.join( | 
|   99         util.GetChromiumSrcDir(), 'content', 'test', 'gpu', 'page_sets') |   98         util.GetChromiumSrcDir(), 'content', 'test', 'gpu', 'page_sets') | 
|  100     ps = page_set.PageSet(archive_data_file='data/maps.json', |   99     ps = page_set.PageSet(archive_data_file='data/maps.json', | 
|  101                           file_path=page_set_path, |  100                           file_path=page_set_path, | 
|  102                           bucket=page_set.PUBLIC_BUCKET) |  101                           bucket=page_set.PUBLIC_BUCKET) | 
|  103     ps.AddUserStory(MapsPage(ps, ps.base_dir)) |  102     ps.AddUserStory(MapsPage(ps, ps.base_dir)) | 
|  104     return ps |  103     return ps | 
| OLD | NEW |