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