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

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: Addressing comments from partial review 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
Index: chrome/browser/extensions/extension_prefs_unittest.cc
===================================================================
--- chrome/browser/extensions/extension_prefs_unittest.cc (revision 138227)
+++ chrome/browser/extensions/extension_prefs_unittest.cc (working copy)
@@ -1140,3 +1140,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) {}

Powered by Google App Engine
This is Rietveld 408576698