| 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) {}
|
|
|