| 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 "chrome/browser/dummy_pref_store.h" | 5 #include "chrome/browser/dummy_pref_store.h" |
| 6 #include "chrome/browser/managed_prefs_banner_base.h" | 6 #include "chrome/browser/managed_prefs_banner_base.h" |
| 7 #include "chrome/browser/pref_service.h" | |
| 8 #include "chrome/common/pref_names.h" | 7 #include "chrome/common/pref_names.h" |
| 8 #include "chrome/test/testing_pref_service.h" |
| 9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 const wchar_t* kDummyPref = L"dummy"; | 14 const wchar_t* kDummyPref = L"dummy"; |
| 15 | 15 |
| 16 } // namespace | 16 } // namespace |
| 17 | 17 |
| 18 // Tests whether managed preferences banner base functionality correctly | 18 // Tests whether managed preferences banner base functionality correctly |
| 19 // determines banner visiblity. | 19 // determines banner visiblity. |
| 20 class ManagedPrefsBannerBaseTest : public testing::Test { | 20 class ManagedPrefsBannerBaseTest : public testing::Test { |
| 21 public: | 21 public: |
| 22 virtual void SetUp() { | 22 virtual void SetUp() { |
| 23 managed_prefs_ = new DummyPrefStore; | 23 pref_service_.reset(new TestingPrefService); |
| 24 extension_prefs_ = new DummyPrefStore; | |
| 25 command_line_prefs_ = new DummyPrefStore; | |
| 26 user_prefs_ = new DummyPrefStore; | |
| 27 default_prefs_ = new DummyPrefStore; | |
| 28 pref_service_.reset(new PrefService(new PrefValueStore(managed_prefs_, | |
| 29 extension_prefs_, | |
| 30 command_line_prefs_, | |
| 31 user_prefs_, | |
| 32 default_prefs_))); | |
| 33 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com"); | 24 pref_service_->RegisterStringPref(prefs::kHomePage, "http://google.com"); |
| 34 pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, false); | 25 pref_service_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, false); |
| 35 pref_service_->RegisterBooleanPref(kDummyPref, false); | 26 pref_service_->RegisterBooleanPref(kDummyPref, false); |
| 36 } | 27 } |
| 37 | 28 |
| 38 scoped_ptr<PrefService> pref_service_; | 29 scoped_ptr<TestingPrefService> pref_service_; |
| 39 DummyPrefStore* managed_prefs_; | |
| 40 DummyPrefStore* extension_prefs_; | |
| 41 DummyPrefStore* command_line_prefs_; | |
| 42 DummyPrefStore* user_prefs_; | |
| 43 DummyPrefStore* default_prefs_; | |
| 44 }; | 30 }; |
| 45 | 31 |
| 46 TEST_F(ManagedPrefsBannerBaseTest, VisibilityTest) { | 32 TEST_F(ManagedPrefsBannerBaseTest, VisibilityTest) { |
| 47 ManagedPrefsBannerBase banner(pref_service_.get(), OPTIONS_PAGE_GENERAL); | 33 ManagedPrefsBannerBase banner(pref_service_.get(), OPTIONS_PAGE_GENERAL); |
| 48 EXPECT_FALSE(banner.DetermineVisibility()); | 34 EXPECT_FALSE(banner.DetermineVisibility()); |
| 49 managed_prefs_->prefs()->SetBoolean(kDummyPref, true); | 35 pref_service_->SetManagedPref(kDummyPref, Value::CreateBooleanValue(true)); |
| 50 EXPECT_FALSE(banner.DetermineVisibility()); | 36 EXPECT_FALSE(banner.DetermineVisibility()); |
| 51 user_prefs_->prefs()->SetString(prefs::kHomePage, "http://foo.com"); | 37 pref_service_->SetUserPref(prefs::kHomePage, |
| 38 Value::CreateStringValue("http://foo.com")); |
| 52 EXPECT_FALSE(banner.DetermineVisibility()); | 39 EXPECT_FALSE(banner.DetermineVisibility()); |
| 53 managed_prefs_->prefs()->SetString(prefs::kHomePage, "http://bar.com"); | 40 pref_service_->SetManagedPref(prefs::kHomePage, |
| 41 Value::CreateStringValue("http://bar.com")); |
| 54 EXPECT_TRUE(banner.DetermineVisibility()); | 42 EXPECT_TRUE(banner.DetermineVisibility()); |
| 55 } | 43 } |
| 56 | 44 |
| 57 // Mock class that allows to capture the notification callback. | 45 // Mock class that allows to capture the notification callback. |
| 58 class ManagedPrefsBannerBaseMock : public ManagedPrefsBannerBase { | 46 class ManagedPrefsBannerBaseMock : public ManagedPrefsBannerBase { |
| 59 public: | 47 public: |
| 60 ManagedPrefsBannerBaseMock(PrefService* pref_service, OptionsPage page) | 48 ManagedPrefsBannerBaseMock(PrefService* pref_service, OptionsPage page) |
| 61 : ManagedPrefsBannerBase(pref_service, page) { } | 49 : ManagedPrefsBannerBase(pref_service, page) { } |
| 62 | 50 |
| 63 MOCK_METHOD0(OnUpdateVisibility, void()); | 51 MOCK_METHOD0(OnUpdateVisibility, void()); |
| 64 }; | 52 }; |
| 65 | 53 |
| 66 TEST_F(ManagedPrefsBannerBaseTest, NotificationTest) { | 54 TEST_F(ManagedPrefsBannerBaseTest, NotificationTest) { |
| 67 ManagedPrefsBannerBaseMock banner(pref_service_.get(), OPTIONS_PAGE_GENERAL); | 55 ManagedPrefsBannerBaseMock banner(pref_service_.get(), OPTIONS_PAGE_GENERAL); |
| 68 EXPECT_CALL(banner, OnUpdateVisibility()).Times(0); | 56 EXPECT_CALL(banner, OnUpdateVisibility()).Times(0); |
| 69 pref_service_->SetBoolean(kDummyPref, true); | 57 pref_service_->SetBoolean(kDummyPref, true); |
| 70 EXPECT_CALL(banner, OnUpdateVisibility()).Times(1); | 58 EXPECT_CALL(banner, OnUpdateVisibility()).Times(1); |
| 71 pref_service_->SetString(prefs::kHomePage, "http://foo.com"); | 59 pref_service_->SetString(prefs::kHomePage, "http://foo.com"); |
| 72 } | 60 } |
| OLD | NEW |