| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/base_paths.h" | 7 #include "base/base_paths.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "chrome/browser/profiles/profile_manager.h" | 42 #include "chrome/browser/profiles/profile_manager.h" |
| 43 #include "chrome/browser/profiles/storage_partition_descriptor.h" | 43 #include "chrome/browser/profiles/storage_partition_descriptor.h" |
| 44 #include "chrome/browser/search_engines/template_url_fetcher_factory.h" | 44 #include "chrome/browser/search_engines/template_url_fetcher_factory.h" |
| 45 #include "chrome/browser/webdata/web_data_service_factory.h" | 45 #include "chrome/browser/webdata/web_data_service_factory.h" |
| 46 #include "chrome/common/chrome_constants.h" | 46 #include "chrome/common/chrome_constants.h" |
| 47 #include "chrome/common/chrome_switches.h" | 47 #include "chrome/common/chrome_switches.h" |
| 48 #include "chrome/common/pref_names.h" | 48 #include "chrome/common/pref_names.h" |
| 49 #include "chrome/common/url_constants.h" | 49 #include "chrome/common/url_constants.h" |
| 50 #include "chrome/test/base/history_index_restore_observer.h" | 50 #include "chrome/test/base/history_index_restore_observer.h" |
| 51 #include "chrome/test/base/testing_pref_service_syncable.h" | 51 #include "chrome/test/base/testing_pref_service_syncable.h" |
| 52 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" |
| 52 #include "components/bookmarks/browser/bookmark_model.h" | 53 #include "components/bookmarks/browser/bookmark_model.h" |
| 53 #include "components/bookmarks/common/bookmark_constants.h" | 54 #include "components/bookmarks/common/bookmark_constants.h" |
| 54 #include "components/content_settings/core/browser/host_content_settings_map.h" | 55 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 55 #include "components/history/core/browser/history_constants.h" | 56 #include "components/history/core/browser/history_constants.h" |
| 56 #include "components/history/core/browser/top_sites_observer.h" | 57 #include "components/history/core/browser/top_sites_observer.h" |
| 57 #include "components/keyed_service/content/browser_context_dependency_manager.h" | 58 #include "components/keyed_service/content/browser_context_dependency_manager.h" |
| 58 #include "components/policy/core/common/policy_service.h" | 59 #include "components/policy/core/common/policy_service.h" |
| 59 #include "components/user_prefs/user_prefs.h" | 60 #include "components/user_prefs/user_prefs.h" |
| 61 #include "components/webdata_services/web_data_service_wrapper.h" |
| 60 #include "content/public/browser/browser_thread.h" | 62 #include "content/public/browser/browser_thread.h" |
| 61 #include "content/public/browser/cookie_store_factory.h" | 63 #include "content/public/browser/cookie_store_factory.h" |
| 62 #include "content/public/browser/notification_service.h" | 64 #include "content/public/browser/notification_service.h" |
| 63 #include "content/public/browser/render_process_host.h" | 65 #include "content/public/browser/render_process_host.h" |
| 64 #include "content/public/browser/storage_partition.h" | 66 #include "content/public/browser/storage_partition.h" |
| 65 #include "content/public/test/mock_resource_context.h" | 67 #include "content/public/test/mock_resource_context.h" |
| 66 #include "content/public/test/test_utils.h" | 68 #include "content/public/test/test_utils.h" |
| 67 #include "extensions/common/constants.h" | 69 #include "extensions/common/constants.h" |
| 68 #include "net/cookies/cookie_monster.h" | 70 #include "net/cookies/cookie_monster.h" |
| 69 #include "net/url_request/url_request_context.h" | 71 #include "net/url_request/url_request_context.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 scoped_ptr<net::URLRequestContext> context_; | 179 scoped_ptr<net::URLRequestContext> context_; |
| 178 }; | 180 }; |
| 179 | 181 |
| 180 #if defined(ENABLE_NOTIFICATIONS) | 182 #if defined(ENABLE_NOTIFICATIONS) |
| 181 KeyedService* CreateTestDesktopNotificationService( | 183 KeyedService* CreateTestDesktopNotificationService( |
| 182 content::BrowserContext* profile) { | 184 content::BrowserContext* profile) { |
| 183 return new DesktopNotificationService(static_cast<Profile*>(profile)); | 185 return new DesktopNotificationService(static_cast<Profile*>(profile)); |
| 184 } | 186 } |
| 185 #endif | 187 #endif |
| 186 | 188 |
| 189 KeyedService* BuildFaviconService(content::BrowserContext* profile) { |
| 190 FaviconClient* favicon_client = |
| 191 ChromeFaviconClientFactory::GetForProfile(static_cast<Profile*>(profile)); |
| 192 return new FaviconService(static_cast<Profile*>(profile), favicon_client); |
| 193 } |
| 194 |
| 195 KeyedService* BuildHistoryService(content::BrowserContext* context) { |
| 196 Profile* profile = static_cast<Profile*>(context); |
| 197 HistoryService* history_service = new HistoryService( |
| 198 ChromeHistoryClientFactory::GetForProfile(profile), profile); |
| 199 return history_service; |
| 200 } |
| 201 |
| 202 KeyedService* BuildBookmarkModel(content::BrowserContext* context) { |
| 203 Profile* profile = static_cast<Profile*>(context); |
| 204 ChromeBookmarkClient* bookmark_client = |
| 205 ChromeBookmarkClientFactory::GetForProfile(profile); |
| 206 BookmarkModel* bookmark_model = new BookmarkModel(bookmark_client); |
| 207 bookmark_client->Init(bookmark_model); |
| 208 bookmark_model->Load(profile->GetPrefs(), |
| 209 profile->GetPrefs()->GetString(prefs::kAcceptLanguages), |
| 210 profile->GetPath(), |
| 211 profile->GetIOTaskRunner(), |
| 212 content::BrowserThread::GetMessageLoopProxyForThread( |
| 213 content::BrowserThread::UI)); |
| 214 return bookmark_model; |
| 215 } |
| 216 |
| 217 KeyedService* BuildChromeBookmarkClient( |
| 218 content::BrowserContext* context) { |
| 219 return new ChromeBookmarkClient(static_cast<Profile*>(context)); |
| 220 } |
| 221 |
| 222 KeyedService* BuildChromeHistoryClient( |
| 223 content::BrowserContext* context) { |
| 224 Profile* profile = static_cast<Profile*>(context); |
| 225 return new ChromeHistoryClient(BookmarkModelFactory::GetForProfile(profile), |
| 226 profile, |
| 227 profile->GetTopSites()); |
| 228 } |
| 229 |
| 230 void TestProfileErrorCallback(WebDataServiceWrapper::ErrorType error_type, |
| 231 sql::InitStatus status) { |
| 232 NOTREACHED(); |
| 233 } |
| 234 |
| 235 KeyedService* BuildWebDataService(content::BrowserContext* profile) { |
| 236 WebDataServiceWrapper* web_data_service_wrapper = new WebDataServiceWrapper( |
| 237 static_cast<Profile*>(profile)->GetPath(), |
| 238 g_browser_process->GetApplicationLocale(), |
| 239 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 240 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
| 241 &TestProfileErrorCallback); |
| 242 web_data_service_wrapper->GetAutofillWebData()->GetAutofillBackend( |
| 243 base::Bind(&InitSyncableServicesOnDBThread, |
| 244 web_data_service_wrapper->GetAutofillWebData(), |
| 245 static_cast<Profile*>(profile)->GetPath(), |
| 246 g_browser_process->GetApplicationLocale())); |
| 247 return web_data_service_wrapper; |
| 248 } |
| 249 |
| 187 } // namespace | 250 } // namespace |
| 188 | 251 |
| 189 // static | 252 // static |
| 190 #if defined(OS_CHROMEOS) | 253 #if defined(OS_CHROMEOS) |
| 191 // Must be kept in sync with | 254 // Must be kept in sync with |
| 192 // ChromeBrowserMainPartsChromeos::PreEarlyInitialization. | 255 // ChromeBrowserMainPartsChromeos::PreEarlyInitialization. |
| 193 const char TestingProfile::kTestUserProfileDir[] = "test-user"; | 256 const char TestingProfile::kTestUserProfileDir[] = "test-user"; |
| 194 #else | 257 #else |
| 195 const char TestingProfile::kTestUserProfileDir[] = "Default"; | 258 const char TestingProfile::kTestUserProfileDir[] = "Default"; |
| 196 #endif | 259 #endif |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 // Failing a post == leaks == heapcheck failure. Make that an immediate test | 509 // Failing a post == leaks == heapcheck failure. Make that an immediate test |
| 447 // failure. | 510 // failure. |
| 448 if (resource_context_) { | 511 if (resource_context_) { |
| 449 CHECK(BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, | 512 CHECK(BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, |
| 450 resource_context_)); | 513 resource_context_)); |
| 451 resource_context_ = NULL; | 514 resource_context_ = NULL; |
| 452 content::RunAllPendingInMessageLoop(BrowserThread::IO); | 515 content::RunAllPendingInMessageLoop(BrowserThread::IO); |
| 453 } | 516 } |
| 454 } | 517 } |
| 455 | 518 |
| 456 static KeyedService* BuildFaviconService(content::BrowserContext* profile) { | |
| 457 FaviconClient* favicon_client = | |
| 458 ChromeFaviconClientFactory::GetForProfile(static_cast<Profile*>(profile)); | |
| 459 return new FaviconService(static_cast<Profile*>(profile), favicon_client); | |
| 460 } | |
| 461 | |
| 462 void TestingProfile::CreateFaviconService() { | 519 void TestingProfile::CreateFaviconService() { |
| 463 // It is up to the caller to create the history service if one is needed. | 520 // It is up to the caller to create the history service if one is needed. |
| 464 FaviconServiceFactory::GetInstance()->SetTestingFactory( | 521 FaviconServiceFactory::GetInstance()->SetTestingFactory( |
| 465 this, BuildFaviconService); | 522 this, BuildFaviconService); |
| 466 } | 523 } |
| 467 | 524 |
| 468 static KeyedService* BuildHistoryService(content::BrowserContext* context) { | |
| 469 Profile* profile = static_cast<Profile*>(context); | |
| 470 HistoryService* history_service = new HistoryService( | |
| 471 ChromeHistoryClientFactory::GetForProfile(profile), profile); | |
| 472 return history_service; | |
| 473 } | |
| 474 | |
| 475 bool TestingProfile::CreateHistoryService(bool delete_file, bool no_db) { | 525 bool TestingProfile::CreateHistoryService(bool delete_file, bool no_db) { |
| 476 DestroyHistoryService(); | 526 DestroyHistoryService(); |
| 477 if (delete_file) { | 527 if (delete_file) { |
| 478 base::FilePath path = GetPath(); | 528 base::FilePath path = GetPath(); |
| 479 path = path.Append(history::kHistoryFilename); | 529 path = path.Append(history::kHistoryFilename); |
| 480 if (!base::DeleteFile(path, false) || base::PathExists(path)) | 530 if (!base::DeleteFile(path, false) || base::PathExists(path)) |
| 481 return false; | 531 return false; |
| 482 } | 532 } |
| 483 // This will create and init the history service. | 533 // This will create and init the history service. |
| 484 HistoryService* history_service = static_cast<HistoryService*>( | 534 HistoryService* history_service = static_cast<HistoryService*>( |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 top_sites_->Shutdown(); | 589 top_sites_->Shutdown(); |
| 540 top_sites_ = NULL; | 590 top_sites_ = NULL; |
| 541 // TopSitesImpl::Shutdown schedules some tasks (from TopSitesBackend) that | 591 // TopSitesImpl::Shutdown schedules some tasks (from TopSitesBackend) that |
| 542 // need to be run to properly shutdown. Run all pending tasks now. This is | 592 // need to be run to properly shutdown. Run all pending tasks now. This is |
| 543 // normally handled by browser_process shutdown. | 593 // normally handled by browser_process shutdown. |
| 544 if (base::MessageLoop::current()) | 594 if (base::MessageLoop::current()) |
| 545 base::MessageLoop::current()->RunUntilIdle(); | 595 base::MessageLoop::current()->RunUntilIdle(); |
| 546 } | 596 } |
| 547 } | 597 } |
| 548 | 598 |
| 549 static KeyedService* BuildBookmarkModel(content::BrowserContext* context) { | |
| 550 Profile* profile = static_cast<Profile*>(context); | |
| 551 ChromeBookmarkClient* bookmark_client = | |
| 552 ChromeBookmarkClientFactory::GetForProfile(profile); | |
| 553 BookmarkModel* bookmark_model = new BookmarkModel(bookmark_client); | |
| 554 bookmark_client->Init(bookmark_model); | |
| 555 bookmark_model->Load(profile->GetPrefs(), | |
| 556 profile->GetPrefs()->GetString(prefs::kAcceptLanguages), | |
| 557 profile->GetPath(), | |
| 558 profile->GetIOTaskRunner(), | |
| 559 content::BrowserThread::GetMessageLoopProxyForThread( | |
| 560 content::BrowserThread::UI)); | |
| 561 return bookmark_model; | |
| 562 } | |
| 563 | |
| 564 static KeyedService* BuildChromeBookmarkClient( | |
| 565 content::BrowserContext* context) { | |
| 566 return new ChromeBookmarkClient(static_cast<Profile*>(context)); | |
| 567 } | |
| 568 | |
| 569 static KeyedService* BuildChromeHistoryClient( | |
| 570 content::BrowserContext* context) { | |
| 571 Profile* profile = static_cast<Profile*>(context); | |
| 572 return new ChromeHistoryClient(BookmarkModelFactory::GetForProfile(profile), | |
| 573 profile, | |
| 574 profile->GetTopSites()); | |
| 575 } | |
| 576 | |
| 577 void TestingProfile::CreateBookmarkModel(bool delete_file) { | 599 void TestingProfile::CreateBookmarkModel(bool delete_file) { |
| 578 if (delete_file) { | 600 if (delete_file) { |
| 579 base::FilePath path = GetPath().Append(bookmarks::kBookmarksFileName); | 601 base::FilePath path = GetPath().Append(bookmarks::kBookmarksFileName); |
| 580 base::DeleteFile(path, false); | 602 base::DeleteFile(path, false); |
| 581 } | 603 } |
| 582 ChromeHistoryClientFactory::GetInstance()->SetTestingFactory( | 604 ChromeHistoryClientFactory::GetInstance()->SetTestingFactory( |
| 583 this, BuildChromeHistoryClient); | 605 this, BuildChromeHistoryClient); |
| 584 ChromeBookmarkClientFactory::GetInstance()->SetTestingFactory( | 606 ChromeBookmarkClientFactory::GetInstance()->SetTestingFactory( |
| 585 this, BuildChromeBookmarkClient); | 607 this, BuildChromeBookmarkClient); |
| 586 // This creates the BookmarkModel. | 608 // This creates the BookmarkModel. |
| 587 ignore_result(BookmarkModelFactory::GetInstance()->SetTestingFactoryAndUse( | 609 ignore_result(BookmarkModelFactory::GetInstance()->SetTestingFactoryAndUse( |
| 588 this, BuildBookmarkModel)); | 610 this, BuildBookmarkModel)); |
| 589 } | 611 } |
| 590 | 612 |
| 591 static KeyedService* BuildWebDataService(content::BrowserContext* profile) { | |
| 592 return new WebDataServiceWrapper(static_cast<Profile*>(profile)); | |
| 593 } | |
| 594 | |
| 595 void TestingProfile::CreateWebDataService() { | 613 void TestingProfile::CreateWebDataService() { |
| 596 WebDataServiceFactory::GetInstance()->SetTestingFactory( | 614 WebDataServiceFactory::GetInstance()->SetTestingFactory( |
| 597 this, BuildWebDataService); | 615 this, BuildWebDataService); |
| 598 } | 616 } |
| 599 | 617 |
| 600 void TestingProfile::BlockUntilHistoryIndexIsRefreshed() { | 618 void TestingProfile::BlockUntilHistoryIndexIsRefreshed() { |
| 601 // Only get the history service if it actually exists since the caller of the | 619 // Only get the history service if it actually exists since the caller of the |
| 602 // test should explicitly call CreateHistoryService to build it. | 620 // test should explicitly call CreateHistoryService to build it. |
| 603 HistoryService* history_service = | 621 HistoryService* history_service = |
| 604 HistoryServiceFactory::GetForProfileWithoutCreating(this); | 622 HistoryServiceFactory::GetForProfileWithoutCreating(this); |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1050 #if defined(ENABLE_EXTENSIONS) | 1068 #if defined(ENABLE_EXTENSIONS) |
| 1051 extension_policy_, | 1069 extension_policy_, |
| 1052 #endif | 1070 #endif |
| 1053 pref_service_.Pass(), | 1071 pref_service_.Pass(), |
| 1054 original_profile, | 1072 original_profile, |
| 1055 guest_session_, | 1073 guest_session_, |
| 1056 supervised_user_id_, | 1074 supervised_user_id_, |
| 1057 policy_service_.Pass(), | 1075 policy_service_.Pass(), |
| 1058 testing_factories_); | 1076 testing_factories_); |
| 1059 } | 1077 } |
| OLD | NEW |