OLD | NEW |
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 "base/memory/ref_counted.h" | 6 #include "base/memory/ref_counted.h" |
7 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 7 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
8 #include "chrome/browser/policy/policy_map.h" | 8 #include "chrome/browser/policy/policy_map.h" |
9 #include "chrome/browser/policy/policy_service_impl.h" | 9 #include "chrome/browser/policy/policy_service_impl.h" |
10 #include "chrome/browser/prefs/browser_prefs.h" | 10 #include "chrome/browser/prefs/browser_prefs.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 ASSERT_TRUE(dict.GetBypassList(&actual)); | 61 ASSERT_TRUE(dict.GetBypassList(&actual)); |
62 EXPECT_EQ(expected, actual); | 62 EXPECT_EQ(expected, actual); |
63 } else { | 63 } else { |
64 EXPECT_FALSE(dict.GetBypassList(&actual)); | 64 EXPECT_FALSE(dict.GetBypassList(&actual)); |
65 } | 65 } |
66 } | 66 } |
67 | 67 |
68 void assertProxyModeWithoutParams(const ProxyConfigDictionary& dict, | 68 void assertProxyModeWithoutParams(const ProxyConfigDictionary& dict, |
69 ProxyPrefs::ProxyMode proxy_mode) { | 69 ProxyPrefs::ProxyMode proxy_mode) { |
70 assertProxyMode(dict, proxy_mode); | 70 assertProxyMode(dict, proxy_mode); |
71 assertProxyServer(dict, ""); | 71 assertProxyServer(dict, std::string()); |
72 assertPacUrl(dict, ""); | 72 assertPacUrl(dict, std::string()); |
73 assertBypassList(dict, ""); | 73 assertBypassList(dict, std::string()); |
74 } | 74 } |
75 | 75 |
76 } // namespace | 76 } // namespace |
77 | 77 |
78 class ProxyPolicyTest : public testing::Test { | 78 class ProxyPolicyTest : public testing::Test { |
79 protected: | 79 protected: |
80 ProxyPolicyTest() | 80 ProxyPolicyTest() |
81 : command_line_(CommandLine::NO_PROGRAM) {} | 81 : command_line_(CommandLine::NO_PROGRAM) {} |
82 | 82 |
83 virtual void SetUp() OVERRIDE { | 83 virtual void SetUp() OVERRIDE { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 123 policy.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
124 Value::CreateStringValue("ghi")); | 124 Value::CreateStringValue("ghi")); |
125 provider_.UpdateChromePolicy(policy); | 125 provider_.UpdateChromePolicy(policy); |
126 | 126 |
127 // First verify that command-line options are set correctly when | 127 // First verify that command-line options are set correctly when |
128 // there is no policy in effect. | 128 // there is no policy in effect. |
129 scoped_ptr<PrefService> prefs(CreatePrefService(false)); | 129 scoped_ptr<PrefService> prefs(CreatePrefService(false)); |
130 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); | 130 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); |
131 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); | 131 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); |
132 assertProxyServer(dict, "789"); | 132 assertProxyServer(dict, "789"); |
133 assertPacUrl(dict, ""); | 133 assertPacUrl(dict, std::string()); |
134 assertBypassList(dict, "123"); | 134 assertBypassList(dict, "123"); |
135 | 135 |
136 // Try a second time time with the managed PrefStore in place, the | 136 // Try a second time time with the managed PrefStore in place, the |
137 // manual proxy policy should have removed all traces of the command | 137 // manual proxy policy should have removed all traces of the command |
138 // line and replaced them with the policy versions. | 138 // line and replaced them with the policy versions. |
139 prefs.reset(CreatePrefService(true)); | 139 prefs.reset(CreatePrefService(true)); |
140 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); | 140 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); |
141 assertProxyMode(dict2, ProxyPrefs::MODE_FIXED_SERVERS); | 141 assertProxyMode(dict2, ProxyPrefs::MODE_FIXED_SERVERS); |
142 assertProxyServer(dict2, "ghi"); | 142 assertProxyServer(dict2, "ghi"); |
143 assertPacUrl(dict2, ""); | 143 assertPacUrl(dict2, std::string()); |
144 assertBypassList(dict2, "abc"); | 144 assertBypassList(dict2, "abc"); |
145 } | 145 } |
146 | 146 |
147 TEST_F(ProxyPolicyTest, OverridesUnrelatedCommandLineOptions) { | 147 TEST_F(ProxyPolicyTest, OverridesUnrelatedCommandLineOptions) { |
148 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123"); | 148 command_line_.AppendSwitchASCII(switches::kProxyBypassList, "123"); |
149 command_line_.AppendSwitchASCII(switches::kProxyServer, "789"); | 149 command_line_.AppendSwitchASCII(switches::kProxyServer, "789"); |
150 Value* mode_name = Value::CreateStringValue( | 150 Value* mode_name = Value::CreateStringValue( |
151 ProxyPrefs::kAutoDetectProxyModeName); | 151 ProxyPrefs::kAutoDetectProxyModeName); |
152 PolicyMap policy; | 152 PolicyMap policy; |
153 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 153 policy.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
154 mode_name); | 154 mode_name); |
155 provider_.UpdateChromePolicy(policy); | 155 provider_.UpdateChromePolicy(policy); |
156 | 156 |
157 // First verify that command-line options are set correctly when | 157 // First verify that command-line options are set correctly when |
158 // there is no policy in effect. | 158 // there is no policy in effect. |
159 scoped_ptr<PrefService> prefs(CreatePrefService(false)); | 159 scoped_ptr<PrefService> prefs(CreatePrefService(false)); |
160 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); | 160 ProxyConfigDictionary dict(prefs->GetDictionary(prefs::kProxy)); |
161 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); | 161 assertProxyMode(dict, ProxyPrefs::MODE_FIXED_SERVERS); |
162 assertProxyServer(dict, "789"); | 162 assertProxyServer(dict, "789"); |
163 assertPacUrl(dict, ""); | 163 assertPacUrl(dict, std::string()); |
164 assertBypassList(dict, "123"); | 164 assertBypassList(dict, "123"); |
165 | 165 |
166 // Try a second time time with the managed PrefStore in place, the | 166 // Try a second time time with the managed PrefStore in place, the |
167 // no proxy policy should have removed all traces of the command | 167 // no proxy policy should have removed all traces of the command |
168 // line proxy settings, even though they were not the specific one | 168 // line proxy settings, even though they were not the specific one |
169 // set in policy. | 169 // set in policy. |
170 prefs.reset(CreatePrefService(true)); | 170 prefs.reset(CreatePrefService(true)); |
171 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); | 171 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); |
172 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT); | 172 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_AUTO_DETECT); |
173 } | 173 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 | 212 |
213 // Try a second time time with the managed PrefStore in place, the | 213 // Try a second time time with the managed PrefStore in place, the |
214 // auto-detect should be overridden. The default pref store must be | 214 // auto-detect should be overridden. The default pref store must be |
215 // in place with the appropriate default value for this to work. | 215 // in place with the appropriate default value for this to work. |
216 prefs.reset(CreatePrefService(true)); | 216 prefs.reset(CreatePrefService(true)); |
217 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); | 217 ProxyConfigDictionary dict2(prefs->GetDictionary(prefs::kProxy)); |
218 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_DIRECT); | 218 assertProxyModeWithoutParams(dict2, ProxyPrefs::MODE_DIRECT); |
219 } | 219 } |
220 | 220 |
221 } // namespace policy | 221 } // namespace policy |
OLD | NEW |