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