Chromium Code Reviews| Index: chrome/browser/extensions/extension_service_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc |
| index 0433e03a85195cb8339742dec1f51aa7496ea880..0d6933e116a6d0e7a8f76ad5dcd6d8d56830dbf0 100644 |
| --- a/chrome/browser/extensions/extension_service_unittest.cc |
| +++ b/chrome/browser/extensions/extension_service_unittest.cc |
| @@ -258,6 +258,21 @@ size_t GetExternalInstallBubbleCount(ExtensionService* service) { |
| return bubble_count; |
| } |
| +scoped_refptr<Extension> CreateExtension(const base::string16& name, |
| + const base::FilePath& path, |
| + Manifest::Location location, |
| + extensions::Manifest::Type type, |
| + bool installed_by_default) { |
|
battre
2017/01/20 07:17:05
type and installed_by_default are not used. I sugg
mtomasz
2017/01/20 07:24:49
Done.
|
| + base::DictionaryValue manifest; |
| + manifest.SetString(extensions::manifest_keys::kVersion, "1.0.0.0"); |
| + manifest.SetString(extensions::manifest_keys::kName, name); |
| + std::string error; |
| + scoped_refptr<Extension> extension = |
| + Extension::Create(path, location, manifest, Extension::NO_FLAGS, &error); |
| + EXPECT_TRUE(extension.get() != NULL) << error; |
|
battre
2017/01/20 07:17:05
nullptr
mtomasz
2017/01/20 07:24:49
Done.
|
| + return extension; |
| +} |
| + |
| } // namespace |
| class MockExtensionProvider : public extensions::ExternalProviderInterface { |
| @@ -6408,6 +6423,40 @@ TEST_F(ExtensionServiceTest, ExternalInstallInitiallyDisabled) { |
| EXPECT_TRUE(service()->IsExtensionEnabled(page_action)); |
| } |
| +// As for components, only non-external component extensions can be disabled. |
| +TEST_F(ExtensionServiceTest, DisablingComponentExtensions) { |
| + InitializeEmptyExtensionService(); |
| + service_->Init(); |
| + |
| + base::ScopedTempDir temp_dir; |
| + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| + |
| + scoped_refptr<Extension> external_component_extension = CreateExtension( |
| + base::ASCIIToUTF16("external_component_extension"), |
| + base::FilePath(FILE_PATH_LITERAL("//external_component_extension")), |
| + Manifest::EXTERNAL_COMPONENT, extensions::Manifest::TYPE_EXTENSION, |
| + false); |
| + service_->AddExtension(external_component_extension.get()); |
| + EXPECT_TRUE(registry()->enabled_extensions().Contains( |
| + external_component_extension->id())); |
| + service_->DisableExtension(external_component_extension->id(), |
| + extensions::Extension::DISABLE_USER_ACTION); |
| + EXPECT_TRUE(registry()->disabled_extensions().Contains( |
| + external_component_extension->id())); |
| + |
| + scoped_refptr<Extension> component_extension = CreateExtension( |
| + base::ASCIIToUTF16("component_extension"), |
| + base::FilePath(FILE_PATH_LITERAL("//component_extension")), |
| + Manifest::COMPONENT, extensions::Manifest::TYPE_EXTENSION, false); |
| + service_->AddExtension(component_extension.get()); |
| + EXPECT_TRUE( |
| + registry()->enabled_extensions().Contains(component_extension->id())); |
| + service_->DisableExtension(component_extension->id(), |
| + extensions::Extension::DISABLE_USER_ACTION); |
| + EXPECT_FALSE( |
| + registry()->disabled_extensions().Contains(component_extension->id())); |
| +} |
| + |
| // Test that installing multiple external extensions works. |
| // Flaky on windows; http://crbug.com/295757 . |
| // Causes race conditions with an in-process utility thread, so disable under |