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()); |