test_session_state_delegate.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ash/test/test_session_state_delegate.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/string16.h"
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/utf_string_conversions.h"
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace ash {
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace test {
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TestSessionStateDelegate::TestSessionStateDelegate()
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    : has_active_user_(true),
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      active_user_session_started_(true),
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      can_lock_screen_(true),
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      screen_locked_(false),
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      logged_in_users_(1) {
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TestSessionStateDelegate::~TestSessionStateDelegate() {
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)int TestSessionStateDelegate::GetMaximumNumberOfLoggedInUsers() const {
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return 3;
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)int TestSessionStateDelegate::NumberOfLoggedInUsers() const {
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  // TODO(skuhne): Add better test framework to test multiple profiles.
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return has_active_user_ ? logged_in_users_ : 0;
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool TestSessionStateDelegate::IsActiveUserSessionStarted() const {
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return active_user_session_started_;
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool TestSessionStateDelegate::CanLockScreen() const {
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return has_active_user_ && can_lock_screen_;
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool TestSessionStateDelegate::IsScreenLocked() const {
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return screen_locked_;
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestSessionStateDelegate::LockScreen() {
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (CanLockScreen())
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    screen_locked_ = true;
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestSessionStateDelegate::UnlockScreen() {
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  screen_locked_ = false;
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestSessionStateDelegate::SetHasActiveUser(bool has_active_user) {
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  has_active_user_ = has_active_user;
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (!has_active_user)
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    active_user_session_started_ = false;
58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestSessionStateDelegate::SetActiveUserSessionStarted(
61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    bool active_user_session_started) {
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  active_user_session_started_ = active_user_session_started;
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (active_user_session_started)
64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    has_active_user_ = true;
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void TestSessionStateDelegate::SetCanLockScreen(bool can_lock_screen) {
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  can_lock_screen_ = can_lock_screen;
69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const base::string16 TestSessionStateDelegate::GetUserDisplayName(
7290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    ash::MultiProfileIndex index) const {
7390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return UTF8ToUTF16("Über tray Über tray Über tray Über tray");
7490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
7590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
7690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const std::string TestSessionStateDelegate::GetUserEmail(
7790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    ash::MultiProfileIndex index) const {
7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  switch (index) {
7990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    case 0: return "first@tray";
8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    case 1: return "second@tray";
8190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    case 2: return "third@tray";
8290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    default: return "someone@tray";
8390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  }
8490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
8590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
8690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const gfx::ImageSkia& TestSessionStateDelegate::GetUserImage(
8790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    ash::MultiProfileIndex index) const {
8890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return null_image_;
8990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
9090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
9190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void TestSessionStateDelegate::GetLoggedInUsers(UserEmailList* users) {
9290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
9390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
9490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void TestSessionStateDelegate::SwitchActiveUser(const std::string& email) {
9590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  activated_user_ = email;
9690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
9790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
9890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace test
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace ash
101