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

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, 1 month 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
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 enable_lazy_service_initialization_(false),
Paweł Hajdan Jr. 2011/11/21 12:19:37 This new variable is not checked consistently in T
rpetterson 2011/11/21 22:59:30 I added it to all Get*Service methods which: - are
135 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { 136 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) {
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
(...skipping 15 matching lines...) Expand all
160 profile_path_ = temp_dir_.path(); 161 profile_path_ = temp_dir_.path();
161 162
162 Init(); 163 Init();
163 } 164 }
164 165
165 TestingProfile::TestingProfile(const FilePath& path) 166 TestingProfile::TestingProfile(const FilePath& path)
166 : start_time_(Time::Now()), 167 : start_time_(Time::Now()),
167 testing_prefs_(NULL), 168 testing_prefs_(NULL),
168 incognito_(false), 169 incognito_(false),
169 last_session_exited_cleanly_(true), 170 last_session_exited_cleanly_(true),
171 enable_lazy_service_initialization_(false),
170 profile_path_(path), 172 profile_path_(path),
171 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { 173 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) {
172 Init(); 174 Init();
173 } 175 }
174 176
177 TestingProfile::TestingProfile(const FilePath& path,
178 Delegate* delegate)
179 : start_time_(Time::Now()),
180 testing_prefs_(NULL),
181 incognito_(false),
182 last_session_exited_cleanly_(true),
183 enable_lazy_service_initialization_(false),
184 profile_path_(path),
185 profile_dependency_manager_(ProfileDependencyManager::GetInstance()),
186 delegate_(delegate) {
187 if (delegate_) {
188 profile_dependency_manager_->CreateProfileServices(this, true);
Paweł Hajdan Jr. 2011/11/21 12:19:37 Isn't this essentially identical to Init except th
rpetterson 2011/11/21 22:59:30 Done.
189
190 // Install profile keyed service factory hooks for dummy/test services
191 DesktopNotificationServiceFactory::GetInstance()->SetTestingFactory(
192 this, CreateTestDesktopNotificationService);
193
194 MessageLoop::current()->PostTask(FROM_HERE,
195 base::Bind(&TestingProfile::FinishInit,
196 base::Unretained(this)));
197 } else {
198 Init();
199 }
200 }
201
175 void TestingProfile::Init() { 202 void TestingProfile::Init() {
176 profile_dependency_manager_->CreateProfileServices(this, true); 203 profile_dependency_manager_->CreateProfileServices(this, true);
177 204
178 // Install profile keyed service factory hooks for dummy/test services 205 // Install profile keyed service factory hooks for dummy/test services
179 DesktopNotificationServiceFactory::GetInstance()->SetTestingFactory( 206 DesktopNotificationServiceFactory::GetInstance()->SetTestingFactory(
180 this, CreateTestDesktopNotificationService); 207 this, CreateTestDesktopNotificationService);
181 208
182 content::NotificationService::current()->Notify( 209 content::NotificationService::current()->Notify(
183 chrome::NOTIFICATION_PROFILE_CREATED, 210 chrome::NOTIFICATION_PROFILE_CREATED,
184 content::Source<Profile>(static_cast<Profile*>(this)), 211 content::Source<Profile>(static_cast<Profile*>(this)),
185 content::NotificationService::NoDetails()); 212 content::NotificationService::NoDetails());
186 } 213 }
187 214
215 void TestingProfile::FinishInit() {
216 NotificationService::current()->Notify(
217 chrome::NOTIFICATION_PROFILE_CREATED,
218 content::Source<Profile>(static_cast<Profile*>(this)),
219 NotificationService::NoDetails());
220
221 if (delegate_)
222 delegate_->OnProfileCreated(this, true);
223 }
224
188 TestingProfile::~TestingProfile() { 225 TestingProfile::~TestingProfile() {
189 content::NotificationService::current()->Notify( 226 content::NotificationService::current()->Notify(
190 chrome::NOTIFICATION_PROFILE_DESTROYED, 227 chrome::NOTIFICATION_PROFILE_DESTROYED,
191 content::Source<Profile>(static_cast<Profile*>(this)), 228 content::Source<Profile>(static_cast<Profile*>(this)),
192 content::NotificationService::NoDetails()); 229 content::NotificationService::NoDetails());
193 230
194 profile_dependency_manager_->DestroyProfileServices(this); 231 profile_dependency_manager_->DestroyProfileServices(this);
195 232
196 if (host_content_settings_map_) 233 if (host_content_settings_map_)
197 host_content_settings_map_->ShutdownOnUIThread(); 234 host_content_settings_map_->ShutdownOnUIThread();
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 if (!extension_special_storage_policy_.get()) 510 if (!extension_special_storage_policy_.get())
474 extension_special_storage_policy_ = new ExtensionSpecialStoragePolicy(NULL); 511 extension_special_storage_policy_ = new ExtensionSpecialStoragePolicy(NULL);
475 return extension_special_storage_policy_.get(); 512 return extension_special_storage_policy_.get();
476 } 513 }
477 514
478 SSLHostState* TestingProfile::GetSSLHostState() { 515 SSLHostState* TestingProfile::GetSSLHostState() {
479 return NULL; 516 return NULL;
480 } 517 }
481 518
482 FaviconService* TestingProfile::GetFaviconService(ServiceAccessType access) { 519 FaviconService* TestingProfile::GetFaviconService(ServiceAccessType access) {
520 if (enable_lazy_service_initialization_ && !favicon_service_.get())
521 CreateFaviconService();
483 return favicon_service_.get(); 522 return favicon_service_.get();
484 } 523 }
485 524
486 HistoryService* TestingProfile::GetHistoryService(ServiceAccessType access) { 525 HistoryService* TestingProfile::GetHistoryService(ServiceAccessType access) {
526 if (enable_lazy_service_initialization_ && !history_service_.get())
527 CreateHistoryService(true, false);
487 return history_service_.get(); 528 return history_service_.get();
488 } 529 }
489 530
490 HistoryService* TestingProfile::GetHistoryServiceWithoutCreating() { 531 HistoryService* TestingProfile::GetHistoryServiceWithoutCreating() {
491 return history_service_.get(); 532 return history_service_.get();
492 } 533 }
493 534
494 net::CookieMonster* TestingProfile::GetCookieMonster() { 535 net::CookieMonster* TestingProfile::GetCookieMonster() {
495 if (!GetRequestContext()) 536 if (!GetRequestContext())
496 return NULL; 537 return NULL;
497 return GetRequestContext()->GetURLRequestContext()->cookie_store()-> 538 return GetRequestContext()->GetURLRequestContext()->cookie_store()->
498 GetCookieMonster(); 539 GetCookieMonster();
499 } 540 }
500 541
501 AutocompleteClassifier* TestingProfile::GetAutocompleteClassifier() { 542 AutocompleteClassifier* TestingProfile::GetAutocompleteClassifier() {
502 return autocomplete_classifier_.get(); 543 return autocomplete_classifier_.get();
503 } 544 }
504 545
505 history::ShortcutsBackend* TestingProfile::GetShortcutsBackend() { 546 history::ShortcutsBackend* TestingProfile::GetShortcutsBackend() {
506 return NULL; 547 return NULL;
507 } 548 }
508 549
509 WebDataService* TestingProfile::GetWebDataService(ServiceAccessType access) { 550 WebDataService* TestingProfile::GetWebDataService(ServiceAccessType access) {
551 if (enable_lazy_service_initialization_ && !web_data_service_.get())
552 CreateWebDataService(false);
510 return web_data_service_.get(); 553 return web_data_service_.get();
511 } 554 }
512 555
513 WebDataService* TestingProfile::GetWebDataServiceWithoutCreating() { 556 WebDataService* TestingProfile::GetWebDataServiceWithoutCreating() {
514 return web_data_service_.get(); 557 return web_data_service_.get();
515 } 558 }
516 559
517 PasswordStore* TestingProfile::GetPasswordStore(ServiceAccessType access) { 560 PasswordStore* TestingProfile::GetPasswordStore(ServiceAccessType access) {
518 return NULL; 561 return NULL;
519 } 562 }
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 721
679 void TestingProfile::SetID(const std::wstring& id) { 722 void TestingProfile::SetID(const std::wstring& id) {
680 id_ = id; 723 id_ = id;
681 } 724 }
682 725
683 bool TestingProfile::DidLastSessionExitCleanly() { 726 bool TestingProfile::DidLastSessionExitCleanly() {
684 return last_session_exited_cleanly_; 727 return last_session_exited_cleanly_;
685 } 728 }
686 729
687 BookmarkModel* TestingProfile::GetBookmarkModel() { 730 BookmarkModel* TestingProfile::GetBookmarkModel() {
731 if (enable_lazy_service_initialization_ && !bookmark_bar_model_.get())
732 CreateBookmarkModel(true);
688 return bookmark_bar_model_.get(); 733 return bookmark_bar_model_.get();
689 } 734 }
690 735
691 bool TestingProfile::IsSameProfile(Profile *p) { 736 bool TestingProfile::IsSameProfile(Profile *p) {
692 return this == p; 737 return this == p;
693 } 738 }
694 739
695 base::Time TestingProfile::GetStartTime() const { 740 base::Time TestingProfile::GetStartTime() const {
696 return start_time_; 741 return start_time_;
697 } 742 }
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
809 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() { 854 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() {
810 return GetExtensionSpecialStoragePolicy(); 855 return GetExtensionSpecialStoragePolicy();
811 } 856 }
812 857
813 void TestingProfile::DestroyWebDataService() { 858 void TestingProfile::DestroyWebDataService() {
814 if (!web_data_service_.get()) 859 if (!web_data_service_.get())
815 return; 860 return;
816 861
817 web_data_service_->Shutdown(); 862 web_data_service_->Shutdown();
818 } 863 }
OLDNEW
« chrome/test/base/testing_profile.h ('K') | « chrome/test/base/testing_profile.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698