OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/browser/extensions/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 } | 471 } |
472 data_dir_ = test_data_dir.AppendASCII("extensions"); | 472 data_dir_ = test_data_dir.AppendASCII("extensions"); |
473 } | 473 } |
474 | 474 |
475 ExtensionServiceTestBase::~ExtensionServiceTestBase() { | 475 ExtensionServiceTestBase::~ExtensionServiceTestBase() { |
476 service_ = NULL; | 476 service_ = NULL; |
477 } | 477 } |
478 | 478 |
479 void ExtensionServiceTestBase::InitializeExtensionService( | 479 void ExtensionServiceTestBase::InitializeExtensionService( |
480 const ExtensionServiceTestBase::ExtensionServiceInitParams& params) { | 480 const ExtensionServiceTestBase::ExtensionServiceInitParams& params) { |
| 481 profile_ = CreateTestingProfile(params); |
| 482 service_ = InitializeExtensionServiceForProfile(params, profile_.get()); |
| 483 management_policy_ = |
| 484 ExtensionSystem::Get(profile_.get())->management_policy(); |
| 485 extensions_install_dir_ = params.extensions_install_dir; |
| 486 expected_extensions_count_ = 0; |
| 487 } |
| 488 |
| 489 // static |
| 490 scoped_ptr<TestingProfile> ExtensionServiceTestBase::CreateTestingProfile( |
| 491 const ExtensionServiceInitParams& params) { |
481 TestingProfile::Builder profile_builder; | 492 TestingProfile::Builder profile_builder; |
482 // Create a PrefService that only contains user defined preference values. | 493 // Create a PrefService that only contains user defined preference values. |
483 PrefServiceMockFactory factory; | 494 PrefServiceMockFactory factory; |
484 // If pref_file is empty, TestingProfile automatically creates | 495 // If pref_file is empty, TestingProfile automatically creates |
485 // TestingPrefServiceSyncable instance. | 496 // TestingPrefServiceSyncable instance. |
486 if (!params.pref_file.empty()) { | 497 if (!params.pref_file.empty()) { |
487 factory.SetUserPrefsFile(params.pref_file, | 498 factory.SetUserPrefsFile(params.pref_file, |
488 base::MessageLoopProxy::current().get()); | 499 base::MessageLoopProxy::current().get()); |
489 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 500 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
490 new user_prefs::PrefRegistrySyncable); | 501 new user_prefs::PrefRegistrySyncable); |
491 scoped_ptr<PrefServiceSyncable> prefs( | 502 scoped_ptr<PrefServiceSyncable> prefs( |
492 factory.CreateSyncable(registry.get())); | 503 factory.CreateSyncable(registry.get())); |
493 chrome::RegisterUserProfilePrefs(registry.get()); | 504 chrome::RegisterUserProfilePrefs(registry.get()); |
494 profile_builder.SetPrefService(prefs.Pass()); | 505 profile_builder.SetPrefService(prefs.Pass()); |
495 } | 506 } |
496 | 507 |
497 if (params.profile_is_managed) | 508 if (params.profile_is_managed) |
498 profile_builder.SetManagedUserId("asdf"); | 509 profile_builder.SetManagedUserId("asdf"); |
499 | 510 |
500 profile_builder.SetPath(params.profile_path); | 511 profile_builder.SetPath(params.profile_path); |
501 profile_ = profile_builder.Build(); | 512 return profile_builder.Build(); |
| 513 } |
502 | 514 |
| 515 // static |
| 516 ExtensionService* |
| 517 ExtensionServiceTestBase::InitializeExtensionServiceForProfile( |
| 518 const ExtensionServiceInitParams& params, |
| 519 Profile* profile) { |
503 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( | 520 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( |
504 ExtensionSystem::Get(profile_.get())); | 521 ExtensionSystem::Get(profile)); |
505 if (!params.is_first_run) { | 522 if (!params.is_first_run) { |
506 ExtensionPrefs* prefs = system->CreateExtensionPrefs( | 523 ExtensionPrefs* prefs = system->CreateExtensionPrefs( |
507 CommandLine::ForCurrentProcess(), | 524 CommandLine::ForCurrentProcess(), |
508 params.extensions_install_dir); | 525 params.extensions_install_dir); |
509 prefs->SetAlertSystemFirstRun(); | 526 prefs->SetAlertSystemFirstRun(); |
510 } | 527 } |
511 | 528 |
512 service_ = system->CreateExtensionService( | 529 ExtensionService* service = system->CreateExtensionService( |
513 CommandLine::ForCurrentProcess(), | 530 CommandLine::ForCurrentProcess(), |
514 params.extensions_install_dir, | 531 params.extensions_install_dir, |
515 params.autoupdate_enabled); | 532 params.autoupdate_enabled); |
516 | 533 |
517 service_->SetFileTaskRunnerForTesting( | 534 service->SetFileTaskRunnerForTesting( |
518 base::MessageLoopProxy::current().get()); | 535 base::MessageLoopProxy::current().get()); |
519 service_->set_extensions_enabled(true); | 536 service->set_extensions_enabled(true); |
520 service_->set_show_extensions_prompts(false); | 537 service->set_show_extensions_prompts(false); |
521 service_->set_install_updates_when_idle_for_test(false); | 538 service->set_install_updates_when_idle_for_test(false); |
522 | |
523 management_policy_ = | |
524 ExtensionSystem::Get(profile_.get())->management_policy(); | |
525 | |
526 extensions_install_dir_ = params.extensions_install_dir; | |
527 | 539 |
528 // When we start up, we want to make sure there is no external provider, | 540 // When we start up, we want to make sure there is no external provider, |
529 // since the ExtensionService on Windows will use the Registry as a default | 541 // since the ExtensionService on Windows will use the Registry as a default |
530 // provider and if there is something already registered there then it will | 542 // provider and if there is something already registered there then it will |
531 // interfere with the tests. Those tests that need an external provider | 543 // interfere with the tests. Those tests that need an external provider |
532 // will register one specifically. | 544 // will register one specifically. |
533 service_->ClearProvidersForTesting(); | 545 service->ClearProvidersForTesting(); |
534 | 546 |
535 #if defined(OS_CHROMEOS) | 547 #if defined(OS_CHROMEOS) |
536 extensions::InstallLimiter::Get(profile_.get())->DisableForTest(); | 548 extensions::InstallLimiter::Get(profile)->DisableForTest(); |
537 #endif | 549 #endif |
538 | 550 return service; |
539 expected_extensions_count_ = 0; | |
540 } | 551 } |
541 | 552 |
542 void ExtensionServiceTestBase::InitializeInstalledExtensionService( | 553 void ExtensionServiceTestBase::InitializeInstalledExtensionService( |
543 const base::FilePath& prefs_file, | 554 const base::FilePath& prefs_file, |
544 const base::FilePath& source_install_dir) { | 555 const base::FilePath& source_install_dir) { |
545 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); | 556 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); |
546 base::FilePath path = temp_dir_.path(); | 557 base::FilePath path = temp_dir_.path(); |
547 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); | 558 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
548 EXPECT_TRUE(base::DeleteFile(path, true)); | 559 EXPECT_TRUE(base::DeleteFile(path, true)); |
549 base::PlatformFileError error = base::PLATFORM_FILE_OK; | 560 base::PlatformFileError error = base::PLATFORM_FILE_OK; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
605 ExtensionErrorReporter::GetInstance()->ClearErrors(); | 616 ExtensionErrorReporter::GetInstance()->ClearErrors(); |
606 content::RenderProcessHost::SetRunRendererInProcess(true); | 617 content::RenderProcessHost::SetRunRendererInProcess(true); |
607 } | 618 } |
608 | 619 |
609 void ExtensionServiceTestBase::TearDown() { | 620 void ExtensionServiceTestBase::TearDown() { |
610 content::RenderProcessHost::SetRunRendererInProcess(false); | 621 content::RenderProcessHost::SetRunRendererInProcess(false); |
611 } | 622 } |
612 | 623 |
613 ExtensionServiceTestBase::ExtensionServiceInitParams | 624 ExtensionServiceTestBase::ExtensionServiceInitParams |
614 ExtensionServiceTestBase::CreateDefaultInitParams() { | 625 ExtensionServiceTestBase::CreateDefaultInitParams() { |
| 626 return CreateDefaultInitParamsInTempDir(&temp_dir_); |
| 627 } |
| 628 |
| 629 // static |
| 630 ExtensionServiceTestBase::ExtensionServiceInitParams |
| 631 ExtensionServiceTestBase::CreateDefaultInitParamsInTempDir( |
| 632 base::ScopedTempDir* temp_dir) { |
615 ExtensionServiceInitParams params; | 633 ExtensionServiceInitParams params; |
616 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); | 634 EXPECT_TRUE(temp_dir->CreateUniqueTempDir()); |
617 base::FilePath path = temp_dir_.path(); | 635 base::FilePath path = temp_dir->path(); |
618 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); | 636 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
619 EXPECT_TRUE(base::DeleteFile(path, true)); | 637 EXPECT_TRUE(base::DeleteFile(path, true)); |
620 base::PlatformFileError error = base::PLATFORM_FILE_OK; | 638 base::PlatformFileError error = base::PLATFORM_FILE_OK; |
621 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(path, &error)) << error; | 639 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(path, &error)) << error; |
622 base::FilePath prefs_filename = | 640 base::FilePath prefs_filename = |
623 path.Append(FILE_PATH_LITERAL("TestPreferences")); | 641 path.Append(FILE_PATH_LITERAL("TestPreferences")); |
624 base::FilePath extensions_install_dir = | 642 base::FilePath extensions_install_dir = |
625 path.Append(FILE_PATH_LITERAL("Extensions")); | 643 path.Append(FILE_PATH_LITERAL("Extensions")); |
626 EXPECT_TRUE(base::DeleteFile(extensions_install_dir, true)); | 644 EXPECT_TRUE(base::DeleteFile(extensions_install_dir, true)); |
627 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(extensions_install_dir, | 645 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(extensions_install_dir, |
(...skipping 6111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6739 service_->ReconcileKnownDisabled(); | 6757 service_->ReconcileKnownDisabled(); |
6740 expected_extensions.insert(good2); | 6758 expected_extensions.insert(good2); |
6741 expected_disabled_extensions.erase(good2); | 6759 expected_disabled_extensions.erase(good2); |
6742 | 6760 |
6743 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6761 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
6744 EXPECT_EQ(expected_disabled_extensions, | 6762 EXPECT_EQ(expected_disabled_extensions, |
6745 service_->disabled_extensions()->GetIDs()); | 6763 service_->disabled_extensions()->GetIDs()); |
6746 } | 6764 } |
6747 | 6765 |
6748 #endif // #if !(defined(OS_LINUX) && defined(USE_AURA) && !defined(OS_CHROMEOS)) | 6766 #endif // #if !(defined(OS_LINUX) && defined(USE_AURA) && !defined(OS_CHROMEOS)) |
OLD | NEW |