| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| from telemetry.page import shared_page_state |
| |
| from page_sets.rendering import polymer |
| from page_sets.rendering import story_tags |
| |
| |
| class PaperCalculatorHitTest(polymer.PolymerPage): |
| # Generated from https://github.com/zqureshi/paper-calculator |
| # vulcanize --inline --strip paper-calculator/demo.html |
| URL = 'file://../key_hit_test_cases/paper-calculator-no-rendering.html' |
| BASE_NAME = 'paper_calculator_hit_test' |
| TAGS = [story_tags.KEY_HIT_TEST] |
| |
| def __init__(self, |
| page_set, |
| shared_page_state_class=shared_page_state.SharedPageState, |
| name_suffix='', |
| extra_browser_args=None): |
| super(PaperCalculatorHitTest, self).__init__( |
| page_set=page_set, |
| shared_page_state_class=shared_page_state_class, |
| name_suffix=name_suffix, |
| extra_browser_args=['--disable-top-sites', '--report-silk-details']) |
| |
| def RunPageInteractions(self, action_runner): |
| return |
| |
| def PerformPageInteractions(self, action_runner): |
| # pay cost of selecting tap target only once |
| action_runner.ExecuteJavaScript(''' |
| window.__tapTarget = document.querySelector( |
| 'body /deep/ #outerPanels' |
| ).querySelector( |
| '#standard' |
| ).shadowRoot.querySelector( |
| 'paper-calculator-key[label="5"]' |
| )''') |
| action_runner.WaitForJavaScriptCondition( |
| 'window.__tapTarget != null') |
| |
| for _ in xrange(100): |
| self.TapButton(action_runner) |
| |
| def TapButton(self, action_runner): |
| with action_runner.CreateInteraction('Action_TapAction'): |
| action_runner.TapElement(element_function='''window.__tapTarget''') |