| Index: chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc b/chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc
|
| index 4f266066857640a94c8dbaca793af1a8c8d20b12..d6fcffc902c393617796a74467f52261075e190a 100644
|
| --- a/chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc
|
| +++ b/chrome/browser/extensions/api/preference/preference_api_prefs_unittest.cc
|
| @@ -9,8 +9,11 @@
|
| #include "base/prefs/mock_pref_change_callback.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/extensions/api/preference/preference_api.h"
|
| +#include "chrome/browser/extensions/extension_pref_store.h"
|
| #include "chrome/browser/extensions/extension_prefs.h"
|
| #include "chrome/browser/extensions/extension_prefs_unittest.h"
|
| +#include "chrome/browser/prefs/pref_service_mock_factory.h"
|
| +#include "chrome/browser/prefs/pref_service_syncable.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/user_prefs/pref_registry_syncable.h"
|
| #include "extensions/common/extension.h"
|
| @@ -81,11 +84,14 @@ class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase {
|
| void EnsureExtensionInstalled(Extension* extension);
|
| void EnsureExtensionUninstalled(const std::string& extension_id);
|
|
|
| + // Creates a new incognito PrefService from |test_extension_prefs_|.
|
| + scoped_ptr<PrefService> CreateIncognitoPrefService();
|
| +
|
| TestPreferenceAPI test_preference_api_;
|
| };
|
|
|
| ExtensionControlledPrefsTest::ExtensionControlledPrefsTest()
|
| - : PrefsPrepopulatedTestBase(),
|
| + : PrefsPrepopulatedTestBase(new PrefServiceMockFactory),
|
| test_preference_api_(&prefs_) {
|
| }
|
|
|
| @@ -174,6 +180,16 @@ void ExtensionControlledPrefsTest::EnsureExtensionUninstalled(
|
| prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false);
|
| }
|
|
|
| +scoped_ptr<PrefService>
|
| +ExtensionControlledPrefsTest::CreateIncognitoPrefService() {
|
| + // This downcast is safe due to the PrefServiceMockFactory that was passed to
|
| + // TestExtensionPrefs by way of PrefsPrepopulatedTestBase.
|
| + PrefServiceSyncable* pref_service =
|
| + static_cast<PrefServiceSyncable*>(prefs_.pref_service());
|
| + return scoped_ptr<PrefService>(pref_service->CreateIncognitoPrefService(
|
| + new ExtensionPrefStore(prefs_.extension_pref_value_map(), true))).Pass();
|
| +}
|
| +
|
| class ControlledPrefsInstallOneExtension
|
| : public ExtensionControlledPrefsTest {
|
| virtual void Initialize() OVERRIDE {
|
| @@ -198,7 +214,7 @@ class ControlledPrefsInstallIncognitoPersistent
|
| extension1(), kPref1, new base::StringValue("val1"));
|
| InstallExtensionControlledPrefIncognito(
|
| extension1(), kPref1, new base::StringValue("val2"));
|
| - scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
|
| + scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
|
| std::string actual = incog_prefs->GetString(kPref1);
|
| EXPECT_EQ("val2", actual);
|
| }
|
| @@ -208,7 +224,7 @@ class ControlledPrefsInstallIncognitoPersistent
|
| std::string actual = prefs()->pref_service()->GetString(kPref1);
|
| EXPECT_EQ("val1", actual);
|
| // Incognito pref service shall see incognito values.
|
| - scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
|
| + scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
|
| actual = incog_prefs->GetString(kPref1);
|
| EXPECT_EQ("val2", actual);
|
| }
|
| @@ -227,7 +243,7 @@ class ControlledPrefsInstallIncognitoSessionOnly
|
| extension1(), kPref1, new base::StringValue("val1"));
|
| InstallExtensionControlledPrefIncognitoSessionOnly(
|
| extension1(), kPref1, new base::StringValue("val2"));
|
| - scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
|
| + scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
|
| std::string actual = incog_prefs->GetString(kPref1);
|
| EXPECT_EQ("val2", actual);
|
| }
|
| @@ -238,7 +254,7 @@ class ControlledPrefsInstallIncognitoSessionOnly
|
| // Incognito pref service shall see session-only incognito values only
|
| // during first run. Once the pref service was reloaded, all values shall be
|
| // discarded.
|
| - scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
|
| + scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
|
| actual = incog_prefs->GetString(kPref1);
|
| if (iteration_ == 0) {
|
| EXPECT_EQ("val2", actual);
|
| @@ -296,7 +312,7 @@ class ControlledPrefsNotifyWhenNeeded : public ExtensionControlledPrefsTest {
|
| registrar.Add(kPref1, observer.GetCallback());
|
|
|
| MockPrefChangeCallback incognito_observer(prefs()->pref_service());
|
| - scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService());
|
| + scoped_ptr<PrefService> incog_prefs(CreateIncognitoPrefService());
|
| PrefChangeRegistrar incognito_registrar;
|
| incognito_registrar.Init(incog_prefs.get());
|
| incognito_registrar.Add(kPref1, incognito_observer.GetCallback());
|
|
|