polymer.py revision cedac228d2dd51db4b79ea1e72c7f249408ee061
15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu# Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu# Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu# found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu# pylint: disable=W0401,W0614 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liufrom telemetry.page.actions.all_page_actions import * 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liufrom telemetry.page import page as page_module 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liufrom telemetry.page import page_set as page_set_module 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class PolymerPage(page_module.Page): 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def __init__(self, url, page_set): 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) super(PolymerPage, self).__init__( 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) url=url, 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu page_set=page_set) 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.archive_data_file = "data/polymer.json" 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.script_to_evaluate_on_commit = ''' 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) document.addEventListener("polymer-ready", function() { 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) window.__polymer_ready = true; 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) }); 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ''' 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu def RunNavigateSteps(self, action_runner): 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) action_runner.NavigateToPage(self) 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu action_runner.RunAction(WaitAction( 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) { 'javascript': "window.__polymer_ready" })) 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class PolymerCalculatorPage(PolymerPage): 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def __init__(self, page_set): 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) super(PolymerCalculatorPage, self).__init__( 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) url='http://localhost:8000/components/paper-calculator/demo.html', 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) page_set=page_set) 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu def RunSmoothness(self, action_runner): 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu self.TapButton(action_runner) 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu self.SlidePanel(action_runner) 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu def TapButton(self, action_runner): 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu action_runner.RunAction(TapAction( 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu { 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'element_function': ''' 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu function(callback) { 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu callback( 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu document.querySelector( 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'body /deep/ #outerPanels' 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ).querySelector( 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu '#standard' 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ).shadowRoot.querySelector( 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'paper-calculator-key[label="5"]' 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ) 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ); 535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu }''', 545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'wait_after': { 'seconds': 2 } 555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu })) 565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu def SlidePanel(self, action_runner): 585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu action_runner.RunAction(SwipeAction( 595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu { 605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'left_start_percentage': 0.1, 615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'distance': 300, 625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'direction': 'left', 635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'wait_after': { 645c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'javascript': ''' 65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) var outer = document.querySelector("body /deep/ #outerPanels"); 66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) outer.opened || outer.wideMode; 675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ''' 685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu }, 695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'top_start_percentage': 0.2, 705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'element_function': ''' 715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu function(callback) { 725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu callback( 735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu document.querySelector( 745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'body /deep/ #outerPanels' 755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ).querySelector( 765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu '#advanced' 775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ).shadowRoot.querySelector( 785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu '.handle-bar' 795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ) 805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ); 815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu }''', 825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 'speed': 5000 835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu })) 845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 86010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class PolymerShadowPage(PolymerPage): 87010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 88010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def __init__(self, page_set): 89010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) super(PolymerShadowPage, self).__init__( 90010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) url='http://localhost:8000/components/paper-shadow/demo.html', 91010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) page_set=page_set) 92010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.archive_data_file = 'data/polymer.json' 93010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 94010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def RunSmoothness(self, action_runner): 95010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) action_runner.RunAction(JavascriptAction( 96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) { 97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 'expression': "document.getElementById('fab').scrollIntoView()" 98010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) })) 99010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) action_runner.RunAction(WaitAction( 100010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) { 101010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 'seconds': 5 102010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) })) 103010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.AnimateShadow(action_runner, 'card') 104010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.AnimateShadow(action_runner, 'fab') 105010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 106010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def AnimateShadow(self, action_runner, eid): 107010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) for i in range(1, 6): 108010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) action_runner.RunAction(JavascriptAction( 109010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) { 110010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 'expression': ''' 111010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) document.getElementById("{0}").z = {1} 112010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) '''.format(eid, i) 113010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) })) 114010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) action_runner.RunAction(WaitAction( 115010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) { 116010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 'seconds': 1 117010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) })) 118010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 119010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 1205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass PolymerPageSet(page_set_module.PageSet): 1215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 1225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu def __init__(self): 1235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu super(PolymerPageSet, self).__init__( 1245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu user_agent_type='mobile', 1255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu archive_data_file='data/polymer.json') 1265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 1275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu self.AddPage(PolymerCalculatorPage(self)) 128010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) self.AddPage(PolymerShadowPage(self)) 129