summaryrefslogtreecommitdiffstats
path: root/chrome/test/functional/chromeos_prefs.py
blob: d4b6f8045f9de1db283f732b57468b86d37a1f94 (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
66
67
68
69
#!/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 os
import sys
import time

import pyauto_functional  # Must be imported before pyauto
import pyauto

sys.path.append('/usr/local')  # Required to import autotest libs
from autotest.cros import constants


class ChromeosPrefsTest(pyauto.PyUITest):
  """TestCase for ChromeOS Preferences."""

  # Defined in src/chrome/browser/chromeos/login/user_manager.cc
  k_logged_in_users = 'LoggedInUsers'
  k_user_images = 'UserImages'
  k_image_path_node_name = 'path'

  def testAllUserImage(self):
    """Verify changing all available default user images in Change picture."""

    logged_in_user = constants.CREDENTIALS['$default'][0]
    for i in range(19):
      image = {
          "index": i,
          "path": ""
      }
      user_images = {}
      user_images[logged_in_user] = image
      self.SetLocalStatePrefs(ChromeosPrefsTest.k_user_images, user_images)
      self.RestartBrowser(clear_profile=False)
      current_user_images = self.GetLocalStatePrefsInfo().Prefs(
          ChromeosPrefsTest.k_user_images)
      current_image = current_user_images.get(logged_in_user)
      self.assertEqual(image, current_image,
                       msg='Default user image was not set in preferences.')

  def testCaptureUserPhoto(self):
    """Verify capturing/saving user photo works."""

    logged_in_user = constants.CREDENTIALS['$default'][0]
    # Defined in src/chrome/browser/chromeos/login/user_manager.cc
    expected_photo_name = logged_in_user + '.png'

    self.CaptureProfilePhoto()

    for i in range(2):
      current_user_images = self.GetLocalStatePrefsInfo().Prefs(
          ChromeosPrefsTest.k_user_images)
      current_image_path = current_user_images.get(logged_in_user).get(
          ChromeosPrefsTest.k_image_path_node_name)
      self.assertTrue(expected_photo_name in current_image_path,
                      msg='Captured user photo was not set in preferences.')
      self.assertTrue(os.path.isfile(current_image_path),
          msg='Image file was not saved.') and \
          self.assertTrue(os.path.getsize(current_image_path) > 1000,
          msg='Image file may not be valid.' )
      if not i:
        self.RestartBrowser(clear_profile=False)


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