| 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 sys | |
| 8 | |
| 9 import pyauto_functional # Must be imported before pyauto | |
| 10 import pyauto | |
| 11 | |
| 12 sys.path.append('/usr/local') # To make autotest libs importable. | |
| 13 from autotest.cros import cros_ui | |
| 14 from autotest.cros import ownership | |
| 15 | |
| 16 | |
| 17 class ChromeosTime(pyauto.PyUITest): | |
| 18 """Tests for the ChromeOS status area clock and timezone settings.""" | |
| 19 | |
| 20 def setUp(self): | |
| 21 cros_ui.fake_ownership() | |
| 22 pyauto.PyUITest.setUp(self) | |
| 23 self._initial_timezone = self.GetTimeInfo()['timezone'] | |
| 24 | |
| 25 def tearDown(self): | |
| 26 self.SetTimezone(self._initial_timezone) | |
| 27 pyauto.PyUITest.tearDown(self) | |
| 28 ownership.clear_ownership() | |
| 29 | |
| 30 def testTimeInfo(self): | |
| 31 """Print the the display time, date, and timezone.""" | |
| 32 logging.debug(self.GetTimeInfo()) | |
| 33 | |
| 34 def testSetTimezone(self): | |
| 35 """Sanity test to make sure setting the timezone works.""" | |
| 36 self.SetTimezone('America/Los_Angeles') | |
| 37 pacific_time = self.GetTimeInfo()['display_time'] | |
| 38 self.SetTimezone('America/New_York') | |
| 39 eastern_time = self.GetTimeInfo()['display_time'] | |
| 40 | |
| 41 self.assertNotEqual(pacific_time, eastern_time, | |
| 42 'Time zone changed but display time did not.') | |
| 43 | |
| 44 def _IsTimezoneEditable(self): | |
| 45 """Check if the timezone is editable. | |
| 46 | |
| 47 It will navigate to the system settings page and verify that the | |
| 48 timezone settings drop down is not disabled. | |
| 49 | |
| 50 Returns: | |
| 51 True, if timezone dropdown is enabled | |
| 52 False, otherwise | |
| 53 """ | |
| 54 self.NavigateToURL('chrome://settings-frame') | |
| 55 ret = self.ExecuteJavascript(""" | |
| 56 var disabled = true; | |
| 57 var timezone = document.getElementById('timezone-select'); | |
| 58 if (timezone) | |
| 59 disabled = timezone.disabled; | |
| 60 domAutomationController.send(disabled.toString()); | |
| 61 """) | |
| 62 return ret == 'false' | |
| 63 | |
| 64 def testTimezoneIsEditable(self): | |
| 65 """Test that the timezone is always editable.""" | |
| 66 # This test only makes sense if we are not running as the owner. | |
| 67 self.assertFalse(self.GetLoginInfo()['is_owner']) | |
| 68 editable = self._IsTimezoneEditable() | |
| 69 self.assertTrue(editable, msg='Timezone is not editable when not owner.') | |
| 70 | |
| 71 def _SetTimezoneInUI(self, timezone): | |
| 72 self.NavigateToURL('chrome://settings-frame/settings') | |
| 73 self.ExecuteJavascript(""" | |
| 74 var selectElement = document.getElementById('timezone-select'); | |
| 75 selectElement.value = "%s"; | |
| 76 var event = document.createEvent("HTMLEvents"); | |
| 77 event.initEvent("change", true, true); | |
| 78 selectElement.dispatchEvent(event); | |
| 79 domAutomationController.send(""); | |
| 80 """ % timezone) | |
| 81 | |
| 82 def testSetTimezoneUI(self): | |
| 83 """Test that the timezone UI changes internal settings. | |
| 84 | |
| 85 Set the Timezone on the settings page. Check the internal timezone | |
| 86 afterwards. Timezones should be always editable.""" | |
| 87 | |
| 88 for timezone in ['America/Barbados', 'Europe/Helsinki']: | |
| 89 self._SetTimezoneInUI(timezone) | |
| 90 self.assertTrue(self.WaitUntil(lambda: self.GetTimeInfo()['timezone'], | |
| 91 expect_retval=timezone), | |
| 92 'Timezone not changed as expected.'); | |
| 93 | |
| 94 if __name__ == '__main__': | |
| 95 pyauto_functional.Main() | |
| OLD | NEW |