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:])) |