| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/env python | |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 3 # Use of this source code is governed by a BSD-style license that can be | |
| 4 # found in the LICENSE file. | |
| 5 | |
| 6 import os | |
| 7 import subprocess | |
| 8 import sys | |
| 9 | |
| 10 import pyauto_functional # Must be imported before pyauto | |
| 11 import pyauto | |
| 12 | |
| 13 | |
| 14 sys.path.append('/usr/local') # To make autotest libs importable. | |
| 15 from autotest.cros import cros_ui | |
| 16 from autotest.cros import cryptohome | |
| 17 | |
| 18 | |
| 19 class ChromeosOOBE(pyauto.PyUITest): | |
| 20 """TestCases for ChromeOS OOBE wizard flow.""" | |
| 21 | |
| 22 assert os.geteuid() == 0, 'Need to run this test as root' | |
| 23 | |
| 24 def ShouldOOBESkipToLogin(self): | |
| 25 """Do not skip OOBE.""" | |
| 26 return False | |
| 27 | |
| 28 def setUp(self): | |
| 29 # We want a clean session_manager instance for every run, | |
| 30 # so restart ui now. | |
| 31 cros_ui.stop(allow_fail=True) | |
| 32 cryptohome.remove_all_vaults() | |
| 33 cros_ui.start(wait_for_login_prompt=False) | |
| 34 pyauto.PyUITest.setUp(self) | |
| 35 | |
| 36 def _AssertCurrentScreen(self, screen_name): | |
| 37 """Verifies current OOBE screen. | |
| 38 | |
| 39 Args: | |
| 40 screen_name: expected current screen name. | |
| 41 """ | |
| 42 self.assertEqual(screen_name, self.GetOOBEScreenInfo()['screen_name']) | |
| 43 | |
| 44 def testBasicFlow(self): | |
| 45 """Test that basic OOBE flow works.""" | |
| 46 self._AssertCurrentScreen('network') | |
| 47 # Network -> EULA (on Google Chrome builds, Update on Chromium). | |
| 48 ret = self.AcceptOOBENetworkScreen() | |
| 49 if self.GetBrowserInfo()['properties']['branding'] == 'Google Chrome': | |
| 50 self.assertEquals('eula', ret['next_screen']) | |
| 51 self._AssertCurrentScreen('eula') | |
| 52 # EULA (accepted) -> Update. | |
| 53 ret = self.AcceptOOBEEula(accepted=True) | |
| 54 # Update may have already been completed, so don't check for it. | |
| 55 # Update (canceled) -> Login. | |
| 56 ret = self.CancelOOBEUpdate() | |
| 57 self.assertEquals('login', ret['next_screen']) | |
| 58 self._AssertCurrentScreen('login') | |
| 59 # Login -> User picker. | |
| 60 credentials = self.GetPrivateInfo()['test_google_account'] | |
| 61 self.Login(credentials['username'], credentials['password']) | |
| 62 login_info = self.GetLoginInfo() | |
| 63 self.assertTrue(login_info['is_logged_in'], msg='Login after OOBE failed.') | |
| 64 # User Picker -> normal browser session. | |
| 65 ret = self.PickUserImage(3) | |
| 66 self.assertEquals('session', ret['next_screen']) | |
| 67 # Should have 1 browser windows ("Getting started"). | |
| 68 self.assertEqual(1, len(self.GetBrowserInfo()['windows'])) | |
| 69 # Verify user image selection. | |
| 70 self.assertEqual(3, self.GetLoginInfo()['user_image']) | |
| 71 | |
| 72 | |
| 73 if __name__ == '__main__': | |
| 74 pyauto_functional.Main() | |
| OLD | NEW |