14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/browser/ui/app_list/test/fake_profile_store.h" 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/browser/profiles/profile.h" 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)FakeProfileStore::FakeProfileStore(const base::FilePath& user_data_dir) 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) : user_data_dir_(user_data_dir) { 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)FakeProfileStore::~FakeProfileStore() { 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeProfileStore::LoadProfile(Profile* profile) { 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loaded_profiles_[profile->GetPath()] = profile; 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) CallbacksByPath::iterator it = callbacks_.find(profile->GetPath()); 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (it != callbacks_.end()) { 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) it->second.Run(profile); 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) callbacks_.erase(it); 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeProfileStore::RemoveProfile(Profile* profile) { 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::FilePath path(profile->GetPath()); 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_, 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OnProfileWillBeRemoved(path)); 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) loaded_profiles_.erase(path); 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FOR_EACH_OBSERVER(ProfileInfoCacheObserver, observer_list_, 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OnProfileWasRemoved(path, base::string16())); 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeProfileStore::AddProfileObserver( 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ProfileInfoCacheObserver* observer) { 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) observer_list_.AddObserver(observer); 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void FakeProfileStore::LoadProfileAsync( 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const base::FilePath& path, 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::Callback<void(Profile*)> callback) { 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) Profile* profile = GetProfileByPath(path); 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (profile) { 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) callback.Run(profile); 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return; 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) callbacks_[path] = callback; 484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)Profile* FakeProfileStore::GetProfileByPath( 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const base::FilePath& path) { 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ProfilesByPath::const_iterator it = loaded_profiles_.find(path); 534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) if (it != loaded_profiles_.end()) 544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return it->second; 554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return NULL; 564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)base::FilePath FakeProfileStore::GetUserDataDir() { 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return user_data_dir_; 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)bool FakeProfileStore::IsProfileSupervised(const base::FilePath& path) { 634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return false; 644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 65