| Index: tools/telemetry_auto/telemetry_auto/oobe_page.py
|
| diff --git a/tools/telemetry_auto/telemetry_auto/oobe_page.py b/tools/telemetry_auto/telemetry_auto/oobe_page.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b546d86ba5c97e5b3368490a6a270209661a741a
|
| --- /dev/null
|
| +++ b/tools/telemetry_auto/telemetry_auto/oobe_page.py
|
| @@ -0,0 +1,75 @@
|
| +# Copyright (c) 2012 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.
|
| +import os
|
| +import sys
|
| +
|
| +import telemetry
|
| +from telemetry import util
|
| +from telemetry_auto.webui_page import WebUIPage
|
| +
|
| +class OobePage(WebUIPage):
|
| + def __init__(self, browser):
|
| + self.current_screen = None
|
| + self.page_urls = ["chrome://oobe/", "chrome://oobe/login"]
|
| + super(OobePage, self).__init__(browser)
|
| +
|
| + def GetCurrentScreenId(self):
|
| + try:
|
| + self.current_screen = self.page.runtime.Evaluate(
|
| + 'cr.ui.Oobe.getInstance().currentScreen.id')
|
| + except:
|
| + return None
|
| +
|
| + return self.current_screen
|
| +
|
| + def WaitForStartupScreen(self):
|
| + # Wait for any OOBE screen to show up .
|
| + util.WaitFor(lambda:
|
| + not self.GetCurrentScreenId() is None,
|
| + timeout=10)
|
| + return self.current_screen
|
| +
|
| + def AttachTestHooks(self):
|
| + # Wait for any OOBE screen to show up.
|
| + screen_id = self.WaitForStartupScreen()
|
| + self.AddTestHelperMethods()
|
| + return screen_id
|
| +
|
| + def _WaitForScreen(self, screen_id):
|
| + util.WaitFor(
|
| + lambda: self.page.runtime.Evaluate(
|
| + 'cr.ui.Oobe.getInstance().currentScreen.id') == screen_id,
|
| + timeout=10)
|
| +
|
| + def LoginUser(self, email, password):
|
| + self.WaitForPageToLoad(self.page_urls)
|
| + # Get the initial screen id and set up helper functions.
|
| + screen_id = self.AttachTestHooks()
|
| + print 'Starting at screen %s' % screen_id
|
| + # Pass user network selection screen.
|
| + if screen_id == 'connect':
|
| + self.ClickOnButton('continue-button')
|
| +
|
| + # Trigger GAIA login event.
|
| + self._WaitForScreen('gaia-signin')
|
| + self._LoginAs(email, password)
|
| +
|
| + # Pass user avatar image selection.
|
| + self._WaitForScreen('user-image')
|
| + self.ClickOnButton('ok-button')
|
| +
|
| + def _LoginAs(self, email, password):
|
| + login_command = """
|
| + $('gaia-signin').onMessage_(
|
| + { origin:
|
| + 'chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik/main.html',
|
| + source: $('signin-frame').contentWindow,
|
| + data: {
|
| + method: 'completeLogin',
|
| + email: '%s',
|
| + password: '%s'
|
| + }
|
| + });
|
| + """ % (email, password)
|
| + self.page.runtime.Execute(login_command)
|
|
|