Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: chrome/test/base/testing_pref_service.h

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head again, previous had unrelated broken win_rel test. Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/base/testing_browser_process.cc ('k') | chrome/test/base/testing_pref_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/base/testing_pref_service.h
diff --git a/chrome/test/base/testing_pref_service.h b/chrome/test/base/testing_pref_service.h
index 478a4a9536e4588b3b5ef2d2bc60a28bcf35000d..5c921bfd4319e5a8a840569fb78b708486ecd62f 100644
--- a/chrome/test/base/testing_pref_service.h
+++ b/chrome/test/base/testing_pref_service.h
@@ -6,6 +6,7 @@
#define CHROME_TEST_BASE_TESTING_PREF_SERVICE_H_
#include "base/memory/ref_counted.h"
+#include "base/prefs/testing_pref_store.h"
#include "chrome/browser/prefs/pref_service.h"
class DefaultPrefStore;
@@ -17,7 +18,11 @@ class TestingPrefStore;
// A PrefService subclass for testing. It operates totally in memory and
// provides additional API for manipulating preferences at the different levels
// (managed, extension, user) conveniently.
-class TestingPrefServiceBase : public PrefService {
+//
+// Use this via its specializations, TestingPrefServiceSimple and
+// TestingPrefServiceSyncable.
+template <class SuperPrefService>
+class TestingPrefServiceBase : public SuperPrefService {
public:
virtual ~TestingPrefServiceBase();
@@ -49,7 +54,6 @@ class TestingPrefServiceBase : public PrefService {
TestingPrefStore* user_prefs,
TestingPrefStore* recommended_prefs,
DefaultPrefStore* default_store,
- PrefModelAssociator* pref_sync_associator,
PrefNotifierImpl* pref_notifier);
private:
@@ -71,14 +75,26 @@ class TestingPrefServiceBase : public PrefService {
DISALLOW_COPY_AND_ASSIGN(TestingPrefServiceBase);
};
-// Class for simplified construction of TestPrefServiceBase objects.
-class TestingPrefService : public TestingPrefServiceBase {
+// Test version of PrefServiceSimple.
+class TestingPrefServiceSimple
+ : public TestingPrefServiceBase<PrefServiceSimple> {
public:
- TestingPrefService();
- virtual ~TestingPrefService();
+ TestingPrefServiceSimple();
+ virtual ~TestingPrefServiceSimple();
private:
- DISALLOW_COPY_AND_ASSIGN(TestingPrefService);
+ DISALLOW_COPY_AND_ASSIGN(TestingPrefServiceSimple);
+};
+
+// Test version of PrefServiceSyncable.
+class TestingPrefServiceSyncable
+ : public TestingPrefServiceBase<PrefServiceSyncable> {
+ public:
+ TestingPrefServiceSyncable();
+ virtual ~TestingPrefServiceSyncable();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TestingPrefServiceSyncable);
};
// Helper class to temporarily set up a |local_state| in the global
@@ -88,15 +104,108 @@ class ScopedTestingLocalState {
explicit ScopedTestingLocalState(TestingBrowserProcess* browser_process);
~ScopedTestingLocalState();
- TestingPrefService* Get() {
+ TestingPrefServiceSimple* Get() {
return &local_state_;
}
private:
TestingBrowserProcess* browser_process_;
- TestingPrefService local_state_;
+ TestingPrefServiceSimple local_state_;
DISALLOW_COPY_AND_ASSIGN(ScopedTestingLocalState);
};
+template<>
+TestingPrefServiceBase<PrefServiceSimple>::TestingPrefServiceBase(
+ TestingPrefStore* managed_prefs,
+ TestingPrefStore* user_prefs,
+ TestingPrefStore* recommended_prefs,
+ DefaultPrefStore* default_store,
+ PrefNotifierImpl* pref_notifier);
+
+template<>
+TestingPrefServiceBase<PrefServiceSyncable>::TestingPrefServiceBase(
+ TestingPrefStore* managed_prefs,
+ TestingPrefStore* user_prefs,
+ TestingPrefStore* recommended_prefs,
+ DefaultPrefStore* default_store,
+ PrefNotifierImpl* pref_notifier);
+
+template<class SuperPrefService>
+TestingPrefServiceBase<SuperPrefService>::~TestingPrefServiceBase() {
+}
+
+template<class SuperPrefService>
+const Value* TestingPrefServiceBase<SuperPrefService>::GetManagedPref(
+ const char* path) const {
+ return GetPref(managed_prefs_, path);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::SetManagedPref(
+ const char* path, Value* value) {
+ SetPref(managed_prefs_, path, value);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::RemoveManagedPref(
+ const char* path) {
+ RemovePref(managed_prefs_, path);
+}
+
+template<class SuperPrefService>
+const Value* TestingPrefServiceBase<SuperPrefService>::GetUserPref(
+ const char* path) const {
+ return GetPref(user_prefs_, path);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::SetUserPref(
+ const char* path, Value* value) {
+ SetPref(user_prefs_, path, value);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::RemoveUserPref(
+ const char* path) {
+ RemovePref(user_prefs_, path);
+}
+
+template<class SuperPrefService>
+const Value* TestingPrefServiceBase<SuperPrefService>::GetRecommendedPref(
+ const char* path) const {
+ return GetPref(recommended_prefs_, path);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::SetRecommendedPref(
+ const char* path, Value* value) {
+ SetPref(recommended_prefs_, path, value);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::RemoveRecommendedPref(
+ const char* path) {
+ RemovePref(recommended_prefs_, path);
+}
+
+template<class SuperPrefService>
+const Value* TestingPrefServiceBase<SuperPrefService>::GetPref(
+ TestingPrefStore* pref_store, const char* path) const {
+ const Value* res;
+ return pref_store->GetValue(path, &res) ? res : NULL;
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::SetPref(
+ TestingPrefStore* pref_store, const char* path, Value* value) {
+ pref_store->SetValue(path, value);
+}
+
+template<class SuperPrefService>
+void TestingPrefServiceBase<SuperPrefService>::RemovePref(
+ TestingPrefStore* pref_store, const char* path) {
+ pref_store->RemoveValue(path);
+}
+
#endif // CHROME_TEST_BASE_TESTING_PREF_SERVICE_H_
« no previous file with comments | « chrome/test/base/testing_browser_process.cc ('k') | chrome/test/base/testing_pref_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698