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

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

Issue 10382149: Refactor the various ways to control what users can do to extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 months 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_prefs.cc ('k') | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_prefs_unittest.cc
===================================================================
--- chrome/browser/extensions/extension_prefs_unittest.cc (revision 140193)
+++ chrome/browser/extensions/extension_prefs_unittest.cc (working copy)
@@ -1138,3 +1138,70 @@
int iteration_;
};
TEST_F(ExtensionPrefsDisableExtensions, ExtensionPrefsDisableExtensions) {}
+
+// Parent class for testing the ManagementPolicy provider methods.
+class ExtensionPrefsManagementPolicyProvider : public ExtensionPrefsTest {
+ public:
+ virtual void Initialize() {}
+ virtual void Verify() {}
+
+ void InitializeWithLocation(Extension::Location location, bool required) {
+ ASSERT_EQ(required, Extension::IsRequired(location));
+
+ DictionaryValue values;
+ values.SetString(keys::kName, "test");
+ values.SetString(keys::kVersion, "0.1");
+ std::string error;
+ extension_ = Extension::Create(FilePath(), location, values,
+ Extension::NO_FLAGS, &error);
+ ASSERT_TRUE(extension_.get());
+ }
+
+ protected:
+ scoped_refptr<Extension> extension_;
+};
+
+// Tests the behavior of the ManagementPolicy provider methods for an
+// extension required by policy.
+class ExtensionPrefsRequiredExtension
+ : public ExtensionPrefsManagementPolicyProvider {
+ public:
+ virtual void Initialize() {
+ InitializeWithLocation(Extension::EXTERNAL_POLICY_DOWNLOAD, true);
+ }
+
+ virtual void Verify() {
+ string16 error16;
+ EXPECT_TRUE(prefs()->UserMayLoad(extension_.get(), &error16));
+ EXPECT_EQ(string16(), error16);
+
+ // We won't check the exact wording of the error, but it should say
+ // something.
+ EXPECT_FALSE(prefs()->UserMayModifySettings(extension_.get(), &error16));
+ EXPECT_NE(string16(), error16);
+ EXPECT_TRUE(prefs()->MustRemainEnabled(extension_.get(), &error16));
+ EXPECT_NE(string16(), error16);
+ }
+};
+TEST_F(ExtensionPrefsRequiredExtension, RequiredExtension) {}
+
+// Tests the behavior of the ManagementPolicy provider methods for an
+// extension required by policy.
+class ExtensionPrefsNotRequiredExtension
+ : public ExtensionPrefsManagementPolicyProvider {
+ public:
+ virtual void Initialize() {
+ InitializeWithLocation(Extension::INTERNAL, false);
+ }
+
+ virtual void Verify() {
+ string16 error16;
+ EXPECT_TRUE(prefs()->UserMayLoad(extension_.get(), &error16));
+ EXPECT_EQ(string16(), error16);
+ EXPECT_TRUE(prefs()->UserMayModifySettings(extension_.get(), &error16));
+ EXPECT_EQ(string16(), error16);
+ EXPECT_FALSE(prefs()->MustRemainEnabled(extension_.get(), &error16));
+ EXPECT_EQ(string16(), error16);
+ }
+};
+TEST_F(ExtensionPrefsNotRequiredExtension, NotRequiredExtension) {}
« no previous file with comments | « chrome/browser/extensions/extension_prefs.cc ('k') | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698