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.
5 #ifndef ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
6 #define ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_
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"
16 class TestSessionStateDelegate : public SessionStateDelegate {
18 TestSessionStateDelegate();
19 virtual ~TestSessionStateDelegate();
21 void set_logged_in_users(int users) { logged_in_users_ = users; }
22 const std::string& get_activated_user() { return activated_user_; }
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 bool ShouldLockScreenBeforeSuspending() const OVERRIDE;
31 virtual void LockScreen() OVERRIDE;
32 virtual void UnlockScreen() OVERRIDE;
33 virtual bool IsUserSessionBlocked() const OVERRIDE;
34 virtual const base::string16 GetUserDisplayName(
35 ash::MultiProfileIndex index) const OVERRIDE;
36 virtual const std::string GetUserEmail(
37 ash::MultiProfileIndex index) const OVERRIDE;
38 virtual const std::string GetUserID(
39 ash::MultiProfileIndex index) const OVERRIDE;
40 virtual const gfx::ImageSkia& GetUserImage(
41 ash::MultiProfileIndex index) const OVERRIDE;
42 virtual void GetLoggedInUsers(UserIdList* users) OVERRIDE;
43 virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
44 virtual void CycleActiveUser(CycleUser cycle_user) OVERRIDE;
45 virtual void AddSessionStateObserver(
46 ash::SessionStateObserver* observer) OVERRIDE;
47 virtual void RemoveSessionStateObserver(
48 ash::SessionStateObserver* observer) OVERRIDE;
49 virtual bool TransferWindowToDesktopOfUser(
51 ash::MultiProfileIndex index) OVERRIDE;
53 // TODO(oshima): Use state machine instead of using boolean variables.
55 // Updates the internal state that indicates whether a session is in progress
56 // and there is an active user. If |has_active_user| is |false|,
57 // |active_user_session_started_| is reset to |false| as well (see below for
58 // the difference between these two flags).
59 void SetHasActiveUser(bool has_active_user);
61 // Updates the internal state that indicates whether the session has been
62 // fully started for the active user. If |active_user_session_started| is
63 // |true|, |has_active_user_| is set to |true| as well (see below for the
64 // difference between these two flags).
65 void SetActiveUserSessionStarted(bool active_user_session_started);
67 // Updates the internal state that indicates whether the screen can be locked.
68 // Locking will only actually be allowed when this value is |true| and there
70 void SetCanLockScreen(bool can_lock_screen);
72 // Updates |should_lock_screen_before_suspending_|.
73 void SetShouldLockScreenBeforeSuspending(bool should_lock);
75 // Updates the internal state that indicates whether user adding screen is
77 void SetUserAddingScreenRunning(bool user_adding_screen_running);
79 // Returns the number of calls to TransferWindowToDesktopOfUser.
80 int num_transfer_to_desktop_of_user_calls() {
81 return num_transfer_to_desktop_of_user_calls_;
85 // Whether a session is in progress and there is an active user.
86 bool has_active_user_;
88 // When a user becomes active, the profile and browser UI are not immediately
89 // available. Only once this flag becomes |true| is the browser startup
90 // complete and both profile and UI are fully available.
91 bool active_user_session_started_;
93 // Whether the screen can be locked. Locking will only actually be allowed
94 // when this is |true| and there is an active user.
95 bool can_lock_screen_;
97 // Return value for ShouldLockScreenBeforeSuspending().
98 bool should_lock_screen_before_suspending_;
100 // Whether the screen is currently locked.
103 // Whether user addding screen is running now.
104 bool user_adding_screen_running_;
106 // The number of users logged in.
107 int logged_in_users_;
109 // The activated user.
110 std::string activated_user_;
112 // A test user image.
113 gfx::ImageSkia null_image_;
115 // The number of calls which happened to TransferWindowToDesktopOfUser.
116 int num_transfer_to_desktop_of_user_calls_;
118 DISALLOW_COPY_AND_ASSIGN(TestSessionStateDelegate);
124 #endif // ASH_TEST_TEST_SESSION_STATE_DELEGATE_H_