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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
// Copyright 2014 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.
#ifndef COMPONENTS_USER_MANAGER_FAKE_USER_MANAGER_H_
#define COMPONENTS_USER_MANAGER_FAKE_USER_MANAGER_H_
#include <map>
#include <string>
#include "base/macros.h"
#include "components/signin/core/account_id/account_id.h"
#include "components/user_manager/user.h"
#include "components/user_manager/user_manager_base.h"
namespace user_manager {
// Fake user manager with a barebones implementation. Users can be added
// and set as logged in, and those users can be returned.
class USER_MANAGER_EXPORT FakeUserManager : public UserManagerBase {
public:
FakeUserManager();
~FakeUserManager() override;
// Create and add a new user. Created user is not affiliated with the domain,
// that owns the device.
virtual const user_manager::User* AddUser(const AccountId& account_id);
// The same as AddUser() but allows to specify user affiliation with the
// domain, that owns the device.
virtual const user_manager::User* AddUserWithAffiliation(
const AccountId& account_id,
bool is_affiliated);
// Calculates the user name hash and calls UserLoggedIn to login a user.
void LoginUser(const AccountId& account_id);
// UserManager overrides.
const user_manager::UserList& GetUsers() const override;
user_manager::UserList GetUsersAllowedForMultiProfile() const override;
const user_manager::UserList& GetLoggedInUsers() const override;
// Set the user as logged in.
void UserLoggedIn(const AccountId& account_id,
const std::string& username_hash,
bool browser_restart) override;
const user_manager::User* GetActiveUser() const override;
user_manager::User* GetActiveUser() override;
void SwitchActiveUser(const AccountId& account_id) override;
void SaveUserDisplayName(const AccountId& account_id,
const base::string16& display_name) override;
const AccountId& GetGuestAccountId() const override;
bool IsFirstExecAfterBoot() const override;
bool IsGuestAccountId(const AccountId& account_id) const override;
bool IsStubAccountId(const AccountId& account_id) const override;
bool HasBrowserRestarted() const override;
// Not implemented.
void UpdateUserAccountData(const AccountId& account_id,
const UserAccountData& account_data) override {}
void Shutdown() override {}
const user_manager::UserList& GetLRULoggedInUsers() const override;
user_manager::UserList GetUnlockUsers() const override;
const AccountId& GetOwnerAccountId() const override;
void OnSessionStarted() override {}
void RemoveUser(const AccountId& account_id,
user_manager::RemoveUserDelegate* delegate) override {}
void RemoveUserFromList(const AccountId& account_id) override;
bool IsKnownUser(const AccountId& account_id) const override;
const user_manager::User* FindUser(
const AccountId& account_id) const override;
user_manager::User* FindUserAndModify(const AccountId& account_id) override;
const user_manager::User* GetPrimaryUser() const override;
void SaveUserOAuthStatus(
const AccountId& account_id,
user_manager::User::OAuthTokenStatus oauth_token_status) override {}
void SaveForceOnlineSignin(const AccountId& account_id,
bool force_online_signin) override {}
base::string16 GetUserDisplayName(const AccountId& account_id) const override;
void SaveUserDisplayEmail(const AccountId& account_id,
const std::string& display_email) override {}
std::string GetUserDisplayEmail(const AccountId& account_id) const override;
bool IsCurrentUserOwner() const override;
bool IsCurrentUserNew() const override;
bool IsCurrentUserNonCryptohomeDataEphemeral() const override;
bool CanCurrentUserLock() const override;
bool IsUserLoggedIn() const override;
bool IsLoggedInAsUserWithGaiaAccount() const override;
bool IsLoggedInAsPublicAccount() const override;
bool IsLoggedInAsGuest() const override;
bool IsLoggedInAsSupervisedUser() const override;
bool IsLoggedInAsKioskApp() const override;
bool IsLoggedInAsArcKioskApp() const override;
bool IsLoggedInAsStub() const override;
bool IsUserNonCryptohomeDataEphemeral(
const AccountId& account_id) const override;
void AddObserver(Observer* obs) override {}
void RemoveObserver(Observer* obs) override {}
void AddSessionStateObserver(UserSessionStateObserver* obs) override {}
void RemoveSessionStateObserver(UserSessionStateObserver* obs) override {}
void NotifyLocalStateChanged() override {}
bool AreSupervisedUsersAllowed() const override;
void UpdateLoginState(const user_manager::User* active_user,
const user_manager::User* primary_user,
bool is_current_user_owner) const override;
bool GetPlatformKnownUserId(const std::string& user_email,
const std::string& gaia_id,
AccountId* out_account_id) const override;
void AsyncRemoveCryptohome(const AccountId& account_id) const override;
bool IsSupervisedAccountId(const AccountId& account_id) const override;
const gfx::ImageSkia& GetResourceImagekiaNamed(int id) const override;
base::string16 GetResourceStringUTF16(int string_id) const override;
void ScheduleResolveLocale(const std::string& locale,
const base::Closure& on_resolved_callback,
std::string* out_resolved_locale) const override;
bool IsValidDefaultUserImageId(int image_index) const override;
// UserManagerBase overrides:
bool AreEphemeralUsersEnabled() const override;
const std::string& GetApplicationLocale() const override;
PrefService* GetLocalState() const override;
void HandleUserOAuthTokenStatusChange(
const AccountId& account_id,
user_manager::User::OAuthTokenStatus status) const override {}
bool IsEnterpriseManaged() const override;
void LoadDeviceLocalAccounts(
std::set<AccountId>* device_local_accounts_set) override {}
void PerformPreUserListLoadingActions() override {}
void PerformPostUserListLoadingActions() override {}
void PerformPostUserLoggedInActions(bool browser_restart) override {}
bool IsDemoApp(const AccountId& account_id) const override;
bool IsDeviceLocalAccountMarkedForRemoval(
const AccountId& account_id) const override;
void DemoAccountLoggedIn() override {}
void KioskAppLoggedIn(user_manager::User* user) override {}
void ArcKioskAppLoggedIn(user_manager::User* user) override {}
void PublicAccountUserLoggedIn(user_manager::User* user) override {}
void SupervisedUserLoggedIn(const AccountId& account_id) override {}
void OnUserRemoved(const AccountId& account_id) override {}
protected:
user_manager::User* primary_user_;
// If set this is the active user. If empty, the first created user is the
// active user.
AccountId active_account_id_ = EmptyAccountId();
private:
// We use this internal function for const-correctness.
user_manager::User* GetActiveUserInternal() const;
// stub, always empty.
AccountId owner_account_id_ = EmptyAccountId();
// stub. Always empty.
gfx::ImageSkia empty_image_;
DISALLOW_COPY_AND_ASSIGN(FakeUserManager);
};
} // namespace user_manager
#endif // COMPONENTS_USER_MANAGER_FAKE_USER_MANAGER_H_
|