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 ce441ed017dbb7546c1b1e51a16840b2df49a358..2d6a92750049afccd551d948e5f2f1a5532355d4 100644 |
--- a/chrome/browser/extensions/extension_service_unittest.cc |
+++ b/chrome/browser/extensions/extension_service_unittest.cc |
@@ -3018,6 +3018,18 @@ bool IsExtension(const Extension* extension) { |
return extension->GetType() == Manifest::TYPE_EXTENSION; |
} |
+std::set<std::string> StringSet(const std::string& s) { |
+ std::set<std::string> set; |
+ set.insert(s); |
+ return set; |
+} |
+ |
+std::set<std::string> StringSet(const std::string& s1, const std::string& s2) { |
+ std::set<std::string> set = StringSet(s1); |
+ set.insert(s2); |
+ return set; |
+} |
+ |
} // namespace |
// Test adding a pending extension. |
@@ -3636,6 +3648,35 @@ TEST_F(ExtensionServiceTest, GreylistUnknownDontChange) { |
EXPECT_TRUE(enabled_extensions.Contains(good2)); |
EXPECT_FALSE(disabled_extensions.Contains(good2)); |
} |
+ |
+// Tests that blacklisted extensions cannot be reloaded, both those loaded |
+// before and after extension service startup. |
+TEST_F(ExtensionServiceTest, ReloadBlacklistedExtension) { |
+ extensions::TestBlacklist test_blacklist; |
+ |
+ InitializeGoodInstalledExtensionService(); |
+ test_blacklist.Attach(service_->blacklist_); |
+ |
+ test_blacklist.SetBlacklistState( |
+ good1, extensions::BLACKLISTED_MALWARE, false); |
+ service_->Init(); |
+ test_blacklist.SetBlacklistState( |
+ good2, extensions::BLACKLISTED_MALWARE, false); |
+ base::RunLoop().RunUntilIdle(); |
+ |
+ EXPECT_EQ(StringSet(good0), registry_->enabled_extensions().GetIDs()); |
+ EXPECT_EQ(StringSet(good1, good2), |
+ registry_->blacklisted_extensions().GetIDs()); |
+ |
+ service_->ReloadExtension(good1); |
+ service_->ReloadExtension(good2); |
+ base::RunLoop().RunUntilIdle(); |
+ |
+ EXPECT_EQ(StringSet(good0), registry_->enabled_extensions().GetIDs()); |
+ EXPECT_EQ(StringSet(good1, good2), |
+ registry_->blacklisted_extensions().GetIDs()); |
+} |
+ |
#endif // defined(ENABLE_BLACKLIST_TESTS) |
// Will not install extension blacklisted by policy. |