Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: chrome/test/base/testing_profile.cc

Issue 8565032: Fixing ProfileManagerTest to use the TestingProfile instead of a real profile. This will allow ea... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/base/testing_profile.h ('k') | chrome/test/base/testing_profile_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/base/testing_profile.h" 5 #include "chrome/test/base/testing_profile.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 return new DesktopNotificationService(profile, NULL); 125 return new DesktopNotificationService(profile, NULL);
126 } 126 }
127 127
128 } // namespace 128 } // namespace
129 129
130 TestingProfile::TestingProfile() 130 TestingProfile::TestingProfile()
131 : start_time_(Time::Now()), 131 : start_time_(Time::Now()),
132 testing_prefs_(NULL), 132 testing_prefs_(NULL),
133 incognito_(false), 133 incognito_(false),
134 last_session_exited_cleanly_(true), 134 last_session_exited_cleanly_(true),
135 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { 135 profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
136 delegate_(NULL) {
136 if (!temp_dir_.CreateUniqueTempDir()) { 137 if (!temp_dir_.CreateUniqueTempDir()) {
137 LOG(ERROR) << "Failed to create unique temporary directory."; 138 LOG(ERROR) << "Failed to create unique temporary directory.";
138 139
139 // Fallback logic in case we fail to create unique temporary directory. 140 // Fallback logic in case we fail to create unique temporary directory.
140 FilePath system_tmp_dir; 141 FilePath system_tmp_dir;
141 bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir); 142 bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir);
142 143
143 // We're severly screwed if we can't get the system temporary 144 // We're severly screwed if we can't get the system temporary
144 // directory. Die now to avoid writing to the filesystem root 145 // directory. Die now to avoid writing to the filesystem root
145 // or other bad places. 146 // or other bad places.
146 CHECK(success); 147 CHECK(success);
147 148
148 FilePath fallback_dir(system_tmp_dir.AppendASCII("TestingProfilePath")); 149 FilePath fallback_dir(system_tmp_dir.AppendASCII("TestingProfilePath"));
149 file_util::Delete(fallback_dir, true); 150 file_util::Delete(fallback_dir, true);
150 file_util::CreateDirectory(fallback_dir); 151 file_util::CreateDirectory(fallback_dir);
151 if (!temp_dir_.Set(fallback_dir)) { 152 if (!temp_dir_.Set(fallback_dir)) {
152 // That shouldn't happen, but if it does, try to recover. 153 // That shouldn't happen, but if it does, try to recover.
153 LOG(ERROR) << "Failed to use a fallback temporary directory."; 154 LOG(ERROR) << "Failed to use a fallback temporary directory.";
154 155
155 // We're screwed if this fails, see CHECK above. 156 // We're screwed if this fails, see CHECK above.
156 CHECK(temp_dir_.Set(system_tmp_dir)); 157 CHECK(temp_dir_.Set(system_tmp_dir));
157 } 158 }
158 } 159 }
159 160
160 profile_path_ = temp_dir_.path(); 161 profile_path_ = temp_dir_.path();
161 162
162 Init(); 163 Init();
164 FinishInit();
163 } 165 }
164 166
165 TestingProfile::TestingProfile(const FilePath& path) 167 TestingProfile::TestingProfile(const FilePath& path)
166 : start_time_(Time::Now()), 168 : start_time_(Time::Now()),
167 testing_prefs_(NULL), 169 testing_prefs_(NULL),
168 incognito_(false), 170 incognito_(false),
169 last_session_exited_cleanly_(true), 171 last_session_exited_cleanly_(true),
170 profile_path_(path), 172 profile_path_(path),
171 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { 173 profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
174 delegate_(NULL) {
172 Init(); 175 Init();
176 FinishInit();
177 }
178
179 TestingProfile::TestingProfile(const FilePath& path,
180 Delegate* delegate)
181 : start_time_(Time::Now()),
182 testing_prefs_(NULL),
183 incognito_(false),
184 last_session_exited_cleanly_(true),
185 profile_path_(path),
186 profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
187 delegate_(delegate) {
188 Init();
189 if (delegate_) {
190 MessageLoop::current()->PostTask(FROM_HERE,
191 base::Bind(&TestingProfile::FinishInit,
192 base::Unretained(this)));
193 } else {
194 FinishInit();
195 }
173 } 196 }
174 197
175 void TestingProfile::Init() { 198 void TestingProfile::Init() {
176 profile_dependency_manager_->CreateProfileServices(this, true); 199 profile_dependency_manager_->CreateProfileServices(this, true);
177 200
178 // Install profile keyed service factory hooks for dummy/test services 201 // Install profile keyed service factory hooks for dummy/test services
179 DesktopNotificationServiceFactory::GetInstance()->SetTestingFactory( 202 DesktopNotificationServiceFactory::GetInstance()->SetTestingFactory(
180 this, CreateTestDesktopNotificationService); 203 this, CreateTestDesktopNotificationService);
204 }
181 205
206 void TestingProfile::FinishInit() {
182 content::NotificationService::current()->Notify( 207 content::NotificationService::current()->Notify(
183 chrome::NOTIFICATION_PROFILE_CREATED, 208 chrome::NOTIFICATION_PROFILE_CREATED,
184 content::Source<Profile>(static_cast<Profile*>(this)), 209 content::Source<Profile>(static_cast<Profile*>(this)),
185 content::NotificationService::NoDetails()); 210 content::NotificationService::NoDetails());
211
212 if (delegate_)
213 delegate_->OnProfileCreated(this, true);
186 } 214 }
187 215
188 TestingProfile::~TestingProfile() { 216 TestingProfile::~TestingProfile() {
189 content::NotificationService::current()->Notify( 217 content::NotificationService::current()->Notify(
190 chrome::NOTIFICATION_PROFILE_DESTROYED, 218 chrome::NOTIFICATION_PROFILE_DESTROYED,
191 content::Source<Profile>(static_cast<Profile*>(this)), 219 content::Source<Profile>(static_cast<Profile*>(this)),
192 content::NotificationService::NoDetails()); 220 content::NotificationService::NoDetails());
193 221
194 profile_dependency_manager_->DestroyProfileServices(this); 222 profile_dependency_manager_->DestroyProfileServices(this);
195 223
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() { 850 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() {
823 return GetExtensionSpecialStoragePolicy(); 851 return GetExtensionSpecialStoragePolicy();
824 } 852 }
825 853
826 void TestingProfile::DestroyWebDataService() { 854 void TestingProfile::DestroyWebDataService() {
827 if (!web_data_service_.get()) 855 if (!web_data_service_.get())
828 return; 856 return;
829 857
830 web_data_service_->Shutdown(); 858 web_data_service_->Shutdown();
831 } 859 }
OLDNEW
« no previous file with comments | « chrome/test/base/testing_profile.h ('k') | chrome/test/base/testing_profile_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698