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

Side by Side Diff: chrome/browser/policy/managed_prefs_banner_base_unittest.cc

Issue 7342009: Show a different banner in chrome://settings for extension-controlled settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 5 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/policy/managed_prefs_banner_base.h"
6 #include "chrome/common/pref_names.h"
7 #include "chrome/test/testing_pref_service.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace policy {
12
13 // Tests whether managed preferences banner base functionality correctly
14 // determines banner visiblity.
15 class ManagedPrefsBannerBaseTest : public testing::Test {
16 public:
17 virtual void SetUp() {
18 user_prefs_.reset(new TestingPrefService);
19 user_prefs_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage,
20 false,
21 PrefService::UNSYNCABLE_PREF);
22 user_prefs_->RegisterBooleanPref(prefs::kSearchSuggestEnabled,
23 false,
24 PrefService::UNSYNCABLE_PREF);
25 local_state_.reset(new TestingPrefService);
26 local_state_->RegisterBooleanPref(prefs::kHomePageIsNewTabPage,
27 false);
28 local_state_->RegisterBooleanPref(prefs::kMetricsReportingEnabled,
29 false);
30 }
31
32 scoped_ptr<TestingPrefService> local_state_;
33 scoped_ptr<TestingPrefService> user_prefs_;
34 };
35
36 TEST_F(ManagedPrefsBannerBaseTest, VisibilityTest) {
37 ManagedPrefsBannerBase banner(local_state_.get(),
38 user_prefs_.get(),
39 OPTIONS_PAGE_ADVANCED);
40 banner.AddLocalStatePref(prefs::kMetricsReportingEnabled);
41 EXPECT_FALSE(banner.DetermineVisibility());
42 user_prefs_->SetManagedPref(prefs::kHomePageIsNewTabPage,
43 Value::CreateBooleanValue(true));
44 EXPECT_FALSE(banner.DetermineVisibility());
45 user_prefs_->SetUserPref(prefs::kSearchSuggestEnabled,
46 Value::CreateBooleanValue(true));
47 EXPECT_FALSE(banner.DetermineVisibility());
48 user_prefs_->SetManagedPref(prefs::kSearchSuggestEnabled,
49 Value::CreateBooleanValue(false));
50 EXPECT_TRUE(banner.DetermineVisibility());
51 local_state_->SetManagedPref(prefs::kMetricsReportingEnabled,
52 Value::CreateBooleanValue(true));
53 EXPECT_TRUE(banner.DetermineVisibility());
54 user_prefs_->RemoveManagedPref(prefs::kSearchSuggestEnabled);
55 EXPECT_TRUE(banner.DetermineVisibility());
56 local_state_->RemoveManagedPref(prefs::kMetricsReportingEnabled);
57 EXPECT_FALSE(banner.DetermineVisibility());
58 local_state_->SetManagedPref(prefs::kHomePageIsNewTabPage,
59 Value::CreateBooleanValue(true));
60 EXPECT_FALSE(banner.DetermineVisibility());
61 }
62
63 // Mock class that allows to capture the notification callback.
64 class ManagedPrefsBannerBaseMock : public ManagedPrefsBannerBase {
65 public:
66 ManagedPrefsBannerBaseMock(PrefService* local_state,
67 PrefService* user_prefs,
68 OptionsPage page)
69 : ManagedPrefsBannerBase(local_state, user_prefs, page) { }
70
71 MOCK_METHOD0(OnUpdateVisibility, void());
72 };
73
74 TEST_F(ManagedPrefsBannerBaseTest, NotificationTest) {
75 ManagedPrefsBannerBaseMock banner(local_state_.get(),
76 user_prefs_.get(),
77 OPTIONS_PAGE_ADVANCED);
78 banner.AddLocalStatePref(prefs::kMetricsReportingEnabled);
79 EXPECT_CALL(banner, OnUpdateVisibility()).Times(0);
80 user_prefs_->SetBoolean(prefs::kHomePageIsNewTabPage, true);
81 EXPECT_CALL(banner, OnUpdateVisibility()).Times(1);
82 user_prefs_->SetManagedPref(prefs::kSearchSuggestEnabled,
83 Value::CreateBooleanValue(false));
84 EXPECT_CALL(banner, OnUpdateVisibility()).Times(1);
85 local_state_->SetManagedPref(prefs::kMetricsReportingEnabled,
86 Value::CreateBooleanValue(true));
87 }
88
89 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/managed_prefs_banner_base.cc ('k') | chrome/browser/resources/options/browser_options.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698