blob: 85e46e189f822d795c56b916556a3043572dbcaa [file] [log] [blame]
// Copyright 2013 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.
#include "chrome/browser/ui/app_list/test/fake_profile_store.h"
#include "chrome/browser/profiles/profile.h"
FakeProfileStore::FakeProfileStore(const base::FilePath& user_data_dir)
: user_data_dir_(user_data_dir) {
}
FakeProfileStore::~FakeProfileStore() {
}
void FakeProfileStore::LoadProfile(Profile* profile) {
loaded_profiles_[profile->GetPath()] = profile;
CallbacksByPath::iterator it = callbacks_.find(profile->GetPath());
if (it != callbacks_.end()) {
it->second.Run(profile);
callbacks_.erase(it);
}
}
void FakeProfileStore::RemoveProfile(Profile* profile) {
base::FilePath path(profile->GetPath());
FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_,
OnProfileWillBeRemoved(path));
loaded_profiles_.erase(path);
FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_,
OnProfileWasRemoved(path, base::string16()));
}
void FakeProfileStore::AddProfileObserver(
ProfileInfoCacheObserver* observer) {
observer_list_.AddObserver(observer);
}
void FakeProfileStore::LoadProfileAsync(
const base::FilePath& path,
base::Callback<void(Profile*)> callback) {
Profile* profile = GetProfileByPath(path);
if (profile) {
callback.Run(profile);
return;
}
callbacks_[path] = callback;
}
Profile* FakeProfileStore::GetProfileByPath(
const base::FilePath& path) {
ProfilesByPath::const_iterator it = loaded_profiles_.find(path);
if (it != loaded_profiles_.end())
return it->second;
return NULL;
}
base::FilePath FakeProfileStore::GetUserDataDir() {
return user_data_dir_;
}
bool FakeProfileStore::IsProfileManaged(const base::FilePath& path) {
return false;
}