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 <gtest/gtest.h> | |
6 | |
7 #include "base/file_path.h" | 5 #include "base/file_path.h" |
8 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 6 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
9 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 7 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
| 8 #include "chrome/common/chrome_switches.h" |
| 9 #include "chrome/common/notification_service.h" |
10 #include "chrome/common/pref_names.h" | 10 #include "chrome/common/pref_names.h" |
11 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/pref_store_observer_mock.h" |
| 12 #include "testing/gmock/include/gmock/gmock.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" |
| 14 |
| 15 using testing::_; |
| 16 using testing::Mock; |
12 | 17 |
13 namespace policy { | 18 namespace policy { |
14 | 19 |
15 // Holds a set of test parameters, consisting of pref name and policy type. | 20 // Holds a set of test parameters, consisting of pref name and policy type. |
16 class TypeAndName { | 21 class TypeAndName { |
17 public: | 22 public: |
18 TypeAndName(ConfigurationPolicyType type, const char* pref_name) | 23 TypeAndName(ConfigurationPolicyType type, const char* pref_name) |
19 : type_(type), | 24 : type_(type), |
20 pref_name_(pref_name) {} | 25 pref_name_(pref_name) {} |
21 | 26 |
22 ConfigurationPolicyType type() const { return type_; } | 27 ConfigurationPolicyType type() const { return type_; } |
23 const char* pref_name() const { return pref_name_; } | 28 const char* pref_name() const { return pref_name_; } |
24 | 29 |
25 private: | 30 private: |
26 ConfigurationPolicyType type_; | 31 ConfigurationPolicyType type_; |
27 const char* pref_name_; | 32 const char* pref_name_; |
28 }; | 33 }; |
29 | 34 |
30 template<typename TESTBASE> | 35 template<typename TESTBASE> |
31 class ConfigurationPolicyPrefStoreTestBase : public TESTBASE { | 36 class ConfigurationPolicyPrefStoreTestBase : public TESTBASE { |
32 protected: | 37 protected: |
33 ConfigurationPolicyPrefStoreTestBase() | 38 ConfigurationPolicyPrefStoreTestBase() |
34 : provider_(), | 39 : provider_(), |
35 store_(&provider_) {} | 40 store_(&provider_) {} |
36 | 41 |
| 42 void RefreshPolicy() { |
| 43 NotificationService::current()->Notify( |
| 44 NotificationType::POLICY_CHANGED, |
| 45 Source<ConfigurationPolicyProvider>(&provider_), |
| 46 NotificationService::NoDetails()); |
| 47 } |
| 48 |
37 MockConfigurationPolicyProvider provider_; | 49 MockConfigurationPolicyProvider provider_; |
38 ConfigurationPolicyPrefStore store_; | 50 ConfigurationPolicyPrefStore store_; |
39 }; | 51 }; |
40 | 52 |
41 // Test cases for list-valued policy settings. | 53 // Test cases for list-valued policy settings. |
42 class ConfigurationPolicyPrefStoreListTest | 54 class ConfigurationPolicyPrefStoreListTest |
43 : public ConfigurationPolicyPrefStoreTestBase< | 55 : public ConfigurationPolicyPrefStoreTestBase< |
44 testing::TestWithParam<TypeAndName> > { | 56 testing::TestWithParam<TypeAndName> > { |
45 }; | 57 }; |
46 | 58 |
47 TEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) { | 59 TEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) { |
48 ListValue* list = NULL; | 60 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
49 EXPECT_FALSE(store_.prefs()->GetList(GetParam().pref_name(), &list)); | 61 store_.GetValue(GetParam().pref_name(), NULL)); |
50 } | 62 } |
51 | 63 |
52 TEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) { | 64 TEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) { |
53 ListValue* in_value = new ListValue(); | 65 ListValue* in_value = new ListValue(); |
54 in_value->Append(Value::CreateStringValue("test1")); | 66 in_value->Append(Value::CreateStringValue("test1")); |
55 in_value->Append(Value::CreateStringValue("test2,")); | 67 in_value->Append(Value::CreateStringValue("test2,")); |
56 store_.Apply(GetParam().type(), in_value); | 68 provider_.AddPolicy(GetParam().type(), in_value); |
57 ListValue* list = NULL; | 69 RefreshPolicy(); |
58 EXPECT_TRUE(store_.prefs()->GetList(GetParam().pref_name(), &list)); | 70 Value* value; |
59 ListValue::const_iterator current(list->begin()); | 71 EXPECT_EQ(PrefStore::READ_OK, |
60 const ListValue::const_iterator end(list->end()); | 72 store_.GetValue(GetParam().pref_name(), &value)); |
61 ASSERT_TRUE(current != end); | 73 EXPECT_TRUE(in_value->Equals(value)); |
62 std::string value; | |
63 (*current)->GetAsString(&value); | |
64 EXPECT_EQ("test1", value); | |
65 ++current; | |
66 ASSERT_TRUE(current != end); | |
67 (*current)->GetAsString(&value); | |
68 EXPECT_EQ("test2,", value); | |
69 ++current; | |
70 EXPECT_TRUE(current == end); | |
71 } | 74 } |
72 | 75 |
73 INSTANTIATE_TEST_CASE_P( | 76 INSTANTIATE_TEST_CASE_P( |
74 ConfigurationPolicyPrefStoreListTestInstance, | 77 ConfigurationPolicyPrefStoreListTestInstance, |
75 ConfigurationPolicyPrefStoreListTest, | 78 ConfigurationPolicyPrefStoreListTest, |
76 testing::Values( | 79 testing::Values( |
77 TypeAndName(kPolicyURLsToRestoreOnStartup, | 80 TypeAndName(kPolicyURLsToRestoreOnStartup, |
78 prefs::kURLsToRestoreOnStartup), | 81 prefs::kURLsToRestoreOnStartup), |
79 TypeAndName(kPolicyExtensionInstallAllowList, | 82 TypeAndName(kPolicyExtensionInstallAllowList, |
80 prefs::kExtensionInstallAllowList), | 83 prefs::kExtensionInstallAllowList), |
81 TypeAndName(kPolicyExtensionInstallDenyList, | 84 TypeAndName(kPolicyExtensionInstallDenyList, |
82 prefs::kExtensionInstallDenyList), | 85 prefs::kExtensionInstallDenyList), |
83 TypeAndName(kPolicyDisabledPlugins, | 86 TypeAndName(kPolicyDisabledPlugins, |
84 prefs::kPluginsPluginsBlacklist))); | 87 prefs::kPluginsPluginsBlacklist))); |
85 | 88 |
86 // Test cases for string-valued policy settings. | 89 // Test cases for string-valued policy settings. |
87 class ConfigurationPolicyPrefStoreStringTest | 90 class ConfigurationPolicyPrefStoreStringTest |
88 : public ConfigurationPolicyPrefStoreTestBase< | 91 : public ConfigurationPolicyPrefStoreTestBase< |
89 testing::TestWithParam<TypeAndName> > { | 92 testing::TestWithParam<TypeAndName> > { |
90 }; | 93 }; |
91 | 94 |
92 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { | 95 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { |
93 std::string result; | 96 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
94 EXPECT_FALSE(store_.prefs()->GetString(GetParam().pref_name(), &result)); | 97 store_.GetValue(GetParam().pref_name(), NULL)); |
95 } | 98 } |
96 | 99 |
97 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { | 100 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { |
98 store_.Apply(GetParam().type(), | 101 provider_.AddPolicy(GetParam().type(), |
99 Value::CreateStringValue("http://chromium.org")); | 102 Value::CreateStringValue("http://chromium.org")); |
| 103 RefreshPolicy(); |
| 104 Value* value; |
| 105 EXPECT_EQ(PrefStore::READ_OK, |
| 106 store_.GetValue(GetParam().pref_name(), &value)); |
| 107 ASSERT_TRUE(value); |
100 std::string result; | 108 std::string result; |
101 EXPECT_TRUE(store_.prefs()->GetString(GetParam().pref_name(), &result)); | 109 EXPECT_TRUE(value->GetAsString(&result)); |
102 EXPECT_EQ(result, "http://chromium.org"); | 110 EXPECT_EQ(result, "http://chromium.org"); |
103 } | 111 } |
104 | 112 |
105 INSTANTIATE_TEST_CASE_P( | 113 INSTANTIATE_TEST_CASE_P( |
106 ConfigurationPolicyPrefStoreStringTestInstance, | 114 ConfigurationPolicyPrefStoreStringTestInstance, |
107 ConfigurationPolicyPrefStoreStringTest, | 115 ConfigurationPolicyPrefStoreStringTest, |
108 testing::Values( | 116 testing::Values( |
109 TypeAndName(kPolicyHomePage, | 117 TypeAndName(kPolicyHomePage, |
110 prefs::kHomePage), | 118 prefs::kHomePage), |
111 TypeAndName(kPolicyProxyServer, | 119 TypeAndName(kPolicyProxyServer, |
(...skipping 15 matching lines...) Expand all Loading... |
127 TypeAndName(kPolicyGSSAPILibraryName, | 135 TypeAndName(kPolicyGSSAPILibraryName, |
128 prefs::kGSSAPILibraryName))); | 136 prefs::kGSSAPILibraryName))); |
129 | 137 |
130 // Test cases for boolean-valued policy settings. | 138 // Test cases for boolean-valued policy settings. |
131 class ConfigurationPolicyPrefStoreBooleanTest | 139 class ConfigurationPolicyPrefStoreBooleanTest |
132 : public ConfigurationPolicyPrefStoreTestBase< | 140 : public ConfigurationPolicyPrefStoreTestBase< |
133 testing::TestWithParam<TypeAndName> > { | 141 testing::TestWithParam<TypeAndName> > { |
134 }; | 142 }; |
135 | 143 |
136 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { | 144 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { |
137 bool result = false; | 145 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
138 EXPECT_FALSE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result)); | 146 store_.GetValue(GetParam().pref_name(), NULL)); |
139 } | 147 } |
140 | 148 |
141 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { | 149 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { |
142 store_.Apply(GetParam().type(), Value::CreateBooleanValue(false)); | 150 provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(false)); |
| 151 RefreshPolicy(); |
| 152 Value* value; |
143 bool result = true; | 153 bool result = true; |
144 EXPECT_TRUE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result)); | 154 EXPECT_EQ(PrefStore::READ_OK, |
145 EXPECT_FALSE(result); | 155 store_.GetValue(GetParam().pref_name(), &value)); |
| 156 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
146 | 157 |
147 store_.Apply(GetParam().type(), Value::CreateBooleanValue(true)); | 158 provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(true)); |
| 159 RefreshPolicy(); |
148 result = false; | 160 result = false; |
149 EXPECT_TRUE(store_.prefs()->GetBoolean(GetParam().pref_name(), &result)); | 161 EXPECT_EQ(PrefStore::READ_OK, |
150 EXPECT_TRUE(result); | 162 store_.GetValue(GetParam().pref_name(), &value)); |
| 163 EXPECT_TRUE(FundamentalValue(true).Equals(value)); |
151 } | 164 } |
152 | 165 |
153 INSTANTIATE_TEST_CASE_P( | 166 INSTANTIATE_TEST_CASE_P( |
154 ConfigurationPolicyPrefStoreBooleanTestInstance, | 167 ConfigurationPolicyPrefStoreBooleanTestInstance, |
155 ConfigurationPolicyPrefStoreBooleanTest, | 168 ConfigurationPolicyPrefStoreBooleanTest, |
156 testing::Values( | 169 testing::Values( |
157 TypeAndName(kPolicyHomepageIsNewTabPage, | 170 TypeAndName(kPolicyHomepageIsNewTabPage, |
158 prefs::kHomePageIsNewTabPage), | 171 prefs::kHomePageIsNewTabPage), |
159 TypeAndName(kPolicyAlternateErrorPagesEnabled, | 172 TypeAndName(kPolicyAlternateErrorPagesEnabled, |
160 prefs::kAlternateErrorPagesEnabled), | 173 prefs::kAlternateErrorPagesEnabled), |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 prefs::kEnableScreenLock))); | 211 prefs::kEnableScreenLock))); |
199 #endif // defined(OS_CHROMEOS) | 212 #endif // defined(OS_CHROMEOS) |
200 | 213 |
201 // Test cases for integer-valued policy settings. | 214 // Test cases for integer-valued policy settings. |
202 class ConfigurationPolicyPrefStoreIntegerTest | 215 class ConfigurationPolicyPrefStoreIntegerTest |
203 : public ConfigurationPolicyPrefStoreTestBase< | 216 : public ConfigurationPolicyPrefStoreTestBase< |
204 testing::TestWithParam<TypeAndName> > { | 217 testing::TestWithParam<TypeAndName> > { |
205 }; | 218 }; |
206 | 219 |
207 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { | 220 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { |
208 int result = 0; | 221 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
209 EXPECT_FALSE(store_.prefs()->GetInteger(GetParam().pref_name(), &result)); | 222 store_.GetValue(GetParam().pref_name(), NULL)); |
210 } | 223 } |
211 | 224 |
212 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { | 225 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { |
213 store_.Apply(GetParam().type(), Value::CreateIntegerValue(2)); | 226 provider_.AddPolicy(GetParam().type(), Value::CreateIntegerValue(2)); |
214 int result = 0; | 227 RefreshPolicy(); |
215 EXPECT_TRUE(store_.prefs()->GetInteger(GetParam().pref_name(), &result)); | 228 Value* value = NULL; |
216 EXPECT_EQ(result, 2); | 229 EXPECT_EQ(PrefStore::READ_OK, |
| 230 store_.GetValue(GetParam().pref_name(), &value)); |
| 231 EXPECT_TRUE(FundamentalValue(2).Equals(value)); |
217 } | 232 } |
218 | 233 |
219 INSTANTIATE_TEST_CASE_P( | 234 INSTANTIATE_TEST_CASE_P( |
220 ConfigurationPolicyPrefStoreIntegerTestInstance, | 235 ConfigurationPolicyPrefStoreIntegerTestInstance, |
221 ConfigurationPolicyPrefStoreIntegerTest, | 236 ConfigurationPolicyPrefStoreIntegerTest, |
222 testing::Values( | 237 testing::Values( |
223 TypeAndName(kPolicyRestoreOnStartup, | 238 TypeAndName(kPolicyRestoreOnStartup, |
224 prefs::kRestoreOnStartup))); | 239 prefs::kRestoreOnStartup))); |
225 | 240 |
226 // Test cases for the proxy policy settings. | 241 // Test cases for the proxy policy settings. |
227 class ConfigurationPolicyPrefStoreProxyTest : public testing::Test { | 242 class ConfigurationPolicyPrefStoreProxyTest : public testing::Test { |
228 }; | 243 }; |
229 | 244 |
230 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { | 245 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { |
231 scoped_ptr<MockConfigurationPolicyProvider> provider( | 246 MockConfigurationPolicyProvider provider; |
232 new MockConfigurationPolicyProvider()); | 247 provider.AddPolicy(kPolicyProxyBypassList, |
233 provider->AddPolicy(kPolicyProxyBypassList, | 248 Value::CreateStringValue("http://chromium.org/override")); |
234 Value::CreateStringValue("http://chromium.org/override")); | 249 provider.AddPolicy(kPolicyProxyPacUrl, |
235 provider->AddPolicy(kPolicyProxyPacUrl, | 250 Value::CreateStringValue("http://short.org/proxy.pac")); |
236 Value::CreateStringValue("http://short.org/proxy.pac")); | 251 provider.AddPolicy(kPolicyProxyServer, |
237 provider->AddPolicy(kPolicyProxyServer, | 252 Value::CreateStringValue("chromium.org")); |
238 Value::CreateStringValue("chromium.org")); | 253 provider.AddPolicy(kPolicyProxyServerMode, |
239 provider->AddPolicy(kPolicyProxyServerMode, | 254 Value::CreateIntegerValue( |
240 Value::CreateIntegerValue( | 255 kPolicyManuallyConfiguredProxyMode)); |
241 kPolicyManuallyConfiguredProxyMode)); | |
242 | 256 |
243 ConfigurationPolicyPrefStore store(provider.get()); | 257 ConfigurationPolicyPrefStore store(&provider); |
244 | 258 |
245 std::string string_result; | 259 Value* value = NULL; |
246 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList, | 260 EXPECT_EQ(PrefStore::READ_OK, |
247 &string_result)); | 261 store.GetValue(prefs::kProxyBypassList, &value)); |
248 EXPECT_EQ("http://chromium.org/override", string_result); | 262 EXPECT_TRUE(StringValue("http://chromium.org/override").Equals(value)); |
249 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 263 EXPECT_EQ(PrefStore::READ_OK, |
250 EXPECT_EQ("http://short.org/proxy.pac", string_result); | 264 store.GetValue(prefs::kProxyPacUrl, &value)); |
251 EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 265 EXPECT_TRUE(StringValue("http://short.org/proxy.pac").Equals(value)); |
252 EXPECT_EQ("chromium.org", string_result); | 266 EXPECT_EQ(PrefStore::READ_OK, |
253 bool bool_result; | 267 store.GetValue(prefs::kProxyServer, &value)); |
254 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 268 EXPECT_TRUE(StringValue("chromium.org").Equals(value)); |
255 EXPECT_FALSE(bool_result); | 269 EXPECT_EQ(PrefStore::READ_OK, |
256 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 270 store.GetValue(prefs::kNoProxyServer, &value)); |
257 EXPECT_FALSE(bool_result); | 271 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
| 272 EXPECT_EQ(PrefStore::READ_OK, |
| 273 store.GetValue(prefs::kProxyAutoDetect, &value)); |
| 274 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
258 } | 275 } |
259 | 276 |
260 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { | 277 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { |
261 scoped_ptr<MockConfigurationPolicyProvider> provider( | 278 MockConfigurationPolicyProvider provider; |
262 new MockConfigurationPolicyProvider()); | 279 provider.AddPolicy(kPolicyProxyBypassList, |
263 provider->AddPolicy(kPolicyProxyBypassList, | 280 Value::CreateStringValue("http://chromium.org/override")); |
264 Value::CreateStringValue("http://chromium.org/override")); | 281 provider.AddPolicy(kPolicyProxyServerMode, |
265 provider->AddPolicy(kPolicyProxyServerMode, | 282 Value::CreateIntegerValue(kPolicyNoProxyServerMode)); |
266 Value::CreateIntegerValue( | |
267 kPolicyNoProxyServerMode)); | |
268 | 283 |
269 ConfigurationPolicyPrefStore store(provider.get()); | 284 ConfigurationPolicyPrefStore store(&provider); |
270 | 285 |
271 std::string string_result; | 286 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
272 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 287 store.GetValue(prefs::kProxyBypassList, NULL)); |
273 &string_result)); | 288 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
274 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 289 store.GetValue(prefs::kProxyPacUrl, NULL)); |
275 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 290 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
276 bool bool_result; | 291 store.GetValue(prefs::kProxyServer, NULL)); |
277 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 292 Value* value = NULL; |
278 EXPECT_TRUE(bool_result); | 293 EXPECT_EQ(PrefStore::READ_OK, |
279 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 294 store.GetValue(prefs::kNoProxyServer, &value)); |
280 EXPECT_FALSE(bool_result); | 295 EXPECT_TRUE(FundamentalValue(true).Equals(value)); |
| 296 EXPECT_EQ(PrefStore::READ_OK, |
| 297 store.GetValue(prefs::kProxyAutoDetect, &value)); |
| 298 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
281 } | 299 } |
282 | 300 |
283 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) { | 301 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) { |
284 scoped_ptr<MockConfigurationPolicyProvider> provider( | 302 MockConfigurationPolicyProvider provider; |
285 new MockConfigurationPolicyProvider()); | 303 provider.AddPolicy(kPolicyProxyServerMode, |
286 provider->AddPolicy(kPolicyProxyServerMode, | 304 Value::CreateIntegerValue(kPolicyNoProxyServerMode)); |
287 Value::CreateIntegerValue( | 305 provider.AddPolicy(kPolicyProxyBypassList, |
288 kPolicyNoProxyServerMode)); | 306 Value::CreateStringValue("http://chromium.org/override")); |
289 provider->AddPolicy(kPolicyProxyBypassList, | |
290 Value::CreateStringValue("http://chromium.org/override")); | |
291 | 307 |
292 ConfigurationPolicyPrefStore store(provider.get()); | 308 ConfigurationPolicyPrefStore store(&provider); |
293 | 309 |
294 std::string string_result; | 310 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
295 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 311 store.GetValue(prefs::kProxyBypassList, NULL)); |
296 &string_result)); | 312 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
297 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 313 store.GetValue(prefs::kProxyPacUrl, NULL)); |
298 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 314 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
299 bool bool_result; | 315 store.GetValue(prefs::kProxyServer, NULL)); |
300 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 316 Value* value = NULL; |
301 EXPECT_TRUE(bool_result); | 317 EXPECT_EQ(PrefStore::READ_OK, |
302 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 318 store.GetValue(prefs::kNoProxyServer, &value)); |
303 EXPECT_FALSE(bool_result); | 319 EXPECT_TRUE(FundamentalValue(true).Equals(value)); |
| 320 EXPECT_EQ(PrefStore::READ_OK, |
| 321 store.GetValue(prefs::kProxyAutoDetect, &value)); |
| 322 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
304 } | 323 } |
305 | 324 |
306 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { | 325 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { |
307 scoped_ptr<MockConfigurationPolicyProvider> provider( | 326 MockConfigurationPolicyProvider provider; |
308 new MockConfigurationPolicyProvider()); | 327 provider.AddPolicy(kPolicyProxyServerMode, |
309 provider->AddPolicy(kPolicyProxyServerMode, | 328 Value::CreateIntegerValue(kPolicyAutoDetectProxyMode)); |
310 Value::CreateIntegerValue( | |
311 kPolicyAutoDetectProxyMode)); | |
312 | 329 |
313 ConfigurationPolicyPrefStore store(provider.get()); | 330 ConfigurationPolicyPrefStore store(&provider); |
314 | 331 |
315 std::string string_result; | 332 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
316 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 333 store.GetValue(prefs::kProxyBypassList, NULL)); |
317 &string_result)); | 334 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
318 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 335 store.GetValue(prefs::kProxyPacUrl, NULL)); |
319 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 336 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
320 bool bool_result; | 337 store.GetValue(prefs::kProxyServer, NULL)); |
321 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 338 Value* value = NULL; |
322 EXPECT_FALSE(bool_result); | 339 EXPECT_EQ(PrefStore::READ_OK, |
323 EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); | 340 store.GetValue(prefs::kNoProxyServer, &value)); |
324 EXPECT_TRUE(bool_result); | 341 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
| 342 EXPECT_EQ(PrefStore::READ_OK, |
| 343 store.GetValue(prefs::kProxyAutoDetect, &value)); |
| 344 EXPECT_TRUE(FundamentalValue(true).Equals(value)); |
325 } | 345 } |
326 | 346 |
327 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { | 347 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { |
328 scoped_ptr<MockConfigurationPolicyProvider> provider( | 348 MockConfigurationPolicyProvider provider; |
329 new MockConfigurationPolicyProvider()); | 349 provider.AddPolicy(kPolicyProxyBypassList, |
330 provider->AddPolicy(kPolicyProxyBypassList, | 350 Value::CreateStringValue("http://chromium.org/override")); |
331 Value::CreateStringValue("http://chromium.org/override")); | 351 provider.AddPolicy(kPolicyProxyServerMode, |
332 provider->AddPolicy(kPolicyProxyServerMode, | 352 Value::CreateIntegerValue(kPolicyUseSystemProxyMode)); |
333 Value::CreateIntegerValue( | |
334 kPolicyUseSystemProxyMode)); | |
335 | 353 |
336 ConfigurationPolicyPrefStore store(provider.get()); | 354 ConfigurationPolicyPrefStore store(&provider); |
337 | 355 |
338 std::string string_result; | 356 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
339 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 357 store.GetValue(prefs::kProxyBypassList, NULL)); |
340 &string_result)); | 358 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
341 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 359 store.GetValue(prefs::kProxyPacUrl, NULL)); |
342 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 360 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
343 bool bool_result; | 361 store.GetValue(prefs::kProxyServer, NULL)); |
344 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 362 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
345 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, | 363 store.GetValue(prefs::kNoProxyServer, NULL)); |
346 &bool_result)); | 364 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
| 365 store.GetValue(prefs::kProxyAutoDetect, NULL)); |
347 } | 366 } |
348 | 367 |
349 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) { | 368 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) { |
350 scoped_ptr<MockConfigurationPolicyProvider> provider( | 369 MockConfigurationPolicyProvider provider; |
351 new MockConfigurationPolicyProvider()); | 370 provider.AddPolicy(kPolicyProxyServerMode, |
352 provider->AddPolicy(kPolicyProxyServerMode, | 371 Value::CreateIntegerValue(kPolicyUseSystemProxyMode)); |
353 Value::CreateIntegerValue( | 372 provider.AddPolicy(kPolicyProxyBypassList, |
354 kPolicyUseSystemProxyMode)); | 373 Value::CreateStringValue("http://chromium.org/override")); |
355 provider->AddPolicy(kPolicyProxyBypassList, | |
356 Value::CreateStringValue("http://chromium.org/override")); | |
357 | 374 |
358 ConfigurationPolicyPrefStore store(provider.get()); | 375 ConfigurationPolicyPrefStore store(&provider); |
359 | 376 |
360 std::string string_result; | 377 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
361 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, | 378 store.GetValue(prefs::kProxyBypassList, NULL)); |
362 &string_result)); | 379 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
363 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); | 380 store.GetValue(prefs::kProxyPacUrl, NULL)); |
364 EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); | 381 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
365 bool bool_result; | 382 store.GetValue(prefs::kProxyServer, NULL)); |
366 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); | 383 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
367 EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, | 384 store.GetValue(prefs::kNoProxyServer, NULL)); |
368 &bool_result)); | 385 EXPECT_EQ(PrefStore::READ_USE_DEFAULT, |
| 386 store.GetValue(prefs::kProxyAutoDetect, NULL)); |
369 } | 387 } |
370 | 388 |
371 class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { | 389 class ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { |
372 }; | 390 }; |
373 | 391 |
374 // Checks that if the policy for default search is valid, i.e. there's a | 392 // Checks that if the policy for default search is valid, i.e. there's a |
375 // search URL, that all the elements have been given proper defaults. | 393 // search URL, that all the elements have been given proper defaults. |
376 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { | 394 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { |
377 const char* const search_url = "http://test.com/search?t={searchTerms}"; | 395 const char* const search_url = "http://test.com/search?t={searchTerms}"; |
378 scoped_ptr<MockConfigurationPolicyProvider> provider( | 396 MockConfigurationPolicyProvider provider; |
379 new MockConfigurationPolicyProvider()); | 397 provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, |
380 provider->AddPolicy( | 398 Value::CreateBooleanValue(true)); |
381 kPolicyDefaultSearchProviderEnabled, | 399 provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, |
382 Value::CreateBooleanValue(true)); | 400 Value::CreateStringValue(search_url)); |
383 provider->AddPolicy( | |
384 kPolicyDefaultSearchProviderSearchURL, | |
385 Value::CreateStringValue(search_url)); | |
386 | 401 |
387 ConfigurationPolicyPrefStore store(provider.get()); | 402 ConfigurationPolicyPrefStore store(&provider); |
388 const DictionaryValue* prefs = store.prefs(); | |
389 | 403 |
390 std::string string_result; | 404 Value* value = NULL; |
391 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, | 405 EXPECT_EQ(PrefStore::READ_OK, |
392 &string_result)); | 406 store.GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); |
393 EXPECT_EQ(string_result, search_url); | 407 EXPECT_TRUE(StringValue(search_url).Equals(value)); |
394 | 408 |
395 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName, | 409 EXPECT_EQ(PrefStore::READ_OK, |
396 &string_result)); | 410 store.GetValue(prefs::kDefaultSearchProviderName, &value)); |
397 EXPECT_EQ(string_result, "test.com"); | 411 EXPECT_TRUE(StringValue("test.com").Equals(value)); |
398 | 412 |
399 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, | 413 EXPECT_EQ(PrefStore::READ_OK, |
400 &string_result)); | 414 store.GetValue(prefs::kDefaultSearchProviderKeyword, &value)); |
401 EXPECT_EQ(string_result, std::string()); | 415 EXPECT_TRUE(StringValue(std::string()).Equals(value)); |
402 | 416 |
403 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, | 417 EXPECT_EQ(PrefStore::READ_OK, |
404 &string_result)); | 418 store.GetValue(prefs::kDefaultSearchProviderSuggestURL, &value)); |
405 EXPECT_EQ(string_result, std::string()); | 419 EXPECT_TRUE(StringValue(std::string()).Equals(value)); |
406 | 420 |
407 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, | 421 EXPECT_EQ(PrefStore::READ_OK, |
408 &string_result)); | 422 store.GetValue(prefs::kDefaultSearchProviderIconURL, &value)); |
409 EXPECT_EQ(string_result, std::string()); | 423 EXPECT_TRUE(StringValue(std::string()).Equals(value)); |
410 | 424 |
411 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, | 425 EXPECT_EQ(PrefStore::READ_OK, |
412 &string_result)); | 426 store.GetValue(prefs::kDefaultSearchProviderEncodings, &value)); |
413 EXPECT_EQ(string_result, std::string()); | 427 EXPECT_TRUE(StringValue(std::string()).Equals(value)); |
414 } | 428 } |
415 | 429 |
416 // Checks that for a fully defined search policy, all elements have been | 430 // Checks that for a fully defined search policy, all elements have been |
417 // read properly. | 431 // read properly. |
418 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { | 432 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { |
419 const char* const search_url = "http://test.com/search?t={searchTerms}"; | 433 const char* const search_url = "http://test.com/search?t={searchTerms}"; |
420 const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; | 434 const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; |
421 const char* const icon_url = "http://test.com/icon.jpg"; | 435 const char* const icon_url = "http://test.com/icon.jpg"; |
422 const char* const name = "MyName"; | 436 const char* const name = "MyName"; |
423 const char* const keyword = "MyKeyword"; | 437 const char* const keyword = "MyKeyword"; |
424 const char* const encodings = "UTF-16;UTF-8"; | 438 const char* const encodings = "UTF-16;UTF-8"; |
425 scoped_ptr<MockConfigurationPolicyProvider> provider( | 439 MockConfigurationPolicyProvider provider; |
426 new MockConfigurationPolicyProvider()); | 440 provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, |
427 provider->AddPolicy( | 441 Value::CreateBooleanValue(true)); |
428 kPolicyDefaultSearchProviderEnabled, | 442 provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, |
429 Value::CreateBooleanValue(true)); | 443 Value::CreateStringValue(search_url)); |
430 provider->AddPolicy( | 444 provider.AddPolicy(kPolicyDefaultSearchProviderName, |
431 kPolicyDefaultSearchProviderSearchURL, | 445 Value::CreateStringValue(name)); |
432 Value::CreateStringValue(search_url)); | 446 provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, |
433 provider->AddPolicy( | 447 Value::CreateStringValue(keyword)); |
434 kPolicyDefaultSearchProviderName, | 448 provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, |
435 Value::CreateStringValue(name)); | 449 Value::CreateStringValue(suggest_url)); |
436 provider->AddPolicy( | 450 provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, |
437 kPolicyDefaultSearchProviderKeyword, | 451 Value::CreateStringValue(icon_url)); |
438 Value::CreateStringValue(keyword)); | 452 provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, |
439 provider->AddPolicy( | 453 Value::CreateStringValue(encodings)); |
440 kPolicyDefaultSearchProviderSuggestURL, | |
441 Value::CreateStringValue(suggest_url)); | |
442 provider->AddPolicy( | |
443 kPolicyDefaultSearchProviderIconURL, | |
444 Value::CreateStringValue(icon_url)); | |
445 provider->AddPolicy( | |
446 kPolicyDefaultSearchProviderEncodings, | |
447 Value::CreateStringValue(encodings)); | |
448 | 454 |
449 ConfigurationPolicyPrefStore store(provider.get()); | 455 ConfigurationPolicyPrefStore store(&provider); |
450 const DictionaryValue* prefs = store.prefs(); | |
451 | 456 |
452 std::string result_search_url; | 457 Value* value = NULL; |
453 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, | 458 EXPECT_EQ(PrefStore::READ_OK, |
454 &result_search_url)); | 459 store.GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); |
455 EXPECT_EQ(result_search_url, search_url); | 460 EXPECT_TRUE(StringValue(search_url).Equals(value)); |
456 | 461 |
457 std::string result_name; | 462 EXPECT_EQ(PrefStore::READ_OK, |
458 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName, | 463 store.GetValue(prefs::kDefaultSearchProviderName, &value)); |
459 &result_name)); | 464 EXPECT_TRUE(StringValue(name).Equals(value)); |
460 EXPECT_EQ(result_name, name); | |
461 | 465 |
462 std::string result_keyword; | 466 EXPECT_EQ(PrefStore::READ_OK, |
463 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, | 467 store.GetValue(prefs::kDefaultSearchProviderKeyword, &value)); |
464 &result_keyword)); | 468 EXPECT_TRUE(StringValue(keyword).Equals(value)); |
465 EXPECT_EQ(result_keyword, keyword); | |
466 | 469 |
467 std::string result_suggest_url; | 470 EXPECT_EQ(PrefStore::READ_OK, |
468 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, | 471 store.GetValue(prefs::kDefaultSearchProviderSuggestURL, &value)); |
469 &result_suggest_url)); | 472 EXPECT_TRUE(StringValue(suggest_url).Equals(value)); |
470 EXPECT_EQ(result_suggest_url, suggest_url); | |
471 | 473 |
472 std::string result_icon_url; | 474 EXPECT_EQ(PrefStore::READ_OK, |
473 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, | 475 store.GetValue(prefs::kDefaultSearchProviderIconURL, &value)); |
474 &result_icon_url)); | 476 EXPECT_TRUE(StringValue(icon_url).Equals(value)); |
475 EXPECT_EQ(result_icon_url, icon_url); | |
476 | 477 |
477 std::string result_encodings; | 478 EXPECT_EQ(PrefStore::READ_OK, |
478 EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, | 479 store.GetValue(prefs::kDefaultSearchProviderEncodings, &value)); |
479 &result_encodings)); | 480 EXPECT_TRUE(StringValue(encodings).Equals(value)); |
480 EXPECT_EQ(result_encodings, encodings); | |
481 } | 481 } |
482 | 482 |
483 // Checks that if the default search policy is missing, that no elements of the | 483 // Checks that if the default search policy is missing, that no elements of the |
484 // default search policy will be present. | 484 // default search policy will be present. |
485 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { | 485 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { |
486 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; | 486 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; |
487 const char* const icon_url = "http://test.com/icon.jpg"; | 487 const char* const icon_url = "http://test.com/icon.jpg"; |
488 const char* const name = "MyName"; | 488 const char* const name = "MyName"; |
489 const char* const keyword = "MyKeyword"; | 489 const char* const keyword = "MyKeyword"; |
490 const char* const encodings = "UTF-16;UTF-8"; | 490 const char* const encodings = "UTF-16;UTF-8"; |
491 scoped_ptr<MockConfigurationPolicyProvider> provider( | 491 MockConfigurationPolicyProvider provider; |
492 new MockConfigurationPolicyProvider()); | 492 provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, |
493 provider->AddPolicy( | 493 Value::CreateBooleanValue(true)); |
494 kPolicyDefaultSearchProviderEnabled, | 494 provider.AddPolicy(kPolicyDefaultSearchProviderName, |
495 Value::CreateBooleanValue(true)); | 495 Value::CreateStringValue(name)); |
496 provider->AddPolicy( | 496 provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, |
497 kPolicyDefaultSearchProviderName, | 497 Value::CreateStringValue(keyword)); |
498 Value::CreateStringValue(name)); | 498 provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, |
499 provider->AddPolicy( | 499 Value::CreateStringValue(suggest_url)); |
500 kPolicyDefaultSearchProviderKeyword, | 500 provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, |
501 Value::CreateStringValue(keyword)); | 501 Value::CreateStringValue(icon_url)); |
502 provider->AddPolicy( | 502 provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, |
503 kPolicyDefaultSearchProviderSuggestURL, | 503 Value::CreateStringValue(encodings)); |
504 Value::CreateStringValue(suggest_url)); | |
505 provider->AddPolicy( | |
506 kPolicyDefaultSearchProviderIconURL, | |
507 Value::CreateStringValue(icon_url)); | |
508 provider->AddPolicy( | |
509 kPolicyDefaultSearchProviderEncodings, | |
510 Value::CreateStringValue(encodings)); | |
511 | 504 |
512 ConfigurationPolicyPrefStore store(provider.get()); | 505 ConfigurationPolicyPrefStore store(&provider); |
513 const DictionaryValue* prefs = store.prefs(); | |
514 | 506 |
515 std::string string_result; | 507 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
516 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, | 508 store.GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); |
517 &string_result)); | 509 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
518 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName, | 510 store.GetValue(prefs::kDefaultSearchProviderName, NULL)); |
519 &string_result)); | 511 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
520 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, | 512 store.GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); |
521 &string_result)); | 513 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
522 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, | 514 store.GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); |
523 &string_result)); | 515 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
524 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, | 516 store.GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); |
525 &string_result)); | 517 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
526 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, | 518 store.GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); |
527 &string_result)); | |
528 } | 519 } |
529 | 520 |
530 // Checks that if the default search policy is invalid, that no elements of the | 521 // Checks that if the default search policy is invalid, that no elements of the |
531 // default search policy will be present. | 522 // default search policy will be present. |
532 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { | 523 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { |
533 const char* const bad_search_url = "http://test.com/noSearchTerms"; | 524 const char* const bad_search_url = "http://test.com/noSearchTerms"; |
534 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; | 525 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; |
535 const char* const icon_url = "http://test.com/icon.jpg"; | 526 const char* const icon_url = "http://test.com/icon.jpg"; |
536 const char* const name = "MyName"; | 527 const char* const name = "MyName"; |
537 const char* const keyword = "MyKeyword"; | 528 const char* const keyword = "MyKeyword"; |
538 const char* const encodings = "UTF-16;UTF-8"; | 529 const char* const encodings = "UTF-16;UTF-8"; |
539 scoped_ptr<MockConfigurationPolicyProvider> provider( | 530 MockConfigurationPolicyProvider provider; |
540 new MockConfigurationPolicyProvider()); | 531 provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, |
541 provider->AddPolicy( | 532 Value::CreateBooleanValue(true)); |
542 kPolicyDefaultSearchProviderEnabled, | 533 provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, |
543 Value::CreateBooleanValue(true)); | 534 Value::CreateStringValue(bad_search_url)); |
544 provider->AddPolicy( | 535 provider.AddPolicy(kPolicyDefaultSearchProviderName, |
545 kPolicyDefaultSearchProviderSearchURL, | 536 Value::CreateStringValue(name)); |
546 Value::CreateStringValue(bad_search_url)); | 537 provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, |
547 provider->AddPolicy( | 538 Value::CreateStringValue(keyword)); |
548 kPolicyDefaultSearchProviderName, | 539 provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, |
549 Value::CreateStringValue(name)); | 540 Value::CreateStringValue(suggest_url)); |
550 provider->AddPolicy( | 541 provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, |
551 kPolicyDefaultSearchProviderKeyword, | 542 Value::CreateStringValue(icon_url)); |
552 Value::CreateStringValue(keyword)); | 543 provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, |
553 provider->AddPolicy( | 544 Value::CreateStringValue(encodings)); |
554 kPolicyDefaultSearchProviderSuggestURL, | |
555 Value::CreateStringValue(suggest_url)); | |
556 provider->AddPolicy( | |
557 kPolicyDefaultSearchProviderIconURL, | |
558 Value::CreateStringValue(icon_url)); | |
559 provider->AddPolicy( | |
560 kPolicyDefaultSearchProviderEncodings, | |
561 Value::CreateStringValue(encodings)); | |
562 | 545 |
563 ConfigurationPolicyPrefStore store(provider.get()); | 546 ConfigurationPolicyPrefStore store(&provider); |
564 const DictionaryValue* const prefs = store.prefs(); | |
565 | 547 |
566 std::string string_result; | 548 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
567 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEnabled, | 549 store.GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); |
568 &string_result)); | 550 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
569 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, | 551 store.GetValue(prefs::kDefaultSearchProviderName, NULL)); |
570 &string_result)); | 552 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
571 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName, | 553 store.GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); |
572 &string_result)); | 554 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
573 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, | 555 store.GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); |
574 &string_result)); | 556 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
575 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, | 557 store.GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); |
576 &string_result)); | 558 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
577 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, | 559 store.GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); |
578 &string_result)); | |
579 EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, | |
580 &string_result)); | |
581 } | 560 } |
582 | 561 |
583 // Test cases for the Sync policy setting. | 562 // Test cases for the Sync policy setting. |
584 class ConfigurationPolicyPrefStoreSyncTest | 563 class ConfigurationPolicyPrefStoreSyncTest |
585 : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { | 564 : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { |
586 }; | 565 }; |
587 | 566 |
588 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) { | 567 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) { |
589 bool result = false; | 568 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
590 EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result)); | 569 store_.GetValue(prefs::kSyncManaged, NULL)); |
591 } | 570 } |
592 | 571 |
593 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) { | 572 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) { |
594 store_.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(false)); | 573 provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(false)); |
| 574 RefreshPolicy(); |
595 // Enabling Sync should not set the pref. | 575 // Enabling Sync should not set the pref. |
596 bool result = false; | 576 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
597 EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result)); | 577 store_.GetValue(prefs::kSyncManaged, NULL)); |
598 } | 578 } |
599 | 579 |
600 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) { | 580 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) { |
601 store_.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(true)); | 581 provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(true)); |
| 582 RefreshPolicy(); |
602 // Sync should be flagged as managed. | 583 // Sync should be flagged as managed. |
603 bool result = false; | 584 Value* value = NULL; |
604 EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kSyncManaged, &result)); | 585 EXPECT_EQ(PrefStore::READ_OK, store_.GetValue(prefs::kSyncManaged, &value)); |
605 EXPECT_TRUE(result); | 586 EXPECT_TRUE(FundamentalValue(true).Equals(value)); |
606 } | 587 } |
607 | 588 |
608 // Test cases for the AutoFill policy setting. | 589 // Test cases for the AutoFill policy setting. |
609 class ConfigurationPolicyPrefStoreAutoFillTest | 590 class ConfigurationPolicyPrefStoreAutoFillTest |
610 : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { | 591 : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { |
611 }; | 592 }; |
612 | 593 |
613 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Default) { | 594 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Default) { |
614 bool result = false; | 595 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
615 EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); | 596 store_.GetValue(prefs::kSyncManaged, NULL)); |
616 } | 597 } |
617 | 598 |
618 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Enabled) { | 599 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Enabled) { |
619 store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true)); | 600 provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true)); |
| 601 RefreshPolicy(); |
620 // Enabling AutoFill should not set the pref. | 602 // Enabling AutoFill should not set the pref. |
621 bool result = false; | 603 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
622 EXPECT_FALSE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); | 604 store_.GetValue(prefs::kSyncManaged, NULL)); |
623 } | 605 } |
624 | 606 |
625 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) { | 607 TEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) { |
626 store_.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); | 608 provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); |
| 609 RefreshPolicy(); |
627 // Disabling AutoFill should switch the pref to managed. | 610 // Disabling AutoFill should switch the pref to managed. |
628 bool result = true; | 611 Value* value = NULL; |
629 EXPECT_TRUE(store_.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); | 612 EXPECT_EQ(PrefStore::READ_OK, |
630 EXPECT_FALSE(result); | 613 store_.GetValue(prefs::kAutoFillEnabled, &value)); |
| 614 EXPECT_TRUE(FundamentalValue(false).Equals(value)); |
| 615 } |
| 616 |
| 617 // Exercises the policy refresh mechanism. |
| 618 class ConfigurationPolicyPrefStoreRefreshTest |
| 619 : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { |
| 620 protected: |
| 621 virtual void SetUp() { |
| 622 store_.AddObserver(&observer_); |
| 623 } |
| 624 |
| 625 virtual void TearDown() { |
| 626 store_.RemoveObserver(&observer_); |
| 627 } |
| 628 |
| 629 PrefStoreObserverMock observer_; |
| 630 }; |
| 631 |
| 632 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { |
| 633 Value* value = NULL; |
| 634 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
| 635 store_.GetValue(prefs::kHomePage, NULL)); |
| 636 |
| 637 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); |
| 638 provider_.AddPolicy(kPolicyHomePage, |
| 639 Value::CreateStringValue("http://www.chromium.org")); |
| 640 RefreshPolicy(); |
| 641 Mock::VerifyAndClearExpectations(&observer_); |
| 642 EXPECT_EQ(PrefStore::READ_OK, |
| 643 store_.GetValue(prefs::kHomePage, &value)); |
| 644 EXPECT_TRUE(StringValue("http://www.chromium.org").Equals(value)); |
| 645 |
| 646 EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0); |
| 647 RefreshPolicy(); |
| 648 Mock::VerifyAndClearExpectations(&observer_); |
| 649 |
| 650 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); |
| 651 provider_.RemovePolicy(kPolicyHomePage); |
| 652 RefreshPolicy(); |
| 653 Mock::VerifyAndClearExpectations(&observer_); |
| 654 EXPECT_EQ(PrefStore::READ_NO_VALUE, |
| 655 store_.GetValue(prefs::kHomePage, NULL)); |
| 656 } |
| 657 |
| 658 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { |
| 659 EXPECT_FALSE(store_.IsInitializationComplete()); |
| 660 |
| 661 EXPECT_CALL(observer_, OnInitializationCompleted()).Times(1); |
| 662 |
| 663 provider_.SetInitializationComplete(true); |
| 664 EXPECT_FALSE(store_.IsInitializationComplete()); |
| 665 |
| 666 RefreshPolicy(); |
| 667 Mock::VerifyAndClearExpectations(&observer_); |
| 668 EXPECT_TRUE(store_.IsInitializationComplete()); |
631 } | 669 } |
632 | 670 |
633 } // namespace policy | 671 } // namespace policy |
OLD | NEW |