summaryrefslogtreecommitdiffstats
path: root/chrome/test/functional/chromeos_time.py
blob: 136ecf3f1574f07444061b079e3fb77af2efa986 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import logging

import pyauto_functional  # Must be imported before pyauto
import pyauto

class ChromeosTime(pyauto.PyUITest):
  """Tests for the ChromeOS status area clock and timezone settings."""

  def setUp(self):
    pyauto.PyUITest.setUp(self)
    self._initial_timezone = self.GetTimeInfo()['timezone']

  def tearDown(self):
    self.SetTimezone(self._initial_timezone)
    pyauto.PyUITest.tearDown(self)

  def testTimeInfo(self):
    """Print the the display time, date, and timezone."""
    logging.debug(self.GetTimeInfo())

  def testSetTimezone(self):
    """Sanity test to make sure setting the timezone works."""
    self.SetTimezone('America/Los_Angeles')
    pacific_time = self.GetTimeInfo()['display_time']
    self.SetTimezone('America/New_York')
    eastern_time = self.GetTimeInfo()['display_time']

    self.assertNotEqual(pacific_time, eastern_time,
                        'Time zone changed but display time did not.')

  def _IsTimezoneEditable(self):
    """Check if the timezone is editable.

    It will navigate to the system settings page and verify that the
    timezone settings drop down is not disabled.

    Returns:
      True, if timezone dropdown is enabled
      False, otherwise
    """
    self.NavigateToURL('chrome://settings-frame')
    ret = self.ExecuteJavascript("""
        var disabled = true;
        var timezone = document.getElementById('timezone-select');
        if (timezone)
          disabled = timezone.disabled;
        domAutomationController.send(disabled.toString());
    """)
    return ret == 'false'

  def testTimezoneIsEditable(self):
    """Test that the timezone is always editable."""
    # This test only makes sense if we are not running as the owner.
    self.assertFalse(self.GetLoginInfo()['is_owner'])
    editable = self._IsTimezoneEditable()
    self.assertTrue(editable, msg='Timezone is not editable when not owner.')


if __name__ == '__main__':
  pyauto_functional.Main()