Index: chrome/browser/extensions/extension_prefs_unittest.cc |
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc |
index b536410f3a463ef3cc3d750a47f39124619aa8ce..d10e1839d6d7b87baac2655ef2f5e66a4c5cf35d 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -1111,3 +1111,31 @@ class ExtensionPrefsSetExtensionControlledPref |
}; |
TEST_F(ExtensionPrefsSetExtensionControlledPref, |
ExtensionPrefsSetExtensionControlledPref) {} |
+ |
+// Tests that the switches::kDisableExtensions command-line flag prevents |
+// extension controlled preferences from being enacted. |
+class ExtensionPrefsDisableExtensions |
+ : public ExtensionPrefsPreferencesBase { |
+ public: |
+ ExtensionPrefsDisableExtensions() |
+ : iteration_(0) {} |
+ virtual ~ExtensionPrefsDisableExtensions() {} |
+ virtual void Initialize() { |
+ InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
+ // This becomes only active in the second verification phase. |
+ prefs_.set_extensions_disabled(true); |
+ } |
+ virtual void Verify() { |
+ std::string actual = prefs()->pref_service()->GetString(kPref1); |
+ if (iteration_ == 0) { |
+ EXPECT_EQ("val1", actual); |
+ ++iteration_; |
+ } else { |
+ EXPECT_EQ(kDefaultPref1, actual); |
+ } |
+ } |
+ |
+ private: |
+ int iteration_; |
+}; |
+TEST_F(ExtensionPrefsDisableExtensions, ExtensionPrefsDisableExtensions) {} |