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 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 442 int expected_creation_flags_; | 442 int expected_creation_flags_; |
| 443 scoped_ptr<extensions::ExternalProviderImpl> provider_; | 443 scoped_ptr<extensions::ExternalProviderImpl> provider_; |
| 444 scoped_ptr<DictionaryValue> prefs_; | 444 scoped_ptr<DictionaryValue> prefs_; |
| 445 scoped_ptr<TestingProfile> profile_; | 445 scoped_ptr<TestingProfile> profile_; |
| 446 | 446 |
| 447 DISALLOW_COPY_AND_ASSIGN(MockProviderVisitor); | 447 DISALLOW_COPY_AND_ASSIGN(MockProviderVisitor); |
| 448 }; | 448 }; |
| 449 | 449 |
| 450 ExtensionServiceTestBase::ExtensionServiceInitParams:: | 450 ExtensionServiceTestBase::ExtensionServiceInitParams:: |
| 451 ExtensionServiceInitParams() | 451 ExtensionServiceInitParams() |
| 452 : autoupdate_enabled(false), is_first_run(true) { | 452 : autoupdate_enabled(false), is_first_run(true), profile_is_managed(false) { |
| 453 } | 453 } |
| 454 | 454 |
| 455 // Our message loop may be used in tests which require it to be an IO loop. | 455 // Our message loop may be used in tests which require it to be an IO loop. |
| 456 ExtensionServiceTestBase::ExtensionServiceTestBase() | 456 ExtensionServiceTestBase::ExtensionServiceTestBase() |
| 457 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), | 457 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), |
| 458 service_(NULL), | 458 service_(NULL), |
| 459 management_policy_(NULL), | 459 management_policy_(NULL), |
| 460 expected_extensions_count_(0) { | 460 expected_extensions_count_(0) { |
| 461 base::FilePath test_data_dir; | 461 base::FilePath test_data_dir; |
| 462 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)) { | 462 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)) { |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 480 if (!params.pref_file.empty()) { | 480 if (!params.pref_file.empty()) { |
| 481 builder.WithUserFilePrefs(params.pref_file, | 481 builder.WithUserFilePrefs(params.pref_file, |
| 482 base::MessageLoopProxy::current().get()); | 482 base::MessageLoopProxy::current().get()); |
| 483 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 483 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
| 484 new user_prefs::PrefRegistrySyncable); | 484 new user_prefs::PrefRegistrySyncable); |
| 485 scoped_ptr<PrefServiceSyncable> prefs( | 485 scoped_ptr<PrefServiceSyncable> prefs( |
| 486 builder.CreateSyncable(registry.get())); | 486 builder.CreateSyncable(registry.get())); |
| 487 chrome::RegisterUserProfilePrefs(registry.get()); | 487 chrome::RegisterUserProfilePrefs(registry.get()); |
| 488 profile_builder.SetPrefService(prefs.Pass()); | 488 profile_builder.SetPrefService(prefs.Pass()); |
| 489 } | 489 } |
| 490 | |
| 491 if (params.profile_is_managed) | |
| 492 profile_builder.SetManagedUserId("asdf"); | |
| 493 | |
| 490 profile_builder.SetPath(params.profile_path); | 494 profile_builder.SetPath(params.profile_path); |
| 491 profile_ = profile_builder.Build(); | 495 profile_ = profile_builder.Build(); |
| 492 | 496 |
| 493 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( | 497 TestExtensionSystem* system = static_cast<TestExtensionSystem*>( |
| 494 ExtensionSystem::Get(profile_.get())); | 498 ExtensionSystem::Get(profile_.get())); |
| 495 if (!params.is_first_run) { | 499 if (!params.is_first_run) { |
| 496 ExtensionPrefs* prefs = system->CreateExtensionPrefs( | 500 ExtensionPrefs* prefs = system->CreateExtensionPrefs( |
| 497 CommandLine::ForCurrentProcess(), | 501 CommandLine::ForCurrentProcess(), |
| 498 params.extensions_install_dir); | 502 params.extensions_install_dir); |
| 499 prefs->SetAlertSystemFirstRun(); | 503 prefs->SetAlertSystemFirstRun(); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 552 base::FilePath source_install_dir = data_dir_ | 556 base::FilePath source_install_dir = data_dir_ |
| 553 .AppendASCII("good") | 557 .AppendASCII("good") |
| 554 .AppendASCII("Extensions"); | 558 .AppendASCII("Extensions"); |
| 555 base::FilePath pref_path = source_install_dir | 559 base::FilePath pref_path = source_install_dir |
| 556 .DirName() | 560 .DirName() |
| 557 .AppendASCII("Preferences"); | 561 .AppendASCII("Preferences"); |
| 558 InitializeInstalledExtensionService(pref_path, source_install_dir); | 562 InitializeInstalledExtensionService(pref_path, source_install_dir); |
| 559 } | 563 } |
| 560 | 564 |
| 561 void ExtensionServiceTestBase::InitializeEmptyExtensionService() { | 565 void ExtensionServiceTestBase::InitializeEmptyExtensionService() { |
| 562 InitializeExtensionServiceHelper(false, true); | 566 ExtensionServiceInitParams params; |
| 567 InitializeExtensionServiceParams(¶ms); | |
| 568 InitializeExtensionService(params); | |
|
not at google - send to devlin
2013/10/16 21:12:50
this 1 -> 3 line thing is awkward. Can you make In
Bernhard Bauer
2013/10/17 14:12:03
Done.
| |
| 563 } | 569 } |
| 564 | 570 |
| 565 void ExtensionServiceTestBase::InitializeExtensionProcessManager() { | 571 void ExtensionServiceTestBase::InitializeExtensionProcessManager() { |
| 566 static_cast<extensions::TestExtensionSystem*>( | 572 static_cast<extensions::TestExtensionSystem*>( |
| 567 ExtensionSystem::Get(profile_.get()))-> | 573 ExtensionSystem::Get(profile_.get()))-> |
| 568 CreateExtensionProcessManager(); | 574 CreateExtensionProcessManager(); |
| 569 } | 575 } |
| 570 | 576 |
| 571 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() { | 577 void ExtensionServiceTestBase::InitializeExtensionServiceWithUpdater() { |
| 572 InitializeExtensionServiceHelper(true, true); | 578 ExtensionServiceInitParams params; |
| 579 InitializeExtensionServiceParams(¶ms); | |
| 580 params.autoupdate_enabled = true; | |
| 581 InitializeExtensionService(params); | |
| 573 service_->updater()->Start(); | 582 service_->updater()->Start(); |
| 574 } | 583 } |
| 575 | 584 |
| 576 void ExtensionServiceTestBase::InitializeExtensionServiceHelper( | 585 void ExtensionServiceTestBase::InitializeExtensionServiceParams( |
| 577 bool autoupdate_enabled, bool is_first_run) { | 586 ExtensionServiceInitParams* params) { |
| 578 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 587 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 579 base::FilePath path = temp_dir_.path(); | 588 base::FilePath path = temp_dir_.path(); |
| 580 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); | 589 path = path.Append(FILE_PATH_LITERAL("TestingExtensionsPath")); |
| 581 base::DeleteFile(path, true); | 590 base::DeleteFile(path, true); |
| 582 file_util::CreateDirectory(path); | 591 file_util::CreateDirectory(path); |
| 583 base::FilePath prefs_filename = | 592 base::FilePath prefs_filename = |
| 584 path.Append(FILE_PATH_LITERAL("TestPreferences")); | 593 path.Append(FILE_PATH_LITERAL("TestPreferences")); |
| 585 extensions_install_dir_ = path.Append(FILE_PATH_LITERAL("Extensions")); | 594 extensions_install_dir_ = path.Append(FILE_PATH_LITERAL("Extensions")); |
| 586 base::DeleteFile(extensions_install_dir_, true); | 595 base::DeleteFile(extensions_install_dir_, true); |
| 587 file_util::CreateDirectory(extensions_install_dir_); | 596 file_util::CreateDirectory(extensions_install_dir_); |
| 588 | 597 |
| 589 ExtensionServiceInitParams params; | 598 params->profile_path = path; |
| 590 params.profile_path = path; | 599 params->pref_file = prefs_filename; |
| 591 params.pref_file = prefs_filename; | 600 params->extensions_install_dir = extensions_install_dir_; |
| 592 params.extensions_install_dir = extensions_install_dir_; | |
| 593 params.autoupdate_enabled = autoupdate_enabled; | |
| 594 params.is_first_run = is_first_run; | |
| 595 InitializeExtensionService(params); | |
| 596 } | 601 } |
| 597 | 602 |
| 598 // static | 603 // static |
| 599 void ExtensionServiceTestBase::SetUpTestCase() { | 604 void ExtensionServiceTestBase::SetUpTestCase() { |
| 600 ExtensionErrorReporter::Init(false); // no noisy errors | 605 ExtensionErrorReporter::Init(false); // no noisy errors |
| 601 } | 606 } |
| 602 | 607 |
| 603 void ExtensionServiceTestBase::SetUp() { | 608 void ExtensionServiceTestBase::SetUp() { |
| 604 ExtensionErrorReporter::GetInstance()->ClearErrors(); | 609 ExtensionErrorReporter::GetInstance()->ClearErrors(); |
| 605 content::RenderProcessHost::SetRunRendererInProcess(true); | 610 content::RenderProcessHost::SetRunRendererInProcess(true); |
| (...skipping 5862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6468 } | 6473 } |
| 6469 | 6474 |
| 6470 // Test that there is a bubble for external extensions that update | 6475 // Test that there is a bubble for external extensions that update |
| 6471 // from the webstore if the profile is not new. | 6476 // from the webstore if the profile is not new. |
| 6472 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreOldProfile) { | 6477 TEST_F(ExtensionServiceTest, ExternalInstallUpdatesFromWebstoreOldProfile) { |
| 6473 FeatureSwitch::ScopedOverride prompt( | 6478 FeatureSwitch::ScopedOverride prompt( |
| 6474 FeatureSwitch::prompt_for_external_extensions(), true); | 6479 FeatureSwitch::prompt_for_external_extensions(), true); |
| 6475 | 6480 |
| 6476 // This sets up the ExtensionPrefs used by our ExtensionService to be | 6481 // This sets up the ExtensionPrefs used by our ExtensionService to be |
| 6477 // post-first run. | 6482 // post-first run. |
| 6478 InitializeExtensionServiceHelper(false, false); | 6483 ExtensionServiceInitParams params; |
| 6484 InitializeExtensionServiceParams(¶ms); | |
| 6485 params.is_first_run = false; | |
| 6486 InitializeExtensionService(params); | |
| 6479 | 6487 |
| 6480 base::FilePath crx_path = temp_dir_.path().AppendASCII("webstore.crx"); | 6488 base::FilePath crx_path = temp_dir_.path().AppendASCII("webstore.crx"); |
| 6481 PackCRX(data_dir_.AppendASCII("update_from_webstore"), | 6489 PackCRX(data_dir_.AppendASCII("update_from_webstore"), |
| 6482 data_dir_.AppendASCII("update_from_webstore.pem"), | 6490 data_dir_.AppendASCII("update_from_webstore.pem"), |
| 6483 crx_path); | 6491 crx_path); |
| 6484 | 6492 |
| 6485 MockExtensionProvider* provider = | 6493 MockExtensionProvider* provider = |
| 6486 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF); | 6494 new MockExtensionProvider(service_, Manifest::EXTERNAL_PREF); |
| 6487 AddMockExternalProvider(provider); | 6495 AddMockExternalProvider(provider); |
| 6488 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); | 6496 provider->UpdateOrAddExtension(updates_from_webstore, "1", crx_path); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6616 // ReconcileKnownDisabled(). | 6624 // ReconcileKnownDisabled(). |
| 6617 service_->EnableExtension(good2); | 6625 service_->EnableExtension(good2); |
| 6618 service_->ReconcileKnownDisabled(); | 6626 service_->ReconcileKnownDisabled(); |
| 6619 expected_extensions.insert(good2); | 6627 expected_extensions.insert(good2); |
| 6620 expected_disabled_extensions.erase(good2); | 6628 expected_disabled_extensions.erase(good2); |
| 6621 | 6629 |
| 6622 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6630 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
| 6623 EXPECT_EQ(expected_disabled_extensions, | 6631 EXPECT_EQ(expected_disabled_extensions, |
| 6624 service_->disabled_extensions()->GetIDs()); | 6632 service_->disabled_extensions()->GetIDs()); |
| 6625 } | 6633 } |
| OLD | NEW |