# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
from page_sets.rendering import rendering_story
from page_sets.rendering import story_tags
# pylint: disable=line-too-long
_MAPS_PERF_TEST_DIR = os.path.join(os.path.dirname(__file__), '../maps_perf_test')
class MapsPage(rendering_story.RenderingStory):
"""Google Maps benchmarks and pixel tests.
The Maps team gave us a build of their test. The static files are stored in
//src/tools/perf/page_sets/maps_perf_test/.
Note: the file maps_perf_test/load_dataset is a large binary file (~3Mb),
hence we upload it to cloud storage & only check in the SHA1 hash.
The command to upload it to cloud_storage is:
<path to depot_tools>/upload_to_google_storage.py \
maps_perf_test/load_dataset --bucket=chromium-telemetry
"""
BASE_NAME = 'maps_perf_test'
URL = 'file://performance.html'
TAGS = [story_tags.REQUIRED_WEBGL, story_tags.MAPS]
def __init__(self,
page_set,
shared_page_state_class,
name_suffix='',
extra_browser_args=None):
super(MapsPage, self).__init__(
page_set=page_set,
shared_page_state_class=shared_page_state_class,
name_suffix=name_suffix,
extra_browser_args=extra_browser_args,
base_dir=_MAPS_PERF_TEST_DIR)
@property
def skipped_gpus(self):
# Skip this intensive test on low-end devices. crbug.com/464731
return ['arm']
def RunPageInteractions(self, action_runner):
action_runner.WaitForJavaScriptCondition('window.startTest !== undefined')
action_runner.EvaluateJavaScript('startTest()')
with action_runner.CreateInteraction('MapAnimation'):
action_runner.WaitForJavaScriptCondition('window.testDone', timeout=120)