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 logging | |
7 import os | |
8 import subprocess | |
9 import sys | |
10 import time | |
11 | |
12 import pyauto_functional | |
13 import pyauto | |
14 | |
15 sys.path.append('/usr/local') # To make autotest libs importable. | |
16 from autotest.cros import cros_ui | |
17 from autotest.cros import cryptohome | |
18 | |
19 | |
20 class AccessibilityTest(pyauto.PyUITest): | |
21 """Tests for Accessibility. | |
22 | |
23 Test various chromeos functionalities while Accessibility is turned on. | |
24 """ | |
25 find_test_data_dir = 'find_in_page' | |
26 | |
27 def ShouldAutoLogin(self): | |
28 return False | |
29 | |
30 def setUp(self): | |
31 # We want a clean session_manager instance for every run, | |
32 # so restart ui now. | |
33 cros_ui.stop(allow_fail=True) | |
34 cryptohome.remove_all_vaults() | |
35 cros_ui.start(wait_for_login_prompt=False) | |
36 pyauto.PyUITest.setUp(self) | |
37 | |
38 def tearDown(self): | |
39 self._DisableSpokenFeedback() | |
40 pyauto.PyUITest.tearDown(self) | |
41 | |
42 def _Login(self): | |
43 """Perform login.""" | |
44 credentials = self.GetPrivateInfo()['test_google_account'] | |
45 self.Login(credentials['username'], credentials['password']) | |
46 logging.info('Logging in as %s' % credentials['username']) | |
47 login_info = self.GetLoginInfo() | |
48 self.assertTrue(login_info['is_logged_in'], msg='Login failed.') | |
49 | |
50 def _LoginWithSpokenFeedback(self): | |
51 self.EnableSpokenFeedback(True) | |
52 self._Login() | |
53 self.assertTrue(self.IsSpokenFeedbackEnabled(), | |
54 msg='Could not enable spoken feedback accessibility mode.') | |
55 | |
56 def _EnableSpokenFeedback(self): | |
57 self.EnableSpokenFeedback(True) | |
58 self.assertTrue(self.IsSpokenFeedbackEnabled(), | |
59 msg='Could not enable spoken feedback accessibility mode.') | |
60 | |
61 def _DisableSpokenFeedback(self): | |
62 self.EnableSpokenFeedback(False) | |
63 self.assertFalse(self.IsSpokenFeedbackEnabled(), | |
64 msg='Could not disable spoken feedback accessibility mode.') | |
65 | |
66 def testCanEnableSpokenFeedback(self): | |
67 """Tests that spoken feedback accessibility mode can be enabled.""" | |
68 self._EnableSpokenFeedback() | |
69 | |
70 def testLoginAsGuest(self): | |
71 """Test that Guest user login is possible when Accessibility is on.""" | |
72 self._EnableSpokenFeedback() | |
73 self.LoginAsGuest() | |
74 login_info = self.GetLoginInfo() | |
75 self.assertTrue(login_info['is_logged_in'], msg='Not logged in at all.') | |
76 self.assertTrue(login_info['is_guest'], msg='Not logged in as guest.') | |
77 url = self.GetFileURLForDataPath('title1.html') | |
78 self.NavigateToURL(url) | |
79 self.assertEqual(1, self.FindInPage('title')['match_count'], | |
80 msg='Failed to load the page or find the page contents.') | |
81 # crbug.com/129218: adding a volume change functionality to automate this | |
82 # issue. Please note that we don't verify any functionality here. | |
83 default_volume = self.GetVolumeInfo() | |
84 for test_volume in (50.00, 77.00, 85.00, 20.00): | |
85 self.SetVolume(test_volume) | |
86 time.sleep(1) | |
87 self.SetVolume(default_volume.get('volume')) | |
88 | |
89 def testAccessibilityBeforeLogin(self): | |
90 """Test Accessibility before login.""" | |
91 self._LoginWithSpokenFeedback() | |
92 self.Logout() | |
93 self.assertFalse(self.GetLoginInfo()['is_logged_in'], | |
94 msg='Still logged in when we should be logged out.') | |
95 self.assertTrue(self.IsSpokenFeedbackEnabled(), | |
96 msg='Spoken feedback accessibility mode disabled after loggin out.') | |
97 | |
98 def testAccessibilityAfterLogin(self): | |
99 """Test Accessibility after login.""" | |
100 self._Login() | |
101 self._EnableSpokenFeedback() | |
102 | |
103 def testPagePerformance(self): | |
104 """Test Chrome works fine when Accessibility is on.""" | |
105 self._LoginWithSpokenFeedback() | |
106 # Verify that opened tab page behaves normally when Spoken Feedback is | |
107 # enabled. crosbug.com/26731 | |
108 url = self.GetFileURLForDataPath(self.find_test_data_dir, 'largepage.html') | |
109 self.NavigateToURL(url) | |
110 self.assertEqual(373, self.FindInPage('daughter of Prince')['match_count'], | |
111 msg='Failed to load the page or find the page contents.') | |
112 | |
113 | |
114 if __name__ == '__main__': | |
115 pyauto_functional.Main() | |
OLD | NEW |