Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2138)

Unified Diff: chrome/browser/extensions/extension_service_unittest.cc

Issue 695133005: Temporarily disable extensions and sync while a profile is locked - Profiles Approach (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Extension Service unit tests Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/profiles/profile_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 0d7905fbd84226cb78a70a4f73b57e6ce1942bde..8dbaa632688bfb805441f30d5559b88a28ff7388 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -3584,6 +3584,105 @@ TEST_F(ExtensionServiceTest, ReloadBlacklistedExtension) {
#endif // defined(ENABLE_BLACKLIST_TESTS)
+// Tests blocking then unblocking extensions after the service has been
+// initialized.
+TEST_F(ExtensionServiceTest, SetUnsetBlockingState) {
+ // A profile with 3 extensions installed: good0, good1, and good2.
+ InitializeGoodInstalledExtensionService();
+ service()->Init();
+
+ const extensions::ExtensionSet& enabled_extensions =
+ registry()->enabled_extensions();
+ const extensions::ExtensionSet& blocked_extensions =
+ registry()->blocked_extensions();
+
+ EXPECT_TRUE(enabled_extensions.Contains(good0) &&
+ !blocked_extensions.Contains(good0));
+ EXPECT_TRUE(enabled_extensions.Contains(good1) &&
+ !blocked_extensions.Contains(good1));
+ EXPECT_TRUE(enabled_extensions.Contains(good2) &&
+ !blocked_extensions.Contains(good2));
not at google - send to devlin 2014/11/20 18:27:20 It's better to separate the assertions rather than
Mike Lerman 2014/11/21 17:00:13 Done.
+
+ // Block the extensions.
+ service()->BlockAllExtensions();
+ base::RunLoop().RunUntilIdle();
+
+ // All extensions should be blocked.
+ EXPECT_TRUE(!enabled_extensions.Contains(good0) &&
+ blocked_extensions.Contains(good0));
+ EXPECT_TRUE(!enabled_extensions.Contains(good1) &&
+ blocked_extensions.Contains(good1));
+ EXPECT_TRUE(!enabled_extensions.Contains(good2) &&
+ blocked_extensions.Contains(good2));
+
+ service()->UnblockAllExtensions();
+ base::RunLoop().RunUntilIdle();
+
not at google - send to devlin 2014/11/20 18:27:20 I think it's also important to test some more case
Mike Lerman 2014/11/21 17:00:13 Wrote a helper method to refactor the boiler plate
+ EXPECT_TRUE(enabled_extensions.Contains(good0) &&
+ !blocked_extensions.Contains(good0));
+ EXPECT_TRUE(enabled_extensions.Contains(good1) &&
+ !blocked_extensions.Contains(good1));
+ EXPECT_TRUE(enabled_extensions.Contains(good2) &&
+ !blocked_extensions.Contains(good2));
+}
+
+// Tests that blocking then unblocking the service doesn't affect component
+// extensions.
not at google - send to devlin 2014/11/20 18:27:20 If possible could you also put policy extensions i
Mike Lerman 2014/11/21 17:00:13 I presume by "policy extension" you mean an extens
+TEST_F(ExtensionServiceTest, SetUnsetBlockingStateComponent) {
+ InitializeEmptyExtensionServiceWithTestingPrefs();
+
+ service()->BlockAllExtensions();
+
+ // Install a component extension.
+ base::FilePath path = data_dir()
+ .AppendASCII("good")
+ .AppendASCII("Extensions")
+ .AppendASCII(good0)
+ .AppendASCII("1.0.0.0");
+ std::string manifest;
+ ASSERT_TRUE(base::ReadFileToString(
+ path.Append(extensions::kManifestFilename), &manifest));
+ service()->component_loader()->Add(manifest, path);
+ service()->Init();
+
+ // Should be enabled.
+ const extensions::ExtensionSet& enabled_extensions =
+ registry()->enabled_extensions();
+ const extensions::ExtensionSet& blocked_extensions =
+ registry()->blocked_extensions();
+
+ EXPECT_TRUE(enabled_extensions.Contains(good0) &&
+ !blocked_extensions.Contains(good0));
+
+ service()->UnblockAllExtensions();
+ base::RunLoop().RunUntilIdle();
+
+ // Still enabled.
+ EXPECT_TRUE(enabled_extensions.Contains(good0) &&
+ !blocked_extensions.Contains(good0));
+}
+
+// Tests that a blocked extension service won't load extensions.
+TEST_F(ExtensionServiceTest, WillNotLoadExtensionsWhenBlocked) {
+ InitializeGoodInstalledExtensionService();
+
+ service()->BlockAllExtensions();
+
+ service()->Init();
+
+ const extensions::ExtensionSet& enabled_extensions =
+ registry()->enabled_extensions();
+ const extensions::ExtensionSet& blocked_extensions =
+ registry()->blocked_extensions();
+
+ EXPECT_TRUE(!enabled_extensions.Contains(good0) &&
+ blocked_extensions.Contains(good0));
+ EXPECT_TRUE(!enabled_extensions.Contains(good1) &&
+ blocked_extensions.Contains(good1));
+ EXPECT_TRUE(!enabled_extensions.Contains(good2) &&
+ blocked_extensions.Contains(good2));
+}
+
// Will not install extension blacklisted by policy.
TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) {
InitializeEmptyExtensionServiceWithTestingPrefs();
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/profiles/profile_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698