Index: chrome/browser/api/prefs/pref_change_registrar_unittest.cc |
diff --git a/chrome/browser/api/prefs/pref_change_registrar_unittest.cc b/chrome/browser/api/prefs/pref_change_registrar_unittest.cc |
deleted file mode 100644 |
index 2152cce2a054b822f6172344a4b26f9b2e5ed92c..0000000000000000000000000000000000000000 |
--- a/chrome/browser/api/prefs/pref_change_registrar_unittest.cc |
+++ /dev/null |
@@ -1,207 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/browser/api/prefs/pref_change_registrar.h" |
-#include "chrome/test/base/testing_pref_service.h" |
-#include "content/public/browser/notification_details.h" |
-#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/notification_types.h" |
-#include "content/public/test/mock_notification_observer.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::Mock; |
-using testing::Eq; |
- |
-namespace { |
- |
-// A mock provider that allows us to capture pref observer changes. |
-class MockPrefService : public TestingPrefService { |
- public: |
- MockPrefService() {} |
- virtual ~MockPrefService() {} |
- |
- MOCK_METHOD2(AddPrefObserver, |
- void(const char*, content::NotificationObserver*)); |
- MOCK_METHOD2(RemovePrefObserver, |
- void(const char*, content::NotificationObserver*)); |
-}; |
- |
-} // namespace |
- |
-class PrefChangeRegistrarTest : public testing::Test { |
- public: |
- PrefChangeRegistrarTest() {} |
- virtual ~PrefChangeRegistrarTest() {} |
- |
- protected: |
- virtual void SetUp(); |
- |
- content::NotificationObserver* observer() const { return observer_.get(); } |
- MockPrefService* service() const { return service_.get(); } |
- |
- private: |
- scoped_ptr<MockPrefService> service_; |
- scoped_ptr<content::MockNotificationObserver> observer_; |
-}; |
- |
-void PrefChangeRegistrarTest::SetUp() { |
- service_.reset(new MockPrefService()); |
- observer_.reset(new content::MockNotificationObserver()); |
-} |
- |
-TEST_F(PrefChangeRegistrarTest, AddAndRemove) { |
- PrefChangeRegistrar registrar; |
- registrar.Init(service()); |
- |
- // Test adding. |
- EXPECT_CALL(*service(), |
- AddPrefObserver(Eq(std::string("test.pref.1")), observer())); |
- EXPECT_CALL(*service(), |
- AddPrefObserver(Eq(std::string("test.pref.2")), observer())); |
- registrar.Add("test.pref.1", observer()); |
- registrar.Add("test.pref.2", observer()); |
- EXPECT_FALSE(registrar.IsEmpty()); |
- |
- // Test removing. |
- Mock::VerifyAndClearExpectations(service()); |
- EXPECT_CALL(*service(), |
- RemovePrefObserver(Eq(std::string("test.pref.1")), observer())); |
- EXPECT_CALL(*service(), |
- RemovePrefObserver(Eq(std::string("test.pref.2")), observer())); |
- registrar.Remove("test.pref.1", observer()); |
- registrar.Remove("test.pref.2", observer()); |
- EXPECT_TRUE(registrar.IsEmpty()); |
- |
- // Explicitly check the expectations now to make sure that the Removes |
- // worked (rather than the registrar destructor doing the work). |
- Mock::VerifyAndClearExpectations(service()); |
-} |
- |
-TEST_F(PrefChangeRegistrarTest, AutoRemove) { |
- PrefChangeRegistrar registrar; |
- registrar.Init(service()); |
- |
- // Setup of auto-remove. |
- EXPECT_CALL(*service(), |
- AddPrefObserver(Eq(std::string("test.pref.1")), observer())); |
- registrar.Add("test.pref.1", observer()); |
- Mock::VerifyAndClearExpectations(service()); |
- EXPECT_FALSE(registrar.IsEmpty()); |
- |
- // Test auto-removing. |
- EXPECT_CALL(*service(), |
- RemovePrefObserver(Eq(std::string("test.pref.1")), observer())); |
-} |
- |
-TEST_F(PrefChangeRegistrarTest, RemoveAll) { |
- PrefChangeRegistrar registrar; |
- registrar.Init(service()); |
- |
- EXPECT_CALL(*service(), |
- AddPrefObserver(Eq(std::string("test.pref.1")), observer())); |
- EXPECT_CALL(*service(), |
- AddPrefObserver(Eq(std::string("test.pref.2")), observer())); |
- registrar.Add("test.pref.1", observer()); |
- registrar.Add("test.pref.2", observer()); |
- Mock::VerifyAndClearExpectations(service()); |
- |
- EXPECT_CALL(*service(), |
- RemovePrefObserver(Eq(std::string("test.pref.1")), observer())); |
- EXPECT_CALL(*service(), |
- RemovePrefObserver(Eq(std::string("test.pref.2")), observer())); |
- registrar.RemoveAll(); |
- EXPECT_TRUE(registrar.IsEmpty()); |
- |
- // Explicitly check the expectations now to make sure that the RemoveAll |
- // worked (rather than the registrar destructor doing the work). |
- Mock::VerifyAndClearExpectations(service()); |
-} |
- |
-class ObserveSetOfPreferencesTest : public testing::Test { |
- public: |
- virtual void SetUp() { |
- pref_service_.reset(new TestingPrefService); |
- pref_service_->RegisterStringPref(prefs::kHomePage, |
- "http://google.com", |
- PrefService::UNSYNCABLE_PREF); |
- pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, |
- false, |
- PrefService::UNSYNCABLE_PREF); |
- pref_service_->RegisterStringPref(prefs::kApplicationLocale, |
- "", |
- PrefService::UNSYNCABLE_PREF); |
- } |
- |
- PrefChangeRegistrar* CreatePrefChangeRegistrar( |
- content::NotificationObserver* observer) { |
- PrefChangeRegistrar* pref_set = new PrefChangeRegistrar(); |
- pref_set->Init(pref_service_.get()); |
- pref_set->Add(prefs::kHomePage, observer); |
- pref_set->Add(prefs::kHomePageIsNewTabPage, observer); |
- return pref_set; |
- } |
- |
- scoped_ptr<TestingPrefService> pref_service_; |
-}; |
- |
-TEST_F(ObserveSetOfPreferencesTest, IsObserved) { |
- scoped_ptr<PrefChangeRegistrar> pref_set(CreatePrefChangeRegistrar(NULL)); |
- EXPECT_TRUE(pref_set->IsObserved(prefs::kHomePage)); |
- EXPECT_TRUE(pref_set->IsObserved(prefs::kHomePageIsNewTabPage)); |
- EXPECT_FALSE(pref_set->IsObserved(prefs::kApplicationLocale)); |
-} |
- |
-TEST_F(ObserveSetOfPreferencesTest, IsManaged) { |
- scoped_ptr<PrefChangeRegistrar> pref_set(CreatePrefChangeRegistrar(NULL)); |
- EXPECT_FALSE(pref_set->IsManaged()); |
- pref_service_->SetManagedPref(prefs::kHomePage, |
- Value::CreateStringValue("http://crbug.com")); |
- EXPECT_TRUE(pref_set->IsManaged()); |
- pref_service_->SetManagedPref(prefs::kHomePageIsNewTabPage, |
- Value::CreateBooleanValue(true)); |
- EXPECT_TRUE(pref_set->IsManaged()); |
- pref_service_->RemoveManagedPref(prefs::kHomePage); |
- EXPECT_TRUE(pref_set->IsManaged()); |
- pref_service_->RemoveManagedPref(prefs::kHomePageIsNewTabPage); |
- EXPECT_FALSE(pref_set->IsManaged()); |
-} |
- |
-MATCHER_P(PrefNameDetails, name, "details references named preference") { |
- std::string* pstr = |
- reinterpret_cast<const content::Details<std::string>&>(arg).ptr(); |
- return pstr && *pstr == name; |
-} |
- |
-TEST_F(ObserveSetOfPreferencesTest, Observe) { |
- using testing::_; |
- using testing::Mock; |
- |
- content::MockNotificationObserver observer; |
- scoped_ptr<PrefChangeRegistrar> pref_set( |
- CreatePrefChangeRegistrar(&observer)); |
- |
- EXPECT_CALL(observer, |
- Observe(int(chrome::NOTIFICATION_PREF_CHANGED), |
- content::Source<PrefService>(pref_service_.get()), |
- PrefNameDetails(prefs::kHomePage))); |
- pref_service_->SetUserPref(prefs::kHomePage, |
- Value::CreateStringValue("http://crbug.com")); |
- Mock::VerifyAndClearExpectations(&observer); |
- |
- EXPECT_CALL(observer, |
- Observe(int(chrome::NOTIFICATION_PREF_CHANGED), |
- content::Source<PrefService>(pref_service_.get()), |
- PrefNameDetails(prefs::kHomePageIsNewTabPage))); |
- pref_service_->SetUserPref(prefs::kHomePageIsNewTabPage, |
- Value::CreateBooleanValue(true)); |
- Mock::VerifyAndClearExpectations(&observer); |
- |
- EXPECT_CALL(observer, Observe(_, _, _)).Times(0); |
- pref_service_->SetUserPref(prefs::kApplicationLocale, |
- Value::CreateStringValue("en_US.utf8")); |
- Mock::VerifyAndClearExpectations(&observer); |
-} |