Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/cros_test_case.py

Issue 254143002: Split cros_test_case.py. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome/cros_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/backends/chrome/cros_test_case.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/cros_test_case.py b/tools/telemetry/telemetry/core/backends/chrome/cros_test_case.py
new file mode 100644
index 0000000000000000000000000000000000000000..a12d76826c7523cfea6878acd30f1d6906ac3d6d
--- /dev/null
+++ b/tools/telemetry/telemetry/core/backends/chrome/cros_test_case.py
@@ -0,0 +1,76 @@
+# Copyright 2014 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 unittest
+
+from telemetry.core import browser_finder
+from telemetry.core import extension_to_load
+from telemetry.core import util
+from telemetry.core.backends.chrome import cros_interface
+from telemetry.unittest import options_for_unittests
+
+
+class CrOSTestCase(unittest.TestCase):
+ def setUp(self):
+ options = options_for_unittests.GetCopy()
+ self._cri = cros_interface.CrOSInterface(options.cros_remote,
+ options.cros_ssh_identity)
+ self._is_guest = options.browser_type == 'cros-chrome-guest'
+ self._username = options.browser_options.username
+ self._password = options.browser_options.password
+ self._load_extension = None
+
+ def _CreateBrowser(self, autotest_ext=False, auto_login=True,
+ gaia_login=False, username=None, password=None):
+ """Finds and creates a browser for tests. if autotest_ext is True,
+ also loads the autotest extension"""
+ options = options_for_unittests.GetCopy()
+
+ if autotest_ext:
+ extension_path = os.path.join(util.GetUnittestDataDir(), 'autotest_ext')
+ assert os.path.isdir(extension_path)
+ self._load_extension = extension_to_load.ExtensionToLoad(
+ path=extension_path,
+ browser_type=options.browser_type,
+ is_component=True)
+ options.extensions_to_load = [self._load_extension]
+
+ browser_to_create = browser_finder.FindBrowser(options)
+ self.assertTrue(browser_to_create)
+ options.browser_options.create_browser_with_oobe = True
+ options.browser_options.auto_login = auto_login
+ options.browser_options.gaia_login = gaia_login
+ if username is not None:
+ options.browser_options.username = username
+ if password is not None:
+ options.browser_options.password = password
+
+ return browser_to_create.Create()
+
+ def _GetAutotestExtension(self, browser):
+ """Returns the autotest extension instance"""
+ extension = browser.extensions[self._load_extension]
+ self.assertTrue(extension)
+ return extension
+
+ def _IsCryptohomeMounted(self):
+ """Returns True if cryptohome is mounted. as determined by the cmd
+ cryptohome --action=is_mounted"""
+ return self._cri.RunCmdOnDevice(
+ ['/usr/sbin/cryptohome', '--action=is_mounted'])[0].strip() == 'true'
+
+ def _GetLoginStatus(self, browser):
+ extension = self._GetAutotestExtension(browser)
+ self.assertTrue(extension.EvaluateJavaScript(
+ "typeof('chrome.autotestPrivate') != 'undefined'"))
+ extension.ExecuteJavaScript('''
+ window.__login_status = null;
+ chrome.autotestPrivate.loginStatus(function(s) {
+ window.__login_status = s;
+ });
+ ''')
+ return util.WaitFor(
+ lambda: extension.EvaluateJavaScript('window.__login_status'), 10)
+
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/backends/chrome/cros_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698