fake_profile_store.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 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#include "chrome/browser/ui/app_list/test/fake_profile_store.h"
6
7#include "chrome/browser/profiles/profile.h"
8
9FakeProfileStore::FakeProfileStore(const base::FilePath& user_data_dir)
10    : user_data_dir_(user_data_dir) {
11}
12
13FakeProfileStore::~FakeProfileStore() {
14}
15
16void FakeProfileStore::LoadProfile(Profile* profile) {
17  loaded_profiles_[profile->GetPath()] = profile;
18  CallbacksByPath::iterator it = callbacks_.find(profile->GetPath());
19  if (it != callbacks_.end()) {
20    it->second.Run(profile);
21    callbacks_.erase(it);
22  }
23}
24
25void FakeProfileStore::RemoveProfile(Profile* profile) {
26  base::FilePath path(profile->GetPath());
27  FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_,
28                    OnProfileWillBeRemoved(path));
29  loaded_profiles_.erase(path);
30  FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_,
31                    OnProfileWasRemoved(path, base::string16()));
32}
33
34void FakeProfileStore::AddProfileObserver(
35    ProfileInfoCacheObserver* observer) {
36  observer_list_.AddObserver(observer);
37}
38
39void FakeProfileStore::LoadProfileAsync(
40    const base::FilePath& path,
41    base::Callback<void(Profile*)> callback) {
42  Profile* profile = GetProfileByPath(path);
43  if (profile) {
44    callback.Run(profile);
45    return;
46  }
47  callbacks_[path] = callback;
48}
49
50Profile* FakeProfileStore::GetProfileByPath(
51    const base::FilePath& path) {
52  ProfilesByPath::const_iterator it = loaded_profiles_.find(path);
53  if (it != loaded_profiles_.end())
54    return it->second;
55  return NULL;
56}
57
58base::FilePath FakeProfileStore::GetUserDataDir() {
59  return user_data_dir_;
60}
61
62bool FakeProfileStore::IsProfileSupervised(const base::FilePath& path) {
63  return false;
64}
65