blob: eb16a0a6c3c7363f44c3280ff4d465e4d2e428aa [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// 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 <string>
#include "base/memory/raw_ptr.h"
#include "components/user_manager/user_manager_impl.h"
class AccountId;
class PrefService;
namespace user_manager {
// DEPRECATED: please use UserManagerImpl with TestHelper.
// 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 UserManagerImpl {
public:
explicit FakeUserManager(PrefService* local_state = nullptr);
FakeUserManager(const FakeUserManager&) = delete;
FakeUserManager& operator=(const FakeUserManager&) = delete;
~FakeUserManager() override;
// DEPRECATED: please use TestHelper::GetFakeUsernameHash.
static std::string GetFakeUsernameHash(const AccountId& account_id);
// UserManager overrides.
void UserLoggedIn(const AccountId& account_id,
const std::string& username_hash) override;
bool EnsureUser(const AccountId& account_id,
UserType user_type,
bool is_ephemeral) override;
void SwitchActiveUser(const AccountId& account_id) override;
// Just make it public for tests.
using UserManagerImpl::AddEphemeralUser;
using UserManagerImpl::AddGaiaUser;
using UserManagerImpl::AddGuestUser;
using UserManagerImpl::AddPublicAccountUser;
using UserManagerImpl::ResetOwnerId;
using UserManagerImpl::SetEphemeralModeConfig;
using UserManagerImpl::SetOwnerId;
};
} // namespace user_manager
#endif // COMPONENTS_USER_MANAGER_FAKE_USER_MANAGER_H_