| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/prefs/pref_observer.h" | 7 #include "base/prefs/pref_observer.h" |
| 8 #include "base/prefs/public/pref_change_registrar.h" | 8 #include "base/prefs/public/pref_change_registrar.h" |
| 9 #include "chrome/test/base/testing_pref_service.h" | 9 #include "chrome/test/base/testing_pref_service.h" |
| 10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 12 |
| 13 using testing::Mock; | 13 using testing::Mock; |
| 14 using testing::Eq; | 14 using testing::Eq; |
| 15 | 15 |
| 16 namespace base { | 16 namespace base { |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 const char kHomePage[] = "homepage"; | 19 const char kHomePage[] = "homepage"; |
| 20 const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage"; | 20 const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage"; |
| 21 const char kApplicationLocale[] = "intl.app_locale"; | 21 const char kApplicationLocale[] = "intl.app_locale"; |
| 22 | 22 |
| 23 // A mock provider that allows us to capture pref observer changes. | 23 // A mock provider that allows us to capture pref observer changes. |
| 24 class MockPrefService : public TestingPrefService { | 24 class MockPrefService : public TestingPrefServiceSimple { |
| 25 public: | 25 public: |
| 26 MockPrefService() {} | 26 MockPrefService() {} |
| 27 virtual ~MockPrefService() {} | 27 virtual ~MockPrefService() {} |
| 28 | 28 |
| 29 MOCK_METHOD2(AddPrefObserver, | 29 MOCK_METHOD2(AddPrefObserver, |
| 30 void(const char*, PrefObserver*)); | 30 void(const char*, PrefObserver*)); |
| 31 MOCK_METHOD2(RemovePrefObserver, | 31 MOCK_METHOD2(RemovePrefObserver, |
| 32 void(const char*, PrefObserver*)); | 32 void(const char*, PrefObserver*)); |
| 33 }; | 33 }; |
| 34 | 34 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 EXPECT_TRUE(registrar.IsEmpty()); | 120 EXPECT_TRUE(registrar.IsEmpty()); |
| 121 | 121 |
| 122 // Explicitly check the expectations now to make sure that the RemoveAll | 122 // Explicitly check the expectations now to make sure that the RemoveAll |
| 123 // worked (rather than the registrar destructor doing the work). | 123 // worked (rather than the registrar destructor doing the work). |
| 124 Mock::VerifyAndClearExpectations(service()); | 124 Mock::VerifyAndClearExpectations(service()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 class ObserveSetOfPreferencesTest : public testing::Test { | 127 class ObserveSetOfPreferencesTest : public testing::Test { |
| 128 public: | 128 public: |
| 129 virtual void SetUp() { | 129 virtual void SetUp() { |
| 130 pref_service_.reset(new TestingPrefService); | 130 pref_service_.reset(new TestingPrefServiceSimple); |
| 131 pref_service_->RegisterStringPref(kHomePage, | 131 pref_service_->RegisterStringPref(kHomePage, "http://google.com"); |
| 132 "http://google.com", | 132 pref_service_->RegisterBooleanPref(kHomePageIsNewTabPage, false); |
| 133 PrefService::UNSYNCABLE_PREF); | 133 pref_service_->RegisterStringPref(kApplicationLocale, ""); |
| 134 pref_service_->RegisterBooleanPref(kHomePageIsNewTabPage, | |
| 135 false, | |
| 136 PrefService::UNSYNCABLE_PREF); | |
| 137 pref_service_->RegisterStringPref(kApplicationLocale, | |
| 138 "", | |
| 139 PrefService::UNSYNCABLE_PREF); | |
| 140 } | 134 } |
| 141 | 135 |
| 142 PrefChangeRegistrar* CreatePrefChangeRegistrar() { | 136 PrefChangeRegistrar* CreatePrefChangeRegistrar() { |
| 143 PrefChangeRegistrar* pref_set = new PrefChangeRegistrar(); | 137 PrefChangeRegistrar* pref_set = new PrefChangeRegistrar(); |
| 144 base::Closure callback = base::Bind(&base::DoNothing); | 138 base::Closure callback = base::Bind(&base::DoNothing); |
| 145 pref_set->Init(pref_service_.get()); | 139 pref_set->Init(pref_service_.get()); |
| 146 pref_set->Add(kHomePage, callback); | 140 pref_set->Add(kHomePage, callback); |
| 147 pref_set->Add(kHomePageIsNewTabPage, callback); | 141 pref_set->Add(kHomePageIsNewTabPage, callback); |
| 148 return pref_set; | 142 return pref_set; |
| 149 } | 143 } |
| 150 | 144 |
| 151 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); | 145 MOCK_METHOD1(OnPreferenceChanged, void(const std::string&)); |
| 152 | 146 |
| 153 scoped_ptr<TestingPrefService> pref_service_; | 147 scoped_ptr<TestingPrefServiceSimple> pref_service_; |
| 154 }; | 148 }; |
| 155 | 149 |
| 156 TEST_F(ObserveSetOfPreferencesTest, IsObserved) { | 150 TEST_F(ObserveSetOfPreferencesTest, IsObserved) { |
| 157 scoped_ptr<PrefChangeRegistrar> pref_set(CreatePrefChangeRegistrar()); | 151 scoped_ptr<PrefChangeRegistrar> pref_set(CreatePrefChangeRegistrar()); |
| 158 EXPECT_TRUE(pref_set->IsObserved(kHomePage)); | 152 EXPECT_TRUE(pref_set->IsObserved(kHomePage)); |
| 159 EXPECT_TRUE(pref_set->IsObserved(kHomePageIsNewTabPage)); | 153 EXPECT_TRUE(pref_set->IsObserved(kHomePageIsNewTabPage)); |
| 160 EXPECT_FALSE(pref_set->IsObserved(kApplicationLocale)); | 154 EXPECT_FALSE(pref_set->IsObserved(kApplicationLocale)); |
| 161 } | 155 } |
| 162 | 156 |
| 163 TEST_F(ObserveSetOfPreferencesTest, IsManaged) { | 157 TEST_F(ObserveSetOfPreferencesTest, IsManaged) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 pref_service_->SetUserPref(kHomePageIsNewTabPage, | 189 pref_service_->SetUserPref(kHomePageIsNewTabPage, |
| 196 new FundamentalValue(true)); | 190 new FundamentalValue(true)); |
| 197 Mock::VerifyAndClearExpectations(this); | 191 Mock::VerifyAndClearExpectations(this); |
| 198 | 192 |
| 199 EXPECT_CALL(*this, OnPreferenceChanged(_)).Times(0); | 193 EXPECT_CALL(*this, OnPreferenceChanged(_)).Times(0); |
| 200 pref_service_->SetUserPref(kApplicationLocale, new StringValue("en_US.utf8")); | 194 pref_service_->SetUserPref(kApplicationLocale, new StringValue("en_US.utf8")); |
| 201 Mock::VerifyAndClearExpectations(this); | 195 Mock::VerifyAndClearExpectations(this); |
| 202 } | 196 } |
| 203 | 197 |
| 204 } // namespace base | 198 } // namespace base |
| OLD | NEW |