Index: chrome/test/functional/chromeos_device_policy.py |
diff --git a/chrome/test/functional/chromeos_device_policy.py b/chrome/test/functional/chromeos_device_policy.py |
deleted file mode 100644 |
index b801d656f9adc2e094696fd2f391966eca9713e0..0000000000000000000000000000000000000000 |
--- a/chrome/test/functional/chromeos_device_policy.py |
+++ /dev/null |
@@ -1,216 +0,0 @@ |
-# 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 pyauto_functional # Must come before pyauto (and thus, policy_base). |
-import policy_base |
- |
- |
-class ChromeosDevicePolicy(policy_base.PolicyTestBase): |
- """Tests various ChromeOS device policies.""" |
- |
- # Cache user credentials for easy lookup. |
- private_info = policy_base.PolicyTestBase.GetPrivateInfo() |
- credentials = (private_info['prod_enterprise_test_user'], |
- private_info['prod_enterprise_executive_user'], |
- private_info['prod_enterprise_sales_user']) |
- _usernames = [credential['username'] for credential in credentials] |
- _passwords = [credential['password'] for credential in credentials] |
- |
- def LoginAsGuest(self): |
- self.assertFalse(self.GetLoginInfo()['is_logged_in'], |
- msg='Expected to be logged out.') |
- policy_base.PolicyTestBase.LoginAsGuest(self) |
- self.assertTrue(self.GetLoginInfo()['is_logged_in'], |
- msg='Expected to be logged in.') |
- |
- def _Login(self, user_index, expect_success): |
- self.assertFalse(self.GetLoginInfo()['is_logged_in'], |
- msg='Expected to be logged out.') |
- policy_base.PolicyTestBase.Login(self, |
- self._usernames[user_index], |
- self._passwords[user_index]) |
- if expect_success: |
- self.assertTrue(self.GetLoginInfo()['is_logged_in'], |
- msg='Expected to be logged in.') |
- else: |
- self.assertFalse(self.GetLoginInfo()['is_logged_in'], |
- msg='Expected to not be logged in.') |
- |
- def _CheckGuestModeAvailableInLoginWindow(self): |
- return self.ExecuteJavascriptInOOBEWebUI( |
- """window.domAutomationController.send( |
- !document.getElementById('guestSignin').hidden); |
- """) |
- |
- def _CheckGuestModeAvailableInAccountPicker(self): |
- return self.ExecuteJavascriptInOOBEWebUI( |
- """window.domAutomationController.send( |
- !!document.getElementById('pod-row').getPodWithUsername_('')); |
- """) |
- |
- def _CheckPodVisible(self, username): |
- javascript = """ |
- var pod = document.getElementById('pod-row').getPodWithUsername_('%s'); |
- window.domAutomationController.send(!!pod && !pod.hidden); |
- """ |
- return self.ExecuteJavascriptInOOBEWebUI(javascript % username) |
- |
- def _WaitForPodVisibility(self, username, visible): |
- self.assertTrue( |
- self.WaitUntil(function=lambda: self._CheckPodVisible(username), |
- expect_retval=visible), |
- msg='Expected pod for user %s to %s be visible.' % |
- (username, '' if visible else 'not')) |
- |
- def testGuestModeEnabled(self): |
- """Checks that guest mode login can be enabled/disabled.""" |
- self.SetDevicePolicy({'guest_mode_enabled': True}) |
- self.assertTrue(self._CheckGuestModeAvailableInLoginWindow(), |
- msg='Expected guest mode to be available.') |
- self.LoginAsGuest() |
- self.Logout() |
- |
- self.SetDevicePolicy({'guest_mode_enabled': False}) |
- self.assertFalse(self._CheckGuestModeAvailableInLoginWindow(), |
- msg='Expected guest mode to not be available.') |
- |
- # Log in as a regular so that the pod row contains at least one pod and the |
- # account picker is shown. |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- |
- self.SetDevicePolicy({'guest_mode_enabled': True}) |
- self.assertTrue(self._CheckGuestModeAvailableInAccountPicker(), |
- msg='Expected guest mode to be available.') |
- self.LoginAsGuest() |
- self.Logout() |
- |
- self.SetDevicePolicy({'guest_mode_enabled': False}) |
- self.assertFalse(self._CheckGuestModeAvailableInAccountPicker(), |
- msg='Expected guest mode to not be available.') |
- |
- def testShowUserNamesOnSignin(self): |
- """Checks that the account picker can be enabled/disabled.""" |
- # Log in as a regular user so that the pod row contains at least one pod and |
- # the account picker can be shown. |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- |
- self.SetDevicePolicy({'show_user_names': False}) |
- self._WaitForLoginScreenId('gaia-signin') |
- |
- self.SetDevicePolicy({'show_user_names': True}) |
- self._WaitForLoginScreenId('account-picker') |
- |
- def testUserWhitelistAndAllowNewUsers(self): |
- """Checks that login can be (dis)allowed by whitelist and allow-new-users. |
- |
- The test verifies that these two interrelated policies behave as documented |
- in the chrome/browser/policy/proto/chrome_device_policy.proto file. Cases |
- for which the current behavior is marked as "broken" are intentionally |
- ommitted since the broken behavior should be fixed rather than protected by |
- tests. |
- """ |
- # No whitelist |
- self.SetDevicePolicy({'allow_new_users': True}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- |
- # Empty whitelist |
- self.SetDevicePolicy({'user_whitelist': []}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- |
- self.SetDevicePolicy({'allow_new_users': True, |
- 'user_whitelist': []}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- |
- # Populated whitelist |
- self.SetDevicePolicy({'user_whitelist': [self._usernames[0]]}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- self._Login(user_index=1, expect_success=False) |
- |
- self.SetDevicePolicy({'allow_new_users': True, |
- 'user_whitelist': [self._usernames[0]]}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- self._Login(user_index=1, expect_success=True) |
- self.Logout() |
- |
- # New users not allowed, populated whitelist |
- self.SetDevicePolicy({'allow_new_users': False, |
- 'user_whitelist': [self._usernames[0]]}) |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- self._Login(user_index=1, expect_success=False) |
- |
- def testUserWhitelistInAccountPicker(self): |
- """Checks that setting a whitelist removes non-whitelisted user pods.""" |
- # Disable the account picker so that the login form is shown and the Login() |
- # automation call can be used. |
- self.PrepareToWaitForLoginFormReload() |
- self.SetDevicePolicy({'show_user_names': False}) |
- self.WaitForLoginFormReload() |
- |
- # Log in to populate the list of existing users. |
- self._Login(user_index=0, expect_success=True) |
- self.Logout() |
- self._Login(user_index=1, expect_success=True) |
- self.Logout() |
- |
- # Enable the account picker. |
- self.SetDevicePolicy({'show_user_names': True}) |
- self._WaitForLoginScreenId('account-picker') |
- |
- # Check pod visibility with and without a whitelist. |
- self._WaitForPodVisibility(username=self._usernames[0], visible=True) |
- self._WaitForPodVisibility(username=self._usernames[1], visible=True) |
- |
- self.SetDevicePolicy({'show_user_names': True, |
- 'user_whitelist': [self._usernames[1]]}) |
- self._WaitForPodVisibility(username=self._usernames[0], visible=False) |
- self._WaitForPodVisibility(username=self._usernames[1], visible=True) |
- |
- self.SetDevicePolicy({'show_user_names': True}) |
- self._WaitForPodVisibility(username=self._usernames[0], visible=True) |
- self._WaitForPodVisibility(username=self._usernames[1], visible=True) |
- |
- _timezones = ['America/Barbados', 'Europe/Helsinki'] |
- |
- def testTimezoneSettingWithoutPolicy(self): |
- """Without timezone policy, timezone changes by user are persistent.""" |
- self.SetDevicePolicy(refresh=False) |
- |
- for timezone in self._timezones: |
- self._Login(user_index=1, expect_success=True) |
- self.SetTimezone(timezone) |
- self.assertEqual(timezone, self.GetTimeInfo()['timezone']) |
- |
- self.Logout() |
- self.assertEqual(timezone, self.GetTimeInfo()['timezone']) |
- |
- |
- def testTimezoneSettingWithPolicy(self): |
- """With timezone policy, timezone changes by user are reset on logout.""" |
- self.SetDevicePolicy({'timezone': self._timezones[0]}, refresh=True) |
- |
- # Timezones are set on startup, i.e. everytime when loading the login |
- # screen. Something like a browser restart may work, too. |
- self._Login(user_index=1, expect_success=True) |
- self.Logout() |
- |
- self.assertEqual(self._timezones[0], self.GetTimeInfo()['timezone']) |
- |
- self._Login(user_index=1, expect_success=True) |
- self.SetTimezone(self._timezones[1]) |
- self.assertEqual(self._timezones[1], self.GetTimeInfo()['timezone']) |
- |
- self.Logout() |
- self.assertEqual(self._timezones[0], self.GetTimeInfo()['timezone']) |
- |
- |
-if __name__ == '__main__': |
- pyauto_functional.Main() |