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
3 # found in the LICENSE file.
5 from telemetry
.page
import page_set
as page_set_module
7 from page_sets
import polymer
9 class PaperCalculatorHitTest(polymer
.PolymerPage
):
11 def __init__(self
, page_set
):
12 super(PaperCalculatorHitTest
, self
).__init
__(
13 # Generated from https://github.com/zqureshi/paper-calculator
14 # vulcanize --inline --strip paper-calculator/demo.html
15 url
='file://key_hit_test_cases/paper-calculator-no-rendering.html',
16 page_set
=page_set
, run_no_page_interactions
=False)
18 self
.user_agent_type
= 'mobile'
20 def PerformPageInteractions(self
, action_runner
):
21 # pay cost of selecting tap target only once
22 action_runner
.ExecuteJavaScript('''
23 window.__tapTarget = document.querySelector(
24 'body /deep/ #outerPanels'
27 ).shadowRoot.querySelector(
28 'paper-calculator-key[label="5"]'
30 action_runner
.WaitForJavaScriptCondition(
31 'window.__tapTarget != null')
34 self
.TapButton(action_runner
)
36 def TapButton(self
, action_runner
):
37 with action_runner
.CreateInteraction('Action_TapAction'):
38 action_runner
.TapElement(element_function
='''window.__tapTarget''')
41 class KeyHitTestCasesPageSet(page_set_module
.PageSet
):
44 super(KeyHitTestCasesPageSet
, self
).__init
__(
45 user_agent_type
='mobile')
47 self
.AddUserStory(PaperCalculatorHitTest(self
))