| Index: tools/telemetry_auto/examples/login_test.py
|
| diff --git a/tools/telemetry_auto/examples/login_test.py b/tools/telemetry_auto/examples/login_test.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..334b54ecab84080efbe57c1363344bb700abac88
|
| --- /dev/null
|
| +++ b/tools/telemetry_auto/examples/login_test.py
|
| @@ -0,0 +1,76 @@
|
| +#!/usr/bin/env python
|
| +# 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
|
| +
|
| +sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
|
| +sys.path.append(os.path.join(os.path.dirname(__file__),
|
| + '..', '..', 'telemetry'))
|
| +import telemetry
|
| +import telemetry_auto
|
| +
|
| +from telemetry import extension_page
|
| +
|
| +def RunOOBE(browser):
|
| + p = telemetry_auto.OobePage(browser)
|
| + p.LoginUser('test@test.test', 'test')
|
| + # Wait until OOBE page goes away, we are logged in aftet that
|
| + p.WaitUnitGone()
|
| + print "OOBE completed!"
|
| +
|
| +def LoadTab(ext, url):
|
| + create_properties = { 'url': url }
|
| + # Then open a new tab and wait until the new tab loads.
|
| + (call_results, event_args) = ext.RunMethodWithEvents(
|
| + [extension_page.ExtensionEvent('chrome.tabs.onUpdated',
|
| + """arguments.length >= 2 && arguments[1] &&
|
| + arguments[1].status == 'complete';""")],
|
| + 'chrome.tabs.create',
|
| + create_properties)
|
| + # Return back Tab object properties.
|
| + return call_results["0"]
|
| +
|
| +def RemoveTab(ext, tab_id):
|
| + remove_properties = [ tab_id ]
|
| + # Then open a new tab and wait until the new tab loads.
|
| + (call_results, event_args) = ext.RunMethodWithEvents(
|
| + [extension_page.ExtensionEvent('chrome.tabs.onRemoved',
|
| + """arguments.length >= 1 && arguments[0] &&
|
| + arguments[0] == %s;""" % tab_id)],
|
| + 'chrome.tabs.remove',
|
| + remove_properties)
|
| +
|
| +def FindAutomationExtension(browser):
|
| + # Attach to automation extension.
|
| + extensions = browser.extensions.GetAllForUrl(
|
| + 'chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/' +
|
| + '_generated_background_page.html')
|
| + # Get the last loaded extension
|
| + return extensions[len(extensions) - 1]
|
| +
|
| +def TestIntegration(args):
|
| + options = telemetry.BrowserOptions()
|
| + parser = options.CreateParser('telemetry_extension_test.py')
|
| + options, args = parser.parse_args(args)
|
| + browser_to_create = telemetry.FindBrowser(options)
|
| + assert browser_to_create
|
| + with browser_to_create.Create() as browser:
|
| + # Get us through OOBE first.
|
| + RunOOBE(browser)
|
| + auto = FindAutomationExtension(browser)
|
| + # Load somethin' in a tab once we are in session.
|
| + t1 = LoadTab(auto, 'chrome://settings')
|
| + t2 = LoadTab(auto, 'http://www.google.com/')
|
| + RemoveTab(auto, t1["id"])
|
| + RemoveTab(auto, t2["id"])
|
| +
|
| +def Main(args):
|
| + for i in range(1, 10000):
|
| + print "Test pass %d" % i
|
| + TestIntegration(args)
|
| + return 0
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(Main(sys.argv[1:]))
|
|
|