Chromium Code Reviews| Index: tools/perf/page_sets/polymer.py |
| diff --git a/tools/perf/page_sets/polymer.py b/tools/perf/page_sets/polymer.py |
| index 07c73069b41a22650d02a6641c5f3beb04b8896c..34f1fb93177fc1b56844c52951a6711847e00d4f 100644 |
| --- a/tools/perf/page_sets/polymer.py |
| +++ b/tools/perf/page_sets/polymer.py |
| @@ -6,7 +6,13 @@ from telemetry.page import page_set as page_set_module |
| class PolymerPage(page_module.Page): |
| - def __init__(self, url, page_set): |
| + def __init__(self, url, page_set, run_no_page_interactions): |
| + """ Base class for all polymer pages. |
| + |
| + Args: |
| + run_no_page_interactions: whether the page will run any interactions after |
| + navigate steps. |
| + """ |
| super(PolymerPage, self).__init__( |
| url=url, |
| page_set=page_set) |
| @@ -15,6 +21,18 @@ class PolymerPage(page_module.Page): |
| window.__polymer_ready = true; |
| }); |
| ''' |
| + self._run_no_page_interactions = run_no_page_interactions |
| + |
| + def RunPageInteraction(self, action_runner): |
| + # If a polymer page wants to customize it actions, it should |
| + # overrides the PerformPageInteractions method instead of this method. |
| + if self._run_no_page_interactions: |
| + return |
| + self.PerformPageInteractions(action_runner) |
| + |
| + def PerformPageInteractions(self, action_runner): |
| + """ Override this to perform actions after the page has navigated. """ |
| + pass |
| def RunNavigateSteps(self, action_runner): |
| super(PolymerPage, self).RunNavigateSteps(action_runner) |
| @@ -24,13 +42,13 @@ class PolymerPage(page_module.Page): |
| class PolymerCalculatorPage(PolymerPage): |
| - def __init__(self, page_set): |
| + def __init__(self, page_set, run_no_page_interactions): |
| super(PolymerCalculatorPage, self).__init__( |
| url=('http://www.polymer-project.org/components/paper-calculator/' |
| 'demo.html'), |
| - page_set=page_set) |
| + page_set=page_set, run_no_page_interactions=run_no_page_interactions) |
| - def RunPageInteractions(self, action_runner): |
| + def PerformPageInteractions(self, action_runner): |
| self.TapButton(action_runner) |
| self.SlidePanel(action_runner) |
| @@ -77,12 +95,12 @@ class PolymerCalculatorPage(PolymerPage): |
| class PolymerShadowPage(PolymerPage): |
| - def __init__(self, page_set): |
| + def __init__(self, page_set, run_no_page_interactions): |
| super(PolymerShadowPage, self).__init__( |
| url='http://www.polymer-project.org/components/paper-shadow/demo.html', |
| - page_set=page_set) |
| + page_set=page_set, run_no_page_interactions=run_no_page_interactions) |
| - def RunPageInteractions(self, action_runner): |
| + def PerformPageInteractions(self, action_runner): |
| action_runner.ExecuteJavaScript( |
| "document.getElementById('fab').scrollIntoView()") |
| action_runner.Wait(5) |
| @@ -100,7 +118,8 @@ class PolymerShadowPage(PolymerPage): |
| class PolymerSampler(PolymerPage): |
| - def __init__(self, page_set, anchor, scrolling_page=False): |
| + def __init__(self, page_set, anchor, run_no_page_interactions, |
| + scrolling_page=False): |
| """Page exercising interactions with a single Paper Sampler subpage. |
| Args: |
| @@ -112,7 +131,7 @@ class PolymerSampler(PolymerPage): |
| """ |
| super(PolymerSampler, self).__init__( |
| url=('http://www.polymer-project.org/components/%s/demo.html' % anchor), |
| - page_set=page_set) |
| + page_set=page_set, run_no_page_interactions=run_no_page_interactions) |
| self.scrolling_page = scrolling_page |
| self.iframe_js = 'document' |
| @@ -129,7 +148,7 @@ class PolymerSampler(PolymerPage): |
| action_runner.WaitForJavaScriptCondition( |
| 'window.__polymer_ready') |
| - def RunPageInteractions(self, action_runner): |
| + def PerformPageInteractions(self, action_runner): |
| #TODO(wiltzius) Add interactions for input elements and shadow pages |
| if self.scrolling_page: |
| # Only bother scrolling the page if its been marked as worthwhile |
| @@ -204,14 +223,14 @@ class PolymerSampler(PolymerPage): |
| class PolymerPageSet(page_set_module.PageSet): |
| - def __init__(self): |
| + def __init__(self, run_no_page_interactions=False): |
| super(PolymerPageSet, self).__init__( |
| user_agent_type='mobile', |
| archive_data_file='data/polymer.json', |
| bucket=page_set_module.PUBLIC_BUCKET) |
| - self.AddUserStory(PolymerCalculatorPage(self)) |
| - self.AddUserStory(PolymerShadowPage(self)) |
| + self.AddUserStory(PolymerCalculatorPage(self, run_no_page_interactions)) |
| + self.AddUserStory(PolymerShadowPage(self, run_no_page_interactions)) |
| # Polymer Sampler subpages that are interesting to tap / swipe elements on |
| TAPPABLE_PAGES = [ |
| @@ -228,11 +247,20 @@ class PolymerPageSet(page_set_module.PageSet): |
| 'paper-toggle-button', |
| ] |
| for p in TAPPABLE_PAGES: |
| - self.AddUserStory(PolymerSampler(self, p)) |
| + self.AddUserStory(PolymerSampler( |
| + self, p, run_no_page_interactions=run_no_page_interactions)) |
| # Polymer Sampler subpages that are interesting to scroll |
| SCROLLABLE_PAGES = [ |
| 'core-scroll-header-panel', |
| ] |
| for p in SCROLLABLE_PAGES: |
| - self.AddUserStory(PolymerSampler(self, p, scrolling_page=True)) |
| + self.AddUserStory(PolymerSampler( |
| + self, p, run_no_page_interactions=run_no_page_interactions, |
| + scrolling_page=True)) |
| + |
| + for page in self: |
| + assert (page.__class__.RunPageInteractions == |
| + PolymerPage.RunPageInteractions), ( |
| + 'Pages in this page set must not override KeySilkCasesPage\' ' |
|
sullivan
2015/02/16 02:03:15
s/KeySilkCasesPage/PolymerPage/
|
| + 'RunPageInteractions method.') |