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

Unified Diff: chrome/test/functional/chromeos_login.py

Issue 23359003: Eliminate unused PYAUTO tests and TestingAutomationProvider methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 4 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 | « chrome/test/functional/chromeos_gsm_compliance.py ('k') | chrome/test/functional/chromeos_offline.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/chromeos_login.py
diff --git a/chrome/test/functional/chromeos_login.py b/chrome/test/functional/chromeos_login.py
deleted file mode 100755
index 786b0716f15859124e74ede805632197ed813b0d..0000000000000000000000000000000000000000
--- a/chrome/test/functional/chromeos_login.py
+++ /dev/null
@@ -1,371 +0,0 @@
-#!/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 subprocess
-import sys
-
-import pyauto_functional # Must be imported before pyauto
-import pyauto
-import pyauto_errors
-import test_utils
-
-
-sys.path.append('/usr/local') # To make autotest libs importable.
-from autotest.cros import cros_ui
-from autotest.cros import cryptohome
-
-
-class ChromeosLogin(pyauto.PyUITest):
- """TestCases for Logging into ChromeOS."""
-
- assert os.geteuid() == 0, 'Need to run this test as root'
-
- def ShouldAutoLogin(self):
- return False
-
- def setUp(self):
- # We want a clean session_manager instance for every run,
- # so restart ui now.
- cros_ui.stop(allow_fail=True)
- cryptohome.remove_all_vaults()
- cros_ui.start(wait_for_login_prompt=False)
- pyauto.PyUITest.setUp(self)
-
- def _ValidCredentials(self, account_type='test_google_account'):
- """Obtains a valid username and password from a data file.
-
- Returns:
- A dictionary with the keys 'username' and 'password'
- """
- return self.GetPrivateInfo()[account_type]
-
- def testExecuteJavascriptInOOBEWebUI(self):
- """Test that javascript can be executed at the login page."""
- msg = 'test success'
- ret = self.ExecuteJavascriptInOOBEWebUI(
- 'window.domAutomationController.send("%s");' % msg)
- self.assertEqual(ret, msg)
-
- def testGoodLogin(self):
- """Test that login is successful with valid credentials."""
- credentials = self._ValidCredentials()
- self.Login(credentials['username'], credentials['password'])
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Login failed.')
-
- def testBadUsername(self):
- """Test that login fails when passed an invalid username."""
- self.assertRaises(
- pyauto_errors.JSONInterfaceError,
- lambda: self.Login('doesnotexist@fakedomain.org', 'badpassword'))
- login_info = self.GetLoginInfo()
- self.assertFalse(login_info['is_logged_in'],
- msg='Login succeeded, with bad credentials.')
-
- def testBadPassword(self):
- """Test that login fails when passed an invalid password."""
- credentials = self._ValidCredentials()
- self.assertRaises(
- pyauto_errors.JSONInterfaceError,
- lambda: self.Login(credentials['username'], 'badpassword'))
- login_info = self.GetLoginInfo()
- self.assertFalse(login_info['is_logged_in'],
- msg='Login succeeded, with bad credentials.')
-
- def testLoginAsGuest(self):
- """Test we can login with guest mode."""
- self.LoginAsGuest()
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Not logged in at all.')
- self.assertTrue(login_info['is_guest'], msg='Not logged in as guest.')
-
- def testLockScreenAfterLogin(self):
- """Test after logging in that the screen can be locked."""
- self.testGoodLogin()
- self.assertFalse(self.GetLoginInfo()['is_screen_locked'],
- msg='Screen is locked, but the screen was not locked.')
- self.LockScreen()
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_screen_locked'], msg='The screen is not '
- 'locked after attempting to lock the screen.')
-
- def testLockAndUnlockScreenAfterLogin(self):
- """Test locking and unlocking the screen after logging in."""
- self.testLockScreenAfterLogin()
- self.UnlockScreen(self._ValidCredentials()['password'])
- login_info = self.GetLoginInfo()
- self.assertFalse(login_info['is_screen_locked'],
- msg='Screen is locked, but it should have been unlocked.')
-
- def testLockAndUnlockScreenAfterLoginWithBadPassword(self):
- """Test locking and unlocking the screen with the wrong password."""
- self.testLockScreenAfterLogin()
- self.UnlockScreen('not_the_right_password')
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_screen_locked'],
- msg='Screen is unlock, but it should have been unlocked '
- 'since we attempted to unlock with a bad password')
-
- def testLoginToCreateNewAccount(self):
- """Test we can login as a guest and create a new account."""
- self.ShowCreateAccountUI()
- # The login hook does not wait for the first tab to load, so we wait here.
- self.assertTrue(
- self.WaitUntil(self.GetActiveTabTitle, expect_retval='Google Accounts'),
- msg='Could not verify that the Accounts tab was opened.')
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_guest'], msg='Not logged in as guest.')
-
- def testGoodLoginForTransitionedDomainAccount(self):
- """Test that login is successful with valid credentials for a domain.
-
- ChromeOS only allows GA+ accounts to login, there are also known as
- transitioned accounts.
-
- """
- credentials = self._ValidCredentials(account_type='test_domain_account')
- self.Login(credentials['username'], credentials['password'])
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Login failed.')
-
- def testNavigateAfterLogin(self):
- """Test that page navigation is successful after logging in."""
- self.testGoodLogin()
- self.NavigateToURL("http://www.google.com")
- self.assertEqual(self.GetActiveTabTitle(), 'Google',
- msg='Unable to navigate to Google and verify tab title.')
-
- def testSigningOutFromLockedScreen(self):
- """Test logout can be performed from the lock screen."""
- self.testLockScreenAfterLogin()
- self.SignoutInScreenLocker()
- self.assertFalse(self.GetLoginInfo()['is_logged_in'],
- msg='Still logged in when we should be logged out.')
-
- def testLoginSequenceSanity(self):
- """Test that the interface can maintain a connection after multiple logins.
-
- This test is to verify the stability of the automation interface.
-
- """
- self.testGoodLogin()
- self.Logout()
- self.testBadPassword()
- self.testLoginAsGuest()
- self.Logout()
- self.testLoginToCreateNewAccount()
-
- def testLogoutWithNoWindows(self):
- """Verify logout when no browser windows are present."""
- self.testGoodLogin()
- for i in range(5):
- self.OpenNewBrowserWindow(True)
- for _ in range(self.GetBrowserWindowCount()):
- self.CloseBrowserWindow(0)
- self.assertEqual(0, self.GetBrowserWindowCount(),
- msg='Could not close all browser windows')
- self.Logout()
- self.testGoodLogin()
-
- def testInitialLoginState(self):
- """Verify basic state of browser windows at initial login."""
- self.testGoodLogin()
- # Should have 1 browser window with 1 tab.
- info = self.GetBrowserInfo()
- self.assertEqual(1, len(info['windows']))
- self.assertFalse(info['windows'][0]['incognito'],
- msg='Did not expect incognito window after login')
- self.assertEqual(1, len(info['windows'][0]['tabs']))
-
- self.OpenNewBrowserWindow(True)
- # Should have 2 regular browser windows.
- info = self.GetBrowserInfo()
- self.assertEqual(2, len(info['windows']))
- self.assertFalse(info['windows'][0]['incognito'])
- self.assertFalse(info['windows'][1]['incognito'],
- msg='Expected a regular new window.')
-
- def testProfilePreservedBetweenLogins(self):
- """Verify that profile is preserved between two login sessions.
-
- Also verify Local State.
- """
- self.testGoodLogin()
-
- # Build up some history and setup state in "Local State".
- url = self.GetHttpURLForDataPath('title2.html')
- self.NavigateToURL(url)
- # chromeos often takes a while to register URLs into history.
- self.assertTrue(self.WaitUntil(lambda: self.GetHistoryInfo().History()),
- msg='Could not open %s successfully' % url)
- open('/home/chronos/__magic__', 'w').close()
- open('/home/chronos/user/__magic__', 'w').close()
-
- def _VerifyProfile():
- history = self.GetHistoryInfo().History()
- self.assertEqual(1, len(history))
- self.assertEqual(url, history[0]['url'])
- self.assertTrue(os.path.exists('/home/chronos/__magic__'),
- msg='/home/chronos/__magic__ did not persist across login sessions')
- self.assertTrue(os.path.exists('/home/chronos/user/__magic__'),
- msg='/home/chronos/user/__magic__ did not persist across '
- 'login sessions')
-
- _VerifyProfile()
- self.Logout()
- self.testGoodLogin() # Re-login with same account.
- _VerifyProfile()
-
- def testGuestCrosh(self):
- """Verify we can use crosh in guest mode."""
- self.LoginAsGuest()
- login_info = self.GetLoginInfo()
- self.assertTrue(login_info['is_logged_in'], msg='Not logged in at all.')
- self.assertTrue(login_info['is_guest'], msg='Not logged in as guest.')
- for _ in range(self.GetBrowserWindowCount()):
- self.CloseBrowserWindow(0)
- test_utils.OpenCroshVerification(self)
-
- # Verify crosh prompt.
- self.WaitForHtermText(text='crosh> ',
- msg='Could not find "crosh> " prompt')
- self.assertTrue(
- self.GetHtermRowsText(start=0, end=2).endswith('crosh> '),
- msg='Could not find "crosh> " prompt')
-
- # Run a crosh command.
- self.SendKeysToHterm('help\\n')
- self.WaitForHtermText(text='help_advanced',
- msg='Could not find "help_advanced" in help output.')
-
- # Exit crosh and close tab.
- self.SendKeysToHterm('exit\\n')
- self.WaitForHtermText(text='command crosh completed with exit code 0',
- msg='Could not exit crosh.')
-
- def testCroshPreservedBetweenLogins(self):
- """Verify user can continue after re-login."""
- self.testGoodLogin()
- self.CloseBrowserWindow(0)
- test_utils.OpenCroshVerification(self)
-
- # Verify crosh prompt.
- self.WaitForHtermText(text='crosh> ',
- msg='Could not find "crosh> " prompt')
- self.assertTrue(
- self.GetHtermRowsText(start=0, end=2).endswith('crosh> '),
- msg='Could not find "crosh> " prompt')
-
- # Open 2 other tabs.
- self.AppendTab(self.GetHttpURLForDataPath('title2.html'))
- self.assertEqual('Title Of Awesomeness', self.GetActiveTabTitle(),
- msg='Unable to naviage to title2.html and '
- 'verify tab title.')
- self.AppendTab(self.GetHttpURLForDataPath('settings', 'image_page.html'))
- self.assertEqual('Show an image', self.GetActiveTabTitle(),
- msg='Unable to navigate to image_page and '
- 'verify tab title.')
- self.Logout()
- self.testGoodLogin() # Re-Login with same account.
-
- # Verify 3 tabs are still open after re-login.
- self.assertEqual(3, len(self.GetBrowserInfo()['windows'][0]['tabs']))
-
-
-class ChromeosLoginCachedCredentialsAddUser(pyauto.PyUITest):
- """TestCase for failing to add a user with invalid proxy settings."""
- assert os.geteuid() == 0, 'Need to run this test as root'
-
- def ShouldAutoLogin(self):
- return False
-
- def setUp(self):
- # We want a clean session_manager instance for every run,
- # so restart ui now.
- cros_ui.stop(allow_fail=True)
- cryptohome.remove_all_vaults()
- cros_ui.start(wait_for_login_prompt=False)
- pyauto.PyUITest.setUp(self)
-
- def tearDown(self):
- self.ResetProxySettingsOnChromeOS()
- pyauto.PyUITest.tearDown(self)
-
- def _ValidCredentials(self, account_type='test_google_account'):
- """Obtains a valid username and password from a data file.
-
- Returns:
- A dictionary with the keys 'username' and 'password'
- """
- return self.GetPrivateInfo()[account_type]
-
- def testCachedCredentialsAddUser(self):
- self.SetSharedProxies(True)
- proxy_config = {
- 'mode': 'fixed_servers',
- 'server': '127.0.0.1'
- }
- self.SetProxySettingOnChromeOS(proxy_config);
-
- """Test that login fails."""
- credentials = self._ValidCredentials()
- self.assertRaises(
- pyauto_errors.JSONInterfaceError,
- lambda: self.Login(credentials['username'],
- credentials['password'])
- )
-
-class ChromeosLoginCachedCredentialsUserPod(ChromeosLogin):
- """TestCase for Logging into ChromeOS with cached credentials and
- invalid proxy settings.
- """
- assert os.geteuid() == 0, 'Need to run this test as root'
-
- def ShouldAutoLogin(self):
- return False
-
- def setUp(self):
- # We want a clean session_manager instance for every run,
- # so restart ui now.
- cros_ui.stop(allow_fail=True)
- cryptohome.remove_all_vaults()
- cros_ui.start(wait_for_login_prompt=False)
- pyauto.PyUITest.setUp(self)
-
- def tearDown(self):
- self.ResetProxySettingsOnChromeOS()
- pyauto.PyUITest.tearDown(self)
-
- def _ValidCredentials(self, account_type='test_google_account'):
- """Obtains a valid username and password from a data file.
-
- Returns:
- A dictionary with the keys 'username' and 'password'
- """
- return self.GetPrivateInfo()[account_type]
-
- def testCachedCredentialsUserPod(self):
- """Test that we can login without connectivity if we have so before.
-
- This test is currently disabled because testGoodLogin tries to
- add a user after setting proxies, which is supposed to fail. To
- make it pass we need a hook that simply calls Login on the delegate
- in webui_login_display.cc ::ShowSigninScreenForCreds.
- """
- self.testGoodLogin()
- self.Logout()
- self.SetSharedProxies(True)
- proxy_config = {
- 'mode': 'fixed_servers',
- 'server': '127.0.0.1'
- }
- self.SetProxySettingOnChromeOS(proxy_config);
- self.testGoodLogin()
- self.ResetProxySettingsOnChromeOS()
-
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/chromeos_gsm_compliance.py ('k') | chrome/test/functional/chromeos_offline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698