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

Side by Side Diff: chrome/test/telemetry/chromeos/login_unittest.py

Issue 106193010: Bootstrap code for testOobeLocalization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 7 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import json 4 import json
5 import logging 5 import logging
6 import os 6 import os
7 import unittest 7 import unittest
8 8
9 from telemetry.core import browser_finder 9 from telemetry.core import browser_finder
10 from telemetry.core import exceptions 10 from telemetry.core import exceptions
(...skipping 11 matching lines...) Expand all
22 self._email = '' if self._is_guest else 'test@test.test' 22 self._email = '' if self._is_guest else 'test@test.test'
23 23
24 def _IsCryptohomeMounted(self): 24 def _IsCryptohomeMounted(self):
25 """Returns True if cryptohome is mounted""" 25 """Returns True if cryptohome is mounted"""
26 cryptohomeJSON, _ = self._cri.RunCmdOnDevice(['/usr/sbin/cryptohome', 26 cryptohomeJSON, _ = self._cri.RunCmdOnDevice(['/usr/sbin/cryptohome',
27 '--action=status']) 27 '--action=status'])
28 cryptohomeStatus = json.loads(cryptohomeJSON) 28 cryptohomeStatus = json.loads(cryptohomeJSON)
29 return (cryptohomeStatus['mounts'] and 29 return (cryptohomeStatus['mounts'] and
30 cryptohomeStatus['mounts'][0]['mounted']) 30 cryptohomeStatus['mounts'][0]['mounted'])
31 31
32 def _CreateBrowser(self, with_autotest_ext): 32 def _CreateBrowser(self, autotest_ext=False, auto_login=True):
33 """Finds and creates a browser for tests. if with_autotest_ext is True, 33 """Finds and creates a browser for tests. if autotest_ext is True,
34 also loads the autotest extension""" 34 also loads the autotest extension"""
35 options = options_for_unittests.GetCopy() 35 options = options_for_unittests.GetCopy()
36 36
37 if with_autotest_ext: 37 if autotest_ext:
38 extension_path = os.path.join(os.path.dirname(__file__), 'autotest_ext') 38 extension_path = os.path.join(os.path.dirname(__file__), 'autotest_ext')
39 self._load_extension = extension_to_load.ExtensionToLoad( 39 self._load_extension = extension_to_load.ExtensionToLoad(
40 path=extension_path, 40 path=extension_path,
41 browser_type=options.browser_type, 41 browser_type=options.browser_type,
42 is_component=True) 42 is_component=True)
43 options.extensions_to_load = [self._load_extension] 43 options.extensions_to_load = [self._load_extension]
44 options.browser_options.create_browser_with_oobe = True
45 44
46 browser_to_create = browser_finder.FindBrowser(options) 45 browser_to_create = browser_finder.FindBrowser(options)
47 self.assertTrue(browser_to_create) 46 self.assertTrue(browser_to_create)
47 options.browser_options.create_browser_with_oobe = True
48 options.browser_options.auto_login = auto_login
48 b = browser_to_create.Create() 49 b = browser_to_create.Create()
49 b.Start() 50 b.Start()
50 return b 51 return b
51 52
52 def _GetAutotestExtension(self, browser): 53 def _GetAutotestExtension(self, browser):
53 """Returns the autotest extension instance""" 54 """Returns the autotest extension instance"""
54 extension = browser.extensions[self._load_extension] 55 extension = browser.extensions[self._load_extension]
55 self.assertTrue(extension) 56 self.assertTrue(extension)
56 return extension 57 return extension
57 58
58 def _GetLoginStatus(self, browser): 59 def _GetLoginStatus(self, browser):
59 extension = self._GetAutotestExtension(browser) 60 extension = self._GetAutotestExtension(browser)
60 self.assertTrue(extension.EvaluateJavaScript( 61 self.assertTrue(extension.EvaluateJavaScript(
61 "typeof('chrome.autotestPrivate') != 'undefined'")) 62 "typeof('chrome.autotestPrivate') != 'undefined'"))
62 extension.ExecuteJavaScript(''' 63 extension.ExecuteJavaScript('''
63 window.__login_status = null; 64 window.__login_status = null;
64 chrome.autotestPrivate.loginStatus(function(s) { 65 chrome.autotestPrivate.loginStatus(function(s) {
65 window.__login_status = s; 66 window.__login_status = s;
66 }); 67 });
67 ''') 68 ''')
68 return util.WaitFor( 69 return util.WaitFor(
69 lambda: extension.EvaluateJavaScript('window.__login_status'), 10) 70 lambda: extension.EvaluateJavaScript('window.__login_status'), 10)
70 71
71 def testCryptohomeMounted(self): 72 def testCryptohomeMounted(self):
72 """Verifies cryptohome mount status for regular and guest user and when 73 """Verifies cryptohome mount status for regular and guest user and when
73 logged out""" 74 logged out"""
74 with self._CreateBrowser(False) as b: 75 with self._CreateBrowser() as b:
75 self.assertEquals(1, len(b.tabs)) 76 self.assertEquals(1, len(b.tabs))
76 self.assertTrue(b.tabs[0].url) 77 self.assertTrue(b.tabs[0].url)
77 self.assertTrue(self._IsCryptohomeMounted()) 78 self.assertTrue(self._IsCryptohomeMounted())
78 79
79 chronos_fs = self._cri.FilesystemMountedAt('/home/chronos/user') 80 chronos_fs = self._cri.FilesystemMountedAt('/home/chronos/user')
80 self.assertTrue(chronos_fs) 81 self.assertTrue(chronos_fs)
81 if self._is_guest: 82 if self._is_guest:
82 self.assertEquals(chronos_fs, 'guestfs') 83 self.assertEquals(chronos_fs, 'guestfs')
83 else: 84 else:
84 home, _ = self._cri.RunCmdOnDevice(['/usr/sbin/cryptohome-path', 85 home, _ = self._cri.RunCmdOnDevice(['/usr/sbin/cryptohome-path',
85 'user', self._email]) 86 'user', self._email])
86 self.assertEquals(self._cri.FilesystemMountedAt(home.rstrip()), 87 self.assertEquals(self._cri.FilesystemMountedAt(home.rstrip()),
87 chronos_fs) 88 chronos_fs)
88 89
89 self.assertFalse(self._IsCryptohomeMounted()) 90 self.assertFalse(self._IsCryptohomeMounted())
90 self.assertEquals(self._cri.FilesystemMountedAt('/home/chronos/user'), 91 self.assertEquals(self._cri.FilesystemMountedAt('/home/chronos/user'),
91 '/dev/mapper/encstateful') 92 '/dev/mapper/encstateful')
92 93
93 def testLoginStatus(self): 94 def testLoginStatus(self):
94 """Tests autotestPrivate.loginStatus""" 95 """Tests autotestPrivate.loginStatus"""
95 with self._CreateBrowser(True) as b: 96 with self._CreateBrowser(autotest_ext=True) as b:
96 login_status = self._GetLoginStatus(b) 97 login_status = self._GetLoginStatus(b)
97 self.assertEquals(type(login_status), dict) 98 self.assertEquals(type(login_status), dict)
98 99
99 self.assertEquals(not self._is_guest, login_status['isRegularUser']) 100 self.assertEquals(not self._is_guest, login_status['isRegularUser'])
100 self.assertEquals(self._is_guest, login_status['isGuest']) 101 self.assertEquals(self._is_guest, login_status['isGuest'])
101 self.assertEquals(login_status['email'], self._email) 102 self.assertEquals(login_status['email'], self._email)
102 self.assertFalse(login_status['isScreenLocked']) 103 self.assertFalse(login_status['isScreenLocked'])
103 104
104 def _IsScreenLocked(self, browser): 105 def _IsScreenLocked(self, browser):
105 return self._GetLoginStatus(browser)['isScreenLocked'] 106 return self._GetLoginStatus(browser)['isScreenLocked']
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 def _UnlockScreen(self, browser): 139 def _UnlockScreen(self, browser):
139 logging.info('Unlocking') 140 logging.info('Unlocking')
140 browser.oobe.ExecuteJavaScript(''' 141 browser.oobe.ExecuteJavaScript('''
141 Oobe.authenticateForTesting('test@test.test', ''); 142 Oobe.authenticateForTesting('test@test.test', '');
142 ''') 143 ''')
143 util.WaitFor(lambda: not browser.oobe, 10) 144 util.WaitFor(lambda: not browser.oobe, 10)
144 self.assertFalse(self._IsScreenLocked(browser)) 145 self.assertFalse(self._IsScreenLocked(browser))
145 146
146 def testScreenLock(self): 147 def testScreenLock(self):
147 """Tests autotestPrivate.screenLock""" 148 """Tests autotestPrivate.screenLock"""
148 with self._CreateBrowser(True) as browser: 149 with self._CreateBrowser(autotest_ext=True) as browser:
149 self._LockScreen(browser) 150 self._LockScreen(browser)
150 self._AttemptUnlockBadPassword(browser) 151 self._AttemptUnlockBadPassword(browser)
151 self._UnlockScreen(browser) 152 self._UnlockScreen(browser)
152 153
153 154
154 def testLogout(self): 155 def testLogout(self):
155 """Tests autotestPrivate.logout""" 156 """Tests autotestPrivate.logout"""
156 with self._CreateBrowser(True) as b: 157 with self._CreateBrowser(autotest_ext=True) as b:
157 extension = self._GetAutotestExtension(b) 158 extension = self._GetAutotestExtension(b)
158 try: 159 try:
159 extension.ExecuteJavaScript('chrome.autotestPrivate.logout();') 160 extension.ExecuteJavaScript('chrome.autotestPrivate.logout();')
160 except (exceptions.BrowserConnectionGoneException, 161 except (exceptions.BrowserConnectionGoneException,
161 exceptions.BrowserGoneException): 162 exceptions.BrowserGoneException):
162 pass 163 pass
163 util.WaitFor(lambda: not self._IsCryptohomeMounted(), 20) 164 util.WaitFor(lambda: not self._IsCryptohomeMounted(), 20)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698