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

Side by Side Diff: chrome/browser/prefs/proxy_policy_unittest.cc

Issue 10386097: Refactored ConfigurationPolicyProvider to provide PolicyBundles instead of PolicyMaps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 8 years, 7 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
« no previous file with comments | « chrome/browser/policy/policy_service_unittest.cc ('k') | chrome/browser/ui/webui/policy_ui.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/command_line.h" 5 #include "base/command_line.h"
6 #include "chrome/browser/policy/mock_configuration_policy_provider.h" 6 #include "chrome/browser/policy/mock_configuration_policy_provider.h"
7 #include "chrome/browser/policy/policy_map.h" 7 #include "chrome/browser/policy/policy_map.h"
8 #include "chrome/browser/policy/policy_service_impl.h" 8 #include "chrome/browser/policy/policy_service_impl.h"
9 #include "chrome/browser/prefs/browser_prefs.h" 9 #include "chrome/browser/prefs/browser_prefs.h"
10 #include "chrome/browser/prefs/pref_service.h" 10 #include "chrome/browser/prefs/pref_service.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 } 72 }
73 73
74 } // namespace 74 } // namespace
75 75
76 class ProxyPolicyTest : public testing::Test { 76 class ProxyPolicyTest : public testing::Test {
77 protected: 77 protected:
78 ProxyPolicyTest() 78 ProxyPolicyTest()
79 : command_line_(CommandLine::NO_PROGRAM) {} 79 : command_line_(CommandLine::NO_PROGRAM) {}
80 80
81 virtual void SetUp() OVERRIDE { 81 virtual void SetUp() OVERRIDE {
82 EXPECT_CALL(provider_, ProvideInternal(_))
83 .WillRepeatedly(CopyPolicyMap(&policy_));
84 EXPECT_CALL(provider_, IsInitializationComplete()) 82 EXPECT_CALL(provider_, IsInitializationComplete())
85 .WillRepeatedly(Return(true)); 83 .WillRepeatedly(Return(true));
86 84
87 PolicyServiceImpl::Providers providers; 85 PolicyServiceImpl::Providers providers;
88 providers.push_back(&provider_); 86 providers.push_back(&provider_);
89 policy_service_.reset(new PolicyServiceImpl(providers)); 87 policy_service_.reset(new PolicyServiceImpl(providers));
90 } 88 }
91 89
92 PrefService* CreatePrefService(bool with_managed_policies) { 90 PrefService* CreatePrefService(bool with_managed_policies) {
93 PrefServiceMockBuilder builder; 91 PrefServiceMockBuilder builder;
94 builder.WithCommandLine(&command_line_); 92 builder.WithCommandLine(&command_line_);
95 if (with_managed_policies) 93 if (with_managed_policies)
96 builder.WithManagedPolicies(policy_service_.get()); 94 builder.WithManagedPolicies(policy_service_.get());
97 PrefService* prefs = builder.Create(); 95 PrefService* prefs = builder.Create();
98 browser::RegisterUserPrefs(prefs); 96 browser::RegisterUserPrefs(prefs);
99 return prefs; 97 return prefs;
100 } 98 }
101 99
102 CommandLine command_line_; 100 CommandLine command_line_;
103 PolicyMap policy_;
104 MockConfigurationPolicyProvider provider_; 101 MockConfigurationPolicyProvider provider_;
105 scoped_ptr<PolicyServiceImpl> policy_service_; 102 scoped_ptr<PolicyServiceImpl> policy_service_;
106 }; 103 };
107 104
108 TEST_F(ProxyPolicyTest, OverridesCommandLineOptions) { 105 TEST_F(ProxyPolicyTest, OverridesCommandLineOptions) {
109 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123"); 106 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123");
110 command_line_.AppendSwitchASCII(switches::kProxyServer, "789"); 107 command_line_.AppendSwitchASCII(switches::kProxyServer, "789");
111 Value* mode_name = Value::CreateStringValue( 108 Value* mode_name = Value::CreateStringValue(
112 ProxyPrefs::kFixedServersProxyModeName); 109 ProxyPrefs::kFixedServersProxyModeName);
113 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 110 PolicyMap policy;
114 mode_name); 111 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
115 policy_.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 112 mode_name);
116 Value::CreateStringValue("abc")); 113 policy.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
117 policy_.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 114 Value::CreateStringValue("abc"));
118 Value::CreateStringValue("ghi")); 115 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
119 provider_.NotifyPolicyUpdated(); 116 Value::CreateStringValue("ghi"));
117 provider_.UpdateChromePolicy(policy);
120 118
121 // First verify that command-line options are set correctly when 119 // First verify that command-line options are set correctly when
122 // there is no policy in effect. 120 // there is no policy in effect.
123 scoped_ptr<PrefService> prefs(CreatePrefService(false)); 121 scoped_ptr<PrefService> prefs(CreatePrefService(false));
124 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); 122 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy));
125 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); 123 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS);
126 assertProxyServer(dict, "789"); 124 assertProxyServer(dict, "789");
127 assertPacUrl(dict, ""); 125 assertPacUrl(dict, "");
128 assertBypassList(dict, "123"); 126 assertBypassList(dict, "123");
129 127
130 // Try a second time time with the managed PrefStore in place, the 128 // Try a second time time with the managed PrefStore in place, the
131 // manual proxy policy should have removed all traces of the command 129 // manual proxy policy should have removed all traces of the command
132 // line and replaced them with the policy versions. 130 // line and replaced them with the policy versions.
133 prefs.reset(CreatePrefService(true)); 131 prefs.reset(CreatePrefService(true));
134 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); 132 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy));
135 assertProxyMode(dict2, ProxyPrefs::MODE_FIXED_SERVERS); 133 assertProxyMode(dict2, ProxyPrefs::MODE_FIXED_SERVERS);
136 assertProxyServer(dict2, "ghi"); 134 assertProxyServer(dict2, "ghi");
137 assertPacUrl(dict2, ""); 135 assertPacUrl(dict2, "");
138 assertBypassList(dict2, "abc"); 136 assertBypassList(dict2, "abc");
139 } 137 }
140 138
141 TEST_F(ProxyPolicyTest, OverridesUnrelatedCommandLineOptions) { 139 TEST_F(ProxyPolicyTest, OverridesUnrelatedCommandLineOptions) {
142 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123"); 140 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123");
143 command_line_.AppendSwitchASCII(switches::kProxyServer, "789"); 141 command_line_.AppendSwitchASCII(switches::kProxyServer, "789");
144 Value* mode_name = Value::CreateStringValue( 142 Value* mode_name = Value::CreateStringValue(
145 ProxyPrefs::kAutoDetectProxyModeName); 143 ProxyPrefs::kAutoDetectProxyModeName);
146 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 144 PolicyMap policy;
147 mode_name); 145 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
148 provider_.NotifyPolicyUpdated(); 146 mode_name);
147 provider_.UpdateChromePolicy(policy);
149 148
150 // First verify that command-line options are set correctly when 149 // First verify that command-line options are set correctly when
151 // there is no policy in effect. 150 // there is no policy in effect.
152 scoped_ptr<PrefService> prefs(CreatePrefService(false)); 151 scoped_ptr<PrefService> prefs(CreatePrefService(false));
153 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); 152 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy));
154 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); 153 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS);
155 assertProxyServer(dict, "789"); 154 assertProxyServer(dict, "789");
156 assertPacUrl(dict, ""); 155 assertPacUrl(dict, "");
157 assertBypassList(dict, "123"); 156 assertBypassList(dict, "123");
158 157
159 // Try a second time time with the managed PrefStore in place, the 158 // Try a second time time with the managed PrefStore in place, the
160 // no proxy policy should have removed all traces of the command 159 // no proxy policy should have removed all traces of the command
161 // line proxy settings, even though they were not the specific one 160 // line proxy settings, even though they were not the specific one
162 // set in policy. 161 // set in policy.
163 prefs.reset(CreatePrefService(true)); 162 prefs.reset(CreatePrefService(true));
164 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); 163 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy));
165 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT); 164 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT);
166 } 165 }
167 166
168 TEST_F(ProxyPolicyTest, OverridesCommandLineNoProxy) { 167 TEST_F(ProxyPolicyTest, OverridesCommandLineNoProxy) {
169 command_line_.AppendSwitch(switches::kNoProxyServer); 168 command_line_.AppendSwitch(switches::kNoProxyServer);
170 Value* mode_name = Value::CreateStringValue( 169 Value* mode_name = Value::CreateStringValue(
171 ProxyPrefs::kAutoDetectProxyModeName); 170 ProxyPrefs::kAutoDetectProxyModeName);
172 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 171 PolicyMap policy;
173 mode_name); 172 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
174 provider_.NotifyPolicyUpdated(); 173 mode_name);
174 provider_.UpdateChromePolicy(policy);
175 175
176 // First verify that command-line options are set correctly when 176 // First verify that command-line options are set correctly when
177 // there is no policy in effect. 177 // there is no policy in effect.
178 scoped_ptr<PrefService> prefs(CreatePrefService(false)); 178 scoped_ptr<PrefService> prefs(CreatePrefService(false));
179 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); 179 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy));
180 assertProxyModeWithoutParams(dict, ProxyPrefs::MODE_DIRECT); 180 assertProxyModeWithoutParams(dict, ProxyPrefs::MODE_DIRECT);
181 181
182 // Try a second time time with the managed PrefStore in place, the 182 // Try a second time time with the managed PrefStore in place, the
183 // auto-detect should be overridden. The default pref store must be 183 // auto-detect should be overridden. The default pref store must be
184 // in place with the appropriate default value for this to work. 184 // in place with the appropriate default value for this to work.
185 prefs.reset(CreatePrefService(true)); 185 prefs.reset(CreatePrefService(true));
186 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); 186 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy));
187 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT); 187 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT);
188 } 188 }
189 189
190 TEST_F(ProxyPolicyTest, OverridesCommandLineAutoDetect) { 190 TEST_F(ProxyPolicyTest, OverridesCommandLineAutoDetect) {
191 command_line_.AppendSwitch(switches::kProxyAutoDetect); 191 command_line_.AppendSwitch(switches::kProxyAutoDetect);
192 Value* mode_name = Value::CreateStringValue( 192 Value* mode_name = Value::CreateStringValue(
193 ProxyPrefs::kDirectProxyModeName); 193 ProxyPrefs::kDirectProxyModeName);
194 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 194 PolicyMap policy;
195 mode_name); 195 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
196 provider_.NotifyPolicyUpdated(); 196 mode_name);
197 provider_.UpdateChromePolicy(policy);
197 198
198 // First verify that the auto-detect is set if there is no managed 199 // First verify that the auto-detect is set if there is no managed
199 // PrefStore. 200 // PrefStore.
200 scoped_ptr<PrefService> prefs(CreatePrefService(false)); 201 scoped_ptr<PrefService> prefs(CreatePrefService(false));
201 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); 202 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy));
202 assertProxyModeWithoutParams(dict, ProxyPrefs::MODE_AUTO_DETECT); 203 assertProxyModeWithoutParams(dict, ProxyPrefs::MODE_AUTO_DETECT);
203 204
204 // Try a second time time with the managed PrefStore in place, the 205 // Try a second time time with the managed PrefStore in place, the
205 // auto-detect should be overridden. The default pref store must be 206 // auto-detect should be overridden. The default pref store must be
206 // in place with the appropriate default value for this to work. 207 // in place with the appropriate default value for this to work.
207 prefs.reset(CreatePrefService(true)); 208 prefs.reset(CreatePrefService(true));
208 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); 209 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy));
209 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_DIRECT); 210 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_DIRECT);
210 } 211 }
211 212
212 } // namespace policy 213 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/policy_service_unittest.cc ('k') | chrome/browser/ui/webui/policy_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698