test_session_state_delegate.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
6#define ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
7
8#include "ash/session_state_delegate.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "ui/gfx/image/image_skia.h"
12
13namespace ash {
14namespace test {
15
16class TestSessionStateDelegate : public SessionStateDelegate {
17 public:
18  TestSessionStateDelegate();
19  virtual ~TestSessionStateDelegate();
20
21  void set_logged_in_users(int users) { logged_in_users_ = users; }
22  const std::string& get_activated_user() { return activated_user_; }
23
24  // SessionStateDelegate:
25  virtual int GetMaximumNumberOfLoggedInUsers() const OVERRIDE;
26  virtual int NumberOfLoggedInUsers() const OVERRIDE;
27  virtual bool IsActiveUserSessionStarted() const OVERRIDE;
28  virtual bool CanLockScreen() const OVERRIDE;
29  virtual bool IsScreenLocked() const OVERRIDE;
30  virtual void LockScreen() OVERRIDE;
31  virtual void UnlockScreen() OVERRIDE;
32  virtual const base::string16 GetUserDisplayName(
33      ash::MultiProfileIndex index) const OVERRIDE;
34  virtual const std::string GetUserEmail(
35      ash::MultiProfileIndex index) const OVERRIDE;
36  virtual const gfx::ImageSkia& GetUserImage(
37      ash::MultiProfileIndex index) const OVERRIDE;
38  virtual void GetLoggedInUsers(UserEmailList* users) OVERRIDE;
39  virtual void SwitchActiveUser(const std::string& email) OVERRIDE;
40
41  // Updates the internal state that indicates whether a session is in progress
42  // and there is an active user. If |has_active_user| is |false|,
43  // |active_user_session_started_| is reset to |false| as well (see below for
44  // the difference between these two flags).
45  void SetHasActiveUser(bool has_active_user);
46
47  // Updates the internal state that indicates whether the session has been
48  // fully started for the active user. If |active_user_session_started| is
49  // |true|, |has_active_user_| is set to |true| as well (see below for the
50  // difference between these two flags).
51  void SetActiveUserSessionStarted(bool active_user_session_started);
52
53  // Updates the internal state that indicates whether the screen can be locked.
54  // Locking will only actually be allowed when this value is |true| and there
55  // is an active user.
56  void SetCanLockScreen(bool can_lock_screen);
57
58 private:
59  // Whether a session is in progress and there is an active user.
60  bool has_active_user_;
61
62  // When a user becomes active, the profile and browser UI are not immediately
63  // available. Only once this flag becomes |true| is the browser startup
64  // complete and both profile and UI are fully available.
65  bool active_user_session_started_;
66
67  // Whether the screen can be locked. Locking will only actually be allowed
68  // when this is |true| and there is an active user.
69  bool can_lock_screen_;
70
71  // Whether the screen is currently locked.
72  bool screen_locked_;
73
74  // The number of users logged in.
75  int logged_in_users_;
76
77  // The activated user.
78  std::string activated_user_;
79
80  // A test user image.
81  gfx::ImageSkia null_image_;
82
83  DISALLOW_COPY_AND_ASSIGN(TestSessionStateDelegate);
84};
85
86}  // namespace test
87}  // namespace ash
88
89#endif  // ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
90