Index: chrome/browser/extensions/extensions_service_unittest.cc |
diff --git a/chrome/browser/extensions/extensions_service_unittest.cc b/chrome/browser/extensions/extensions_service_unittest.cc |
index cc50bab40f95fc84563aadaf291de8e68e379dd8..58255da117a90beee8b7988545257d2dd4dc0831 100644 |
--- a/chrome/browser/extensions/extensions_service_unittest.cc |
+++ b/chrome/browser/extensions/extensions_service_unittest.cc |
@@ -1437,6 +1437,66 @@ TEST_F(ExtensionsServiceTest, WillNotLoadBlacklistedExtensionsFromDirectory) { |
EXPECT_NE(std::string(good0), loaded_[1]->id()); |
} |
+// Tests disabling extensions |
+TEST_F(ExtensionsServiceTest, DisableExtension) { |
+ InitializeEmptyExtensionsService(); |
+ FilePath extensions_path; |
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path)); |
+ extensions_path = extensions_path.AppendASCII("extensions"); |
+ |
+ // A simple extension that should install without error. |
+ FilePath path = extensions_path.AppendASCII("good.crx"); |
+ InstallExtension(path, true); |
+ |
+ const char* extension_id = good_crx; |
+ EXPECT_FALSE(service_->extensions()->empty()); |
+ EXPECT_TRUE(service_->GetExtensionById(extension_id, true) != NULL); |
+ EXPECT_TRUE(service_->GetExtensionById(extension_id, false) != NULL); |
+ EXPECT_TRUE(service_->disabled_extensions()->empty()); |
+ |
+ // Disable it. |
+ service_->DisableExtension(extension_id); |
+ |
+ EXPECT_TRUE(service_->extensions()->empty()); |
+ EXPECT_TRUE(service_->GetExtensionById(extension_id, true) != NULL); |
+ EXPECT_FALSE(service_->GetExtensionById(extension_id, false) != NULL); |
+ EXPECT_FALSE(service_->disabled_extensions()->empty()); |
+} |
+ |
+// Tests reloading extensions |
+TEST_F(ExtensionsServiceTest, ReloadExtensions) { |
+ InitializeEmptyExtensionsService(); |
+ FilePath extensions_path; |
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path)); |
+ extensions_path = extensions_path.AppendASCII("extensions"); |
+ |
+ // Simple extension that should install without error. |
+ FilePath path = extensions_path.AppendASCII("good.crx"); |
+ InstallExtension(path, true); |
+ const char* extension_id = good_crx; |
+ service_->DisableExtension(extension_id); |
+ |
+ EXPECT_EQ(0u, service_->extensions()->size()); |
+ EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
+ |
+ service_->ReloadExtensions(); |
+ |
+ // Extension counts shouldn't change. |
+ EXPECT_EQ(0u, service_->extensions()->size()); |
+ EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
+ |
+ service_->EnableExtension(extension_id); |
+ |
+ EXPECT_EQ(1u, service_->extensions()->size()); |
+ EXPECT_EQ(0u, service_->disabled_extensions()->size()); |
+ |
+ service_->ReloadExtensions(); |
+ |
+ // Extension counts shouldn't change. |
+ EXPECT_EQ(1u, service_->extensions()->size()); |
+ EXPECT_EQ(0u, service_->disabled_extensions()->size()); |
+} |
+ |
// Tests uninstalling normal extensions |
TEST_F(ExtensionsServiceTest, UninstallExtension) { |
InitializeEmptyExtensionsService(); |