Chromium Code Reviews| 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 InitializeExtensionServiceForProfile(params, &profile_, &service_); | |
| 482 management_policy_ = | |
| 483 ExtensionSystem::Get(profile_.get())->management_policy(); | |
| 484 extensions_install_dir_ = params.extensions_install_dir; | |
| 485 expected_extensions_count_ = 0; | |
| 486 } | |
| 487 | |
| 488 // static | |
| 489 void ExtensionServiceTestBase::InitializeExtensionServiceForProfile( | |
| 490 const ExtensionServiceInitParams& params, | |
| 491 scoped_ptr<TestingProfile>* profile_ptr, | |
|
stevenjb
2013/11/20 19:41:15
This is pretty confusing. Use of scoped_ptr<>& and
benwells
2013/11/21 00:47:47
Yep, seems like you could encapsulate the bits you
tapted
2013/11/21 03:29:56
Done.
| |
| 492 ExtensionService** service_ptr) { | |
| 481 TestingProfile::Builder profile_builder; | 493 TestingProfile::Builder profile_builder; |
| 482 // Create a PrefService that only contains user defined preference values. | 494 // Create a PrefService that only contains user defined preference values. |
| 483 PrefServiceMockFactory factory; | 495 PrefServiceMockFactory factory; |
| 484 // If pref_file is empty, TestingProfile automatically creates | 496 // If pref_file is empty, TestingProfile automatically creates |
| 485 // TestingPrefServiceSyncable instance. | 497 // TestingPrefServiceSyncable instance. |
| 486 if (!params.pref_file.empty()) { | 498 if (!params.pref_file.empty()) { |
| 487 factory.SetUserPrefsFile(params.pref_file, | 499 factory.SetUserPrefsFile(params.pref_file, |
| 488 base::MessageLoopProxy::current().get()); | 500 base::MessageLoopProxy::current().get()); |
| 489 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 501 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
| 490 new user_prefs::PrefRegistrySyncable); | 502 new user_prefs::PrefRegistrySyncable); |
| 491 scoped_ptr<PrefServiceSyncable> prefs( | 503 scoped_ptr<PrefServiceSyncable> prefs( |
| 492 factory.CreateSyncable(registry.get())); | 504 factory.CreateSyncable(registry.get())); |
| 493 chrome::RegisterUserProfilePrefs(registry.get()); | 505 chrome::RegisterUserProfilePrefs(registry.get()); |
| 494 profile_builder.SetPrefService(prefs.Pass()); | 506 profile_builder.SetPrefService(prefs.Pass()); |
| 495 } | 507 } |
| 496 | 508 |
| 497 if (params.profile_is_managed) | 509 if (params.profile_is_managed) |
| 498 profile_builder.SetManagedUserId("asdf"); | 510 profile_builder.SetManagedUserId("asdf"); |
| 499 | 511 |
| 500 profile_builder.SetPath(params.profile_path); | 512 profile_builder.SetPath(params.profile_path); |
| 501 profile_ = profile_builder.Build(); | 513 scoped_ptr<TestingProfile>& profile = *profile_ptr; |
| 514 profile = profile_builder.Build(); | |
| 502 | 515 |
| 503 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( | 516 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( |
| 504 ExtensionSystem::Get(profile_.get())); | 517 ExtensionSystem::Get(profile.get())); |
| 505 if (!params.is_first_run) { | 518 if (!params.is_first_run) { |
| 506 ExtensionPrefs* prefs = system->CreateExtensionPrefs( | 519 ExtensionPrefs* prefs = system->CreateExtensionPrefs( |
| 507 CommandLine::ForCurrentProcess(), | 520 CommandLine::ForCurrentProcess(), |
| 508 params.extensions_install_dir); | 521 params.extensions_install_dir); |
| 509 prefs->SetAlertSystemFirstRun(); | 522 prefs->SetAlertSystemFirstRun(); |
| 510 } | 523 } |
| 511 | 524 |
| 512 service_ = system->CreateExtensionService( | 525 ExtensionService*& service = *service_ptr; |
| 526 service = system->CreateExtensionService( | |
|
benwells
2013/11/21 00:47:47
huh? Why so many *'s and &'s??
more importantly, w
tapted
2013/11/21 03:29:56
All fixed :) - at this stage I was still aiming on
| |
| 513 CommandLine::ForCurrentProcess(), | 527 CommandLine::ForCurrentProcess(), |
| 514 params.extensions_install_dir, | 528 params.extensions_install_dir, |
| 515 params.autoupdate_enabled); | 529 params.autoupdate_enabled); |
| 516 | 530 |
| 517 service_->SetFileTaskRunnerForTesting( | 531 service->SetFileTaskRunnerForTesting( |
| 518 base::MessageLoopProxy::current().get()); | 532 base::MessageLoopProxy::current().get()); |
| 519 service_->set_extensions_enabled(true); | 533 service->set_extensions_enabled(true); |
| 520 service_->set_show_extensions_prompts(false); | 534 service->set_show_extensions_prompts(false); |
| 521 service_->set_install_updates_when_idle_for_test(false); | 535 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 | 536 |
| 528 // When we start up, we want to make sure there is no external provider, | 537 // 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 | 538 // 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 | 539 // provider and if there is something already registered there then it will |
| 531 // interfere with the tests. Those tests that need an external provider | 540 // interfere with the tests. Those tests that need an external provider |
| 532 // will register one specifically. | 541 // will register one specifically. |
| 533 service_->ClearProvidersForTesting(); | 542 service->ClearProvidersForTesting(); |
| 534 | 543 |
| 535 #if defined(OS_CHROMEOS) | 544 #if defined(OS_CHROMEOS) |
| 536 extensions::InstallLimiter::Get(profile_.get())->DisableForTest(); | 545 extensions::InstallLimiter::Get(profile.get())->DisableForTest(); |
| 537 #endif | 546 #endif |
| 538 | |
| 539 expected_extensions_count_ = 0; | |
| 540 } | 547 } |
| 541 | 548 |
| 542 void ExtensionServiceTestBase::InitializeInstalledExtensionService( | 549 void ExtensionServiceTestBase::InitializeInstalledExtensionService( |
| 543 const base::FilePath& prefs_file, | 550 const base::FilePath& prefs_file, |
| 544 const base::FilePath& source_install_dir) { | 551 const base::FilePath& source_install_dir) { |
| 545 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); | 552 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 546 base::FilePath path = temp_dir_.path(); | 553 base::FilePath path = temp_dir_.path(); |
| 547 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); | 554 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
| 548 EXPECT_TRUE(base::DeleteFile(path, true)); | 555 EXPECT_TRUE(base::DeleteFile(path, true)); |
| 549 base::PlatformFileError error = base::PLATFORM_FILE_OK; | 556 base::PlatformFileError error = base::PLATFORM_FILE_OK; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 605 ExtensionErrorReporter::GetInstance()->ClearErrors(); | 612 ExtensionErrorReporter::GetInstance()->ClearErrors(); |
| 606 content::RenderProcessHost::SetRunRendererInProcess(true); | 613 content::RenderProcessHost::SetRunRendererInProcess(true); |
| 607 } | 614 } |
| 608 | 615 |
| 609 void ExtensionServiceTestBase::TearDown() { | 616 void ExtensionServiceTestBase::TearDown() { |
| 610 content::RenderProcessHost::SetRunRendererInProcess(false); | 617 content::RenderProcessHost::SetRunRendererInProcess(false); |
| 611 } | 618 } |
| 612 | 619 |
| 613 ExtensionServiceTestBase::ExtensionServiceInitParams | 620 ExtensionServiceTestBase::ExtensionServiceInitParams |
| 614 ExtensionServiceTestBase::CreateDefaultInitParams() { | 621 ExtensionServiceTestBase::CreateDefaultInitParams() { |
| 622 return CreateDefaultInitParamsInTempDir(&temp_dir_); | |
| 623 } | |
| 624 | |
| 625 // static | |
| 626 ExtensionServiceTestBase::ExtensionServiceInitParams | |
| 627 ExtensionServiceTestBase::CreateDefaultInitParamsInTempDir( | |
| 628 base::ScopedTempDir* temp_dir_) { | |
| 615 ExtensionServiceInitParams params; | 629 ExtensionServiceInitParams params; |
| 616 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); | 630 EXPECT_TRUE(temp_dir_->CreateUniqueTempDir()); |
| 617 base::FilePath path = temp_dir_.path(); | 631 base::FilePath path = temp_dir_->path(); |
| 618 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); | 632 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
| 619 EXPECT_TRUE(base::DeleteFile(path, true)); | 633 EXPECT_TRUE(base::DeleteFile(path, true)); |
| 620 base::PlatformFileError error = base::PLATFORM_FILE_OK; | 634 base::PlatformFileError error = base::PLATFORM_FILE_OK; |
| 621 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(path, &error)) << error; | 635 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(path, &error)) << error; |
| 622 base::FilePath prefs_filename = | 636 base::FilePath prefs_filename = |
| 623 path.Append(FILE_PATH_LITERAL("TestPreferences")); | 637 path.Append(FILE_PATH_LITERAL("TestPreferences")); |
| 624 base::FilePath extensions_install_dir = | 638 base::FilePath extensions_install_dir = |
| 625 path.Append(FILE_PATH_LITERAL("Extensions")); | 639 path.Append(FILE_PATH_LITERAL("Extensions")); |
| 626 EXPECT_TRUE(base::DeleteFile(extensions_install_dir, true)); | 640 EXPECT_TRUE(base::DeleteFile(extensions_install_dir, true)); |
| 627 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(extensions_install_dir, | 641 EXPECT_TRUE(file_util::CreateDirectoryAndGetError(extensions_install_dir, |
| (...skipping 6111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6739 service_->ReconcileKnownDisabled(); | 6753 service_->ReconcileKnownDisabled(); |
| 6740 expected_extensions.insert(good2); | 6754 expected_extensions.insert(good2); |
| 6741 expected_disabled_extensions.erase(good2); | 6755 expected_disabled_extensions.erase(good2); |
| 6742 | 6756 |
| 6743 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6757 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
| 6744 EXPECT_EQ(expected_disabled_extensions, | 6758 EXPECT_EQ(expected_disabled_extensions, |
| 6745 service_->disabled_extensions()->GetIDs()); | 6759 service_->disabled_extensions()->GetIDs()); |
| 6746 } | 6760 } |
| 6747 | 6761 |
| 6748 #endif // #if !(defined(OS_LINUX) && defined(USE_AURA) && !defined(OS_CHROMEOS)) | 6762 #endif // #if !(defined(OS_LINUX) && defined(USE_AURA) && !defined(OS_CHROMEOS)) |
| OLD | NEW |