| 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 |