OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import utils | 5 import utils |
6 | 6 |
7 from telemetry import page | 7 from telemetry import page |
8 from telemetry import story | 8 from telemetry import story |
9 from benchmarks.pagesets import media_router_page | 9 from benchmarks.pagesets import media_router_page |
10 from telemetry.core import exceptions | 10 from telemetry.core import exceptions |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 timeout=30) | 85 timeout=30) |
86 self.CloseExistingRoute(action_runner, sink_name) | 86 self.CloseExistingRoute(action_runner, sink_name) |
87 | 87 |
88 # Start session | 88 # Start session |
89 action_runner.TapElement(selector='#start_session_button') | 89 action_runner.TapElement(selector='#start_session_button') |
90 self._WaitForResult( | 90 self._WaitForResult( |
91 action_runner, | 91 action_runner, |
92 lambda: len(action_runner.tab.browser.tabs) >= 2, | 92 lambda: len(action_runner.tab.browser.tabs) >= 2, |
93 'MR dialog never showed up.') | 93 'MR dialog never showed up.') |
94 | 94 |
95 # Wait for 2s to make sure the dialog is fully loaded. | |
96 action_runner.Wait(2) | |
97 for tab in action_runner.tab.browser.tabs: | 95 for tab in action_runner.tab.browser.tabs: |
98 # Choose sink | 96 # Choose sink |
99 if tab.url == 'chrome://media-router/': | 97 if tab.url == 'chrome://media-router/': |
| 98 self.WaitUntilDialogLoaded(action_runner, tab) |
100 self.ChooseSink(tab, sink_name) | 99 self.ChooseSink(tab, sink_name) |
101 | 100 |
102 self._WaitForResult( | 101 self._WaitForResult( |
103 action_runner, | 102 action_runner, |
104 lambda: action_runner.EvaluateJavaScript('currentSession'), | 103 lambda: action_runner.EvaluateJavaScript('currentSession'), |
105 'Failed to start session', | 104 'Failed to start session', |
106 timeout=10) | 105 timeout=10) |
107 | 106 |
108 # Load Media | 107 # Load Media |
109 self.ExecuteAsyncJavaScript( | 108 self.ExecuteAsyncJavaScript( |
110 action_runner, | 109 action_runner, |
111 'loadMedia("%s");' % utils.GetInternalVideoURL(), | 110 'loadMedia("%s");' % utils.GetInternalVideoURL(), |
112 lambda: action_runner.EvaluateJavaScript('currentMedia'), | 111 lambda: action_runner.EvaluateJavaScript('currentMedia'), |
113 'Failed to load media', | 112 'Failed to load media', |
114 timeout=120) | 113 timeout=120) |
115 | 114 |
116 action_runner.Wait(5) | 115 action_runner.Wait(5) |
117 action_runner.ExecuteJavaScript('collectPerfData();') | 116 action_runner.ExecuteJavaScript('collectPerfData();') |
118 action_runner.Wait(SESSION_TIME) | 117 action_runner.Wait(SESSION_TIME) |
119 # Stop session | 118 # Stop session |
120 self.ExecuteAsyncJavaScript( | 119 self.ExecuteAsyncJavaScript( |
121 action_runner, | 120 action_runner, |
122 'stopSession();', | 121 'stopSession();', |
123 lambda: not action_runner.EvaluateJavaScript('currentSession'), | 122 lambda: not action_runner.EvaluateJavaScript('currentSession'), |
124 'Failed to stop session') | 123 'Failed to stop session', |
| 124 timeout=30) |
125 | 125 |
126 | 126 |
127 class CastMirroringPage(media_router_page.CastPage): | 127 class CastMirroringPage(media_router_page.CastPage): |
128 """Cast page to mirror a tab to Chromecast device.""" | 128 """Cast page to mirror a tab to Chromecast device.""" |
129 | 129 |
130 def __init__(self, page_set): | 130 def __init__(self, page_set): |
131 super(CastMirroringPage, self).__init__( | 131 super(CastMirroringPage, self).__init__( |
132 page_set=page_set, | 132 page_set=page_set, |
133 url='file://mirroring.html', | 133 url='file://mirroring.html', |
134 shared_page_state_class=SharedState) | 134 shared_page_state_class=SharedState) |
135 | 135 |
136 def RunPageInteractions(self, action_runner): | 136 def RunPageInteractions(self, action_runner): |
137 sink_name = self._GetDeviceName() | 137 sink_name = self._GetDeviceName() |
138 # Wait for 5s after Chrome is opened in order to get consistent results. | 138 # Wait for 5s after Chrome is opened in order to get consistent results. |
139 action_runner.Wait(5) | 139 action_runner.Wait(5) |
140 with action_runner.CreateInteraction('mirroring'): | 140 with action_runner.CreateInteraction('mirroring'): |
141 self.CloseExistingRoute(action_runner, sink_name) | 141 self.CloseExistingRoute(action_runner, sink_name) |
142 | 142 |
143 # Start session | 143 # Start session |
144 action_runner.TapElement(selector='#start_session_button') | 144 action_runner.TapElement(selector='#start_session_button') |
145 self._WaitForResult( | 145 self._WaitForResult( |
146 action_runner, | 146 action_runner, |
147 lambda: len(action_runner.tab.browser.tabs) >= 2, | 147 lambda: len(action_runner.tab.browser.tabs) >= 2, |
148 'MR dialog never showed up.') | 148 'MR dialog never showed up.') |
149 | 149 |
150 # Wait for 2s to make sure the dialog is fully loaded. | |
151 action_runner.Wait(2) | |
152 for tab in action_runner.tab.browser.tabs: | 150 for tab in action_runner.tab.browser.tabs: |
153 # Choose sink | 151 # Choose sink |
154 if tab.url == 'chrome://media-router/': | 152 if tab.url == 'chrome://media-router/': |
| 153 self.WaitUntilDialogLoaded(action_runner, tab) |
155 self.ChooseSink(tab, sink_name) | 154 self.ChooseSink(tab, sink_name) |
156 | 155 |
157 # Wait for 5s to make sure the route is created. | 156 # Wait for 5s to make sure the route is created. |
158 action_runner.Wait(5) | 157 action_runner.Wait(5) |
159 action_runner.TapElement(selector='#start_session_button') | 158 action_runner.TapElement(selector='#start_session_button') |
160 action_runner.Wait(2) | 159 action_runner.Wait(2) |
161 for tab in action_runner.tab.browser.tabs: | 160 for tab in action_runner.tab.browser.tabs: |
162 if tab.url == 'chrome://media-router/': | 161 if tab.url == 'chrome://media-router/': |
163 if not self.CheckIfExistingRoute(tab, sink_name): | 162 if not self.CheckIfExistingRoute(tab, sink_name): |
164 raise page.page_test.Failure('Failed to start mirroring session.') | 163 raise page.page_test.Failure('Failed to start mirroring session.') |
(...skipping 22 matching lines...) Expand all Loading... |
187 self.AddStory(CastMirroringPage(self)) | 186 self.AddStory(CastMirroringPage(self)) |
188 | 187 |
189 | 188 |
190 class CPUMemoryPageSet(story.StorySet): | 189 class CPUMemoryPageSet(story.StorySet): |
191 """Pageset to get baseline CPU and memory usage.""" | 190 """Pageset to get baseline CPU and memory usage.""" |
192 | 191 |
193 def __init__(self): | 192 def __init__(self): |
194 super(CPUMemoryPageSet, self).__init__( | 193 super(CPUMemoryPageSet, self).__init__( |
195 cloud_storage_bucket=story.PARTNER_BUCKET) | 194 cloud_storage_bucket=story.PARTNER_BUCKET) |
196 self.AddStory(CastIdlePage(self)) | 195 self.AddStory(CastIdlePage(self)) |
OLD | NEW |