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..7b6f9a1b0c6b75ec8323becc31186b2715651b04 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/auto_reset.h" |
+#include "base/command_line.h" |
#include "base/message_loop.h" |
#include "base/path_service.h" |
#include "base/scoped_temp_dir.h" |
@@ -13,6 +15,7 @@ |
#include "chrome/browser/prefs/pref_change_registrar.h" |
#include "chrome/browser/prefs/scoped_user_pref_update.h" |
#include "chrome/common/chrome_paths.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/common/extensions/extension_constants.h" |
#include "chrome/common/extensions/extension_permission_set.h" |
#include "content/browser/browser_thread.h" |
@@ -1111,3 +1114,35 @@ 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), |
+ cmd_auto_reset_(CommandLine::ForCurrentProcess(), |
+ *CommandLine::ForCurrentProcess()) {} |
+ virtual ~ExtensionPrefsDisableExtensions() {} |
+ virtual void Initialize() { |
+ InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
+ // This becomes only active in the second verification phase. |
+ CommandLine::ForCurrentProcess()->AppendSwitch( |
+ switches::kDisableExtensions); |
+ } |
+ 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_; |
+ AutoReset<CommandLine> cmd_auto_reset_; |
+}; |
+TEST_F(ExtensionPrefsDisableExtensions, ExtensionPrefsDisableExtensions) {} |