Index: base/prefs/mock_pref_change_callback.h |
diff --git a/base/prefs/mock_pref_change_callback.h b/base/prefs/mock_pref_change_callback.h |
index 90ad29472e30ee6c7281910d1010dc83e221d404..3030fab17c23c9ed6775e70eee65b45ea6d5295f 100644 |
--- a/base/prefs/mock_pref_change_callback.h |
+++ b/base/prefs/mock_pref_change_callback.h |
@@ -2,6 +2,50 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// TODO(brettw) remove this forwarding header when prefs is completely moved to |
-// components. |
-#include "components/prefs/mock_pref_change_callback.h" |
+#ifndef BASE_PREFS_MOCK_PREF_CHANGE_CALLBACK_H_ |
+#define BASE_PREFS_MOCK_PREF_CHANGE_CALLBACK_H_ |
+ |
+#include <string> |
+ |
+#include "base/prefs/pref_change_registrar.h" |
+#include "base/prefs/pref_service.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+ |
+using testing::Pointee; |
+using testing::Property; |
+using testing::Truly; |
+ |
+// Matcher that checks whether the current value of the preference named |
+// |pref_name| in |prefs| matches |value|. If |value| is NULL, the matcher |
+// checks that the value is not set. |
+MATCHER_P3(PrefValueMatches, prefs, pref_name, value, "") { |
+ const PrefService::Preference* pref = prefs->FindPreference(pref_name); |
+ if (!pref) |
+ return false; |
+ |
+ const base::Value* actual_value = pref->GetValue(); |
+ if (!actual_value) |
+ return value == NULL; |
+ if (!value) |
+ return actual_value == NULL; |
+ return value->Equals(actual_value); |
+} |
+ |
+// A mock for testing preference notifications and easy setup of expectations. |
+class MockPrefChangeCallback { |
+ public: |
+ explicit MockPrefChangeCallback(PrefService* prefs); |
+ virtual ~MockPrefChangeCallback(); |
+ |
+ PrefChangeRegistrar::NamedChangeCallback GetCallback(); |
+ |
+ MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); |
+ |
+ void Expect(const std::string& pref_name, |
+ const base::Value* value); |
+ |
+ private: |
+ PrefService* prefs_; |
+}; |
+ |
+#endif // BASE_PREFS_MOCK_PREF_CHANGE_CALLBACK_H_ |