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

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

Issue 10236003: Added RefreshPolicies to PolicyService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix chromeos build (this time I mean it) Created 8 years, 8 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
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 <string> 5 #include <string>
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "chrome/browser/policy/configuration_policy_handler.h" 9 #include "chrome/browser/policy/configuration_policy_handler.h"
10 #include "chrome/browser/policy/configuration_policy_pref_store.h" 10 #include "chrome/browser/policy/configuration_policy_pref_store.h"
11 #include "chrome/browser/policy/mock_configuration_policy_provider.h" 11 #include "chrome/browser/policy/mock_configuration_policy_provider.h"
12 #include "chrome/browser/policy/policy_map.h" 12 #include "chrome/browser/policy/policy_map.h"
13 #include "chrome/browser/policy/policy_service_impl.h" 13 #include "chrome/browser/policy/policy_service_impl.h"
14 #include "chrome/browser/prefs/incognito_mode_prefs.h" 14 #include "chrome/browser/prefs/incognito_mode_prefs.h"
15 #include "chrome/browser/prefs/proxy_config_dictionary.h" 15 #include "chrome/browser/prefs/proxy_config_dictionary.h"
16 #include "chrome/common/content_settings.h" 16 #include "chrome/common/content_settings.h"
17 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
18 #include "chrome/common/pref_store_observer_mock.h" 18 #include "chrome/common/pref_store_observer_mock.h"
19 #include "policy/policy_constants.h" 19 #include "policy/policy_constants.h"
20 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 22
23 using testing::Mock; 23 using testing::Mock;
24 using testing::Return;
24 using testing::_; 25 using testing::_;
25 26
26 namespace policy { 27 namespace policy {
27 28
28 // Holds a set of test parameters, consisting of pref name and policy name. 29 // Holds a set of test parameters, consisting of pref name and policy name.
29 class PolicyAndPref { 30 class PolicyAndPref {
30 public: 31 public:
31 PolicyAndPref(const char* policy_name, const char* pref_name) 32 PolicyAndPref(const char* policy_name, const char* pref_name)
32 : policy_name_(policy_name), 33 : policy_name_(policy_name),
33 pref_name_(pref_name) {} 34 pref_name_(pref_name) {}
34 35
35 const char* policy_name() const { return policy_name_; } 36 const char* policy_name() const { return policy_name_; }
36 const char* pref_name() const { return pref_name_; } 37 const char* pref_name() const { return pref_name_; }
37 38
38 private: 39 private:
39 const char* policy_name_; 40 const char* policy_name_;
40 const char* pref_name_; 41 const char* pref_name_;
41 }; 42 };
42 43
43 class ConfigurationPolicyPrefStoreTest : public testing::Test { 44 class ConfigurationPolicyPrefStoreTest : public testing::Test {
44 protected: 45 protected:
45 ConfigurationPolicyPrefStoreTest() { 46 ConfigurationPolicyPrefStoreTest() {
47 EXPECT_CALL(provider_, ProvideInternal(_))
48 .WillRepeatedly(CopyPolicyMap(&policy_));
49 EXPECT_CALL(provider_, IsInitializationComplete())
50 .WillRepeatedly(Return(true));
51 ResetServiceAndStore();
52 }
53
54 void ResetServiceAndStore() {
55 store_ = NULL;
46 PolicyServiceImpl::Providers providers; 56 PolicyServiceImpl::Providers providers;
47 providers.push_back(&provider_); 57 providers.push_back(&provider_);
48 policy_service_.reset(new PolicyServiceImpl(providers)); 58 policy_service_.reset(new PolicyServiceImpl(providers));
49 store_ = new ConfigurationPolicyPrefStore(policy_service_.get(), 59 store_ = new ConfigurationPolicyPrefStore(policy_service_.get(),
50 POLICY_LEVEL_MANDATORY); 60 POLICY_LEVEL_MANDATORY);
51 } 61 }
52 62
63 PolicyMap policy_;
53 MockConfigurationPolicyProvider provider_; 64 MockConfigurationPolicyProvider provider_;
54 scoped_ptr<PolicyServiceImpl> policy_service_; 65 scoped_ptr<PolicyServiceImpl> policy_service_;
55 scoped_refptr<ConfigurationPolicyPrefStore> store_; 66 scoped_refptr<ConfigurationPolicyPrefStore> store_;
56 }; 67 };
57 68
58 // Test cases for list-valued policy settings. 69 // Test cases for list-valued policy settings.
59 class ConfigurationPolicyPrefStoreListTest 70 class ConfigurationPolicyPrefStoreListTest
60 : public ConfigurationPolicyPrefStoreTest, 71 : public ConfigurationPolicyPrefStoreTest,
61 public testing::WithParamInterface<PolicyAndPref> {}; 72 public testing::WithParamInterface<PolicyAndPref> {};
62 73
63 TEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) { 74 TEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) {
64 EXPECT_EQ(PrefStore::READ_NO_VALUE, 75 EXPECT_EQ(PrefStore::READ_NO_VALUE,
65 store_->GetValue(GetParam().pref_name(), NULL)); 76 store_->GetValue(GetParam().pref_name(), NULL));
66 } 77 }
67 78
68 TEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) { 79 TEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) {
69 base::ListValue* in_value = new base::ListValue(); 80 base::ListValue* in_value = new base::ListValue();
70 in_value->Append(base::Value::CreateStringValue("test1")); 81 in_value->Append(base::Value::CreateStringValue("test1"));
71 in_value->Append(base::Value::CreateStringValue("test2,")); 82 in_value->Append(base::Value::CreateStringValue("test2,"));
72 provider_.AddMandatoryPolicy(GetParam().policy_name(), in_value); 83 policy_.Set(GetParam().policy_name(), POLICY_LEVEL_MANDATORY,
73 provider_.RefreshPolicies(); 84 POLICY_SCOPE_USER, in_value);
85 provider_.NotifyPolicyUpdated();
74 const base::Value* value = NULL; 86 const base::Value* value = NULL;
75 EXPECT_EQ(PrefStore::READ_OK, 87 EXPECT_EQ(PrefStore::READ_OK,
76 store_->GetValue(GetParam().pref_name(), &value)); 88 store_->GetValue(GetParam().pref_name(), &value));
77 ASSERT_TRUE(value); 89 ASSERT_TRUE(value);
78 EXPECT_TRUE(in_value->Equals(value)); 90 EXPECT_TRUE(in_value->Equals(value));
79 } 91 }
80 92
81 INSTANTIATE_TEST_CASE_P( 93 INSTANTIATE_TEST_CASE_P(
82 ConfigurationPolicyPrefStoreListTestInstance, 94 ConfigurationPolicyPrefStoreListTestInstance,
83 ConfigurationPolicyPrefStoreListTest, 95 ConfigurationPolicyPrefStoreListTest,
(...skipping 23 matching lines...) Expand all
107 class ConfigurationPolicyPrefStoreStringTest 119 class ConfigurationPolicyPrefStoreStringTest
108 : public ConfigurationPolicyPrefStoreTest, 120 : public ConfigurationPolicyPrefStoreTest,
109 public testing::WithParamInterface<PolicyAndPref> {}; 121 public testing::WithParamInterface<PolicyAndPref> {};
110 122
111 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { 123 TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) {
112 EXPECT_EQ(PrefStore::READ_NO_VALUE, 124 EXPECT_EQ(PrefStore::READ_NO_VALUE,
113 store_->GetValue(GetParam().pref_name(), NULL)); 125 store_->GetValue(GetParam().pref_name(), NULL));
114 } 126 }
115 127
116 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { 128 TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) {
117 provider_.AddMandatoryPolicy(GetParam().policy_name(), 129 policy_.Set(GetParam().policy_name(), POLICY_LEVEL_MANDATORY,
118 base::Value::CreateStringValue( 130 POLICY_SCOPE_USER,
119 "http://chromium.org")); 131 base::Value::CreateStringValue("http://chromium.org"));
120 provider_.RefreshPolicies(); 132 provider_.NotifyPolicyUpdated();
121 const base::Value* value = NULL; 133 const base::Value* value = NULL;
122 EXPECT_EQ(PrefStore::READ_OK, 134 EXPECT_EQ(PrefStore::READ_OK,
123 store_->GetValue(GetParam().pref_name(), &value)); 135 store_->GetValue(GetParam().pref_name(), &value));
124 ASSERT_TRUE(value); 136 ASSERT_TRUE(value);
125 EXPECT_TRUE(base::StringValue("http://chromium.org").Equals(value)); 137 EXPECT_TRUE(base::StringValue("http://chromium.org").Equals(value));
126 } 138 }
127 139
128 INSTANTIATE_TEST_CASE_P( 140 INSTANTIATE_TEST_CASE_P(
129 ConfigurationPolicyPrefStoreStringTestInstance, 141 ConfigurationPolicyPrefStoreStringTestInstance,
130 ConfigurationPolicyPrefStoreStringTest, 142 ConfigurationPolicyPrefStoreStringTest,
(...skipping 25 matching lines...) Expand all
156 class ConfigurationPolicyPrefStoreBooleanTest 168 class ConfigurationPolicyPrefStoreBooleanTest
157 : public ConfigurationPolicyPrefStoreTest, 169 : public ConfigurationPolicyPrefStoreTest,
158 public testing::WithParamInterface<PolicyAndPref> {}; 170 public testing::WithParamInterface<PolicyAndPref> {};
159 171
160 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { 172 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) {
161 EXPECT_EQ(PrefStore::READ_NO_VALUE, 173 EXPECT_EQ(PrefStore::READ_NO_VALUE,
162 store_->GetValue(GetParam().pref_name(), NULL)); 174 store_->GetValue(GetParam().pref_name(), NULL));
163 } 175 }
164 176
165 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { 177 TEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) {
166 provider_.AddMandatoryPolicy(GetParam().policy_name(), 178 policy_.Set(GetParam().policy_name(), POLICY_LEVEL_MANDATORY,
167 base::Value::CreateBooleanValue(false)); 179 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false));
168 provider_.RefreshPolicies(); 180 provider_.NotifyPolicyUpdated();
169 const base::Value* value = NULL; 181 const base::Value* value = NULL;
170 EXPECT_EQ(PrefStore::READ_OK, 182 EXPECT_EQ(PrefStore::READ_OK,
171 store_->GetValue(GetParam().pref_name(), &value)); 183 store_->GetValue(GetParam().pref_name(), &value));
172 ASSERT_TRUE(value); 184 ASSERT_TRUE(value);
173 bool boolean_value = true; 185 bool boolean_value = true;
174 bool result = value->GetAsBoolean(&boolean_value); 186 bool result = value->GetAsBoolean(&boolean_value);
175 ASSERT_TRUE(result); 187 ASSERT_TRUE(result);
176 EXPECT_FALSE(boolean_value); 188 EXPECT_FALSE(boolean_value);
177 189
178 provider_.AddMandatoryPolicy(GetParam().policy_name(), 190 policy_.Set(GetParam().policy_name(), POLICY_LEVEL_MANDATORY,
179 base::Value::CreateBooleanValue(true)); 191 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
180 provider_.RefreshPolicies(); 192 provider_.NotifyPolicyUpdated();
181 value = NULL; 193 value = NULL;
182 EXPECT_EQ(PrefStore::READ_OK, 194 EXPECT_EQ(PrefStore::READ_OK,
183 store_->GetValue(GetParam().pref_name(), &value)); 195 store_->GetValue(GetParam().pref_name(), &value));
184 boolean_value = false; 196 boolean_value = false;
185 result = value->GetAsBoolean(&boolean_value); 197 result = value->GetAsBoolean(&boolean_value);
186 ASSERT_TRUE(result); 198 ASSERT_TRUE(result);
187 EXPECT_TRUE(boolean_value); 199 EXPECT_TRUE(boolean_value);
188 } 200 }
189 201
190 INSTANTIATE_TEST_CASE_P( 202 INSTANTIATE_TEST_CASE_P(
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 class ConfigurationPolicyPrefStoreIntegerTest 301 class ConfigurationPolicyPrefStoreIntegerTest
290 : public ConfigurationPolicyPrefStoreTest, 302 : public ConfigurationPolicyPrefStoreTest,
291 public testing::WithParamInterface<PolicyAndPref> {}; 303 public testing::WithParamInterface<PolicyAndPref> {};
292 304
293 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { 305 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) {
294 EXPECT_EQ(PrefStore::READ_NO_VALUE, 306 EXPECT_EQ(PrefStore::READ_NO_VALUE,
295 store_->GetValue(GetParam().pref_name(), NULL)); 307 store_->GetValue(GetParam().pref_name(), NULL));
296 } 308 }
297 309
298 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { 310 TEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) {
299 provider_.AddMandatoryPolicy(GetParam().policy_name(), 311 policy_.Set(GetParam().policy_name(), POLICY_LEVEL_MANDATORY,
300 base::Value::CreateIntegerValue(2)); 312 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(2));
301 provider_.RefreshPolicies(); 313 provider_.NotifyPolicyUpdated();
302 const base::Value* value = NULL; 314 const base::Value* value = NULL;
303 EXPECT_EQ(PrefStore::READ_OK, 315 EXPECT_EQ(PrefStore::READ_OK,
304 store_->GetValue(GetParam().pref_name(), &value)); 316 store_->GetValue(GetParam().pref_name(), &value));
305 EXPECT_TRUE(base::FundamentalValue(2).Equals(value)); 317 EXPECT_TRUE(base::FundamentalValue(2).Equals(value));
306 } 318 }
307 319
308 INSTANTIATE_TEST_CASE_P( 320 INSTANTIATE_TEST_CASE_P(
309 ConfigurationPolicyPrefStoreIntegerTestInstance, 321 ConfigurationPolicyPrefStoreIntegerTestInstance,
310 ConfigurationPolicyPrefStoreIntegerTest, 322 ConfigurationPolicyPrefStoreIntegerTest,
311 testing::Values( 323 testing::Values(
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 ASSERT_TRUE(dict.GetBypassList(&s)); 379 ASSERT_TRUE(dict.GetBypassList(&s));
368 EXPECT_EQ(expected_proxy_bypass_list, s); 380 EXPECT_EQ(expected_proxy_bypass_list, s);
369 } 381 }
370 ProxyPrefs::ProxyMode mode; 382 ProxyPrefs::ProxyMode mode;
371 ASSERT_TRUE(dict.GetMode(&mode)); 383 ASSERT_TRUE(dict.GetMode(&mode));
372 EXPECT_EQ(expected_proxy_mode, mode); 384 EXPECT_EQ(expected_proxy_mode, mode);
373 } 385 }
374 }; 386 };
375 387
376 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { 388 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) {
377 provider_.AddMandatoryPolicy( 389 policy_.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
378 key::kProxyBypassList, 390 base::Value::CreateStringValue("http://chromium.org/override"));
379 base::Value::CreateStringValue("http://chromium.org/override")); 391 policy_.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
380 provider_.AddMandatoryPolicy(key::kProxyServer, 392 base::Value::CreateStringValue("chromium.org"));
381 base::Value::CreateStringValue("chromium.org")); 393 policy_.Set(
382 provider_.AddMandatoryPolicy( 394 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
383 key::kProxyServerMode,
384 base::Value::CreateIntegerValue( 395 base::Value::CreateIntegerValue(
385 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE)); 396 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE));
386 provider_.RefreshPolicies(); 397 provider_.NotifyPolicyUpdated();
387 398
388 VerifyProxyPrefs( 399 VerifyProxyPrefs(
389 "chromium.org", "", "http://chromium.org/override", 400 "chromium.org", "", "http://chromium.org/override",
390 ProxyPrefs::MODE_FIXED_SERVERS); 401 ProxyPrefs::MODE_FIXED_SERVERS);
391 } 402 }
392 403
393 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) { 404 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) {
394 provider_.AddMandatoryPolicy( 405 policy_.Set(
395 key::kProxyServerMode, 406 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
396 base::Value::CreateIntegerValue( 407 base::Value::CreateIntegerValue(
397 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE)); 408 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE));
398 provider_.AddMandatoryPolicy( 409 policy_.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
399 key::kProxyBypassList, 410 base::Value::CreateStringValue("http://chromium.org/override"));
400 base::Value::CreateStringValue("http://chromium.org/override")); 411 policy_.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
401 provider_.AddMandatoryPolicy( 412 base::Value::CreateStringValue("chromium.org"));
402 key::kProxyServer, 413 provider_.NotifyPolicyUpdated();
403 base::Value::CreateStringValue("chromium.org"));
404 provider_.RefreshPolicies();
405 414
406 VerifyProxyPrefs( 415 VerifyProxyPrefs(
407 "chromium.org", "", "http://chromium.org/override", 416 "chromium.org", "", "http://chromium.org/override",
408 ProxyPrefs::MODE_FIXED_SERVERS); 417 ProxyPrefs::MODE_FIXED_SERVERS);
409 } 418 }
410 419
411 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsInvalid) { 420 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsInvalid) {
412 provider_.AddMandatoryPolicy( 421 policy_.Set(
413 key::kProxyServerMode, 422 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
414 base::Value::CreateIntegerValue( 423 base::Value::CreateIntegerValue(
415 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE)); 424 ProxyPolicyHandler::PROXY_MANUALLY_CONFIGURED_PROXY_SERVER_MODE));
416 provider_.RefreshPolicies(); 425 provider_.NotifyPolicyUpdated();
417 426
418 const base::Value* value = NULL; 427 const base::Value* value = NULL;
419 EXPECT_EQ(PrefStore::READ_NO_VALUE, store_->GetValue(prefs::kProxy, &value)); 428 EXPECT_EQ(PrefStore::READ_NO_VALUE, store_->GetValue(prefs::kProxy, &value));
420 } 429 }
421 430
422 431
423 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyServerMode) { 432 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyServerMode) {
424 provider_.AddMandatoryPolicy( 433 policy_.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
425 key::kProxyServerMode, 434 base::Value::CreateIntegerValue(
426 base::Value::CreateIntegerValue(ProxyPolicyHandler::PROXY_SERVER_MODE)); 435 ProxyPolicyHandler::PROXY_SERVER_MODE));
427 provider_.RefreshPolicies(); 436 provider_.NotifyPolicyUpdated();
428 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_DIRECT); 437 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_DIRECT);
429 } 438 }
430 439
431 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyModeName) { 440 TEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyModeName) {
432 provider_.AddMandatoryPolicy( 441 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
433 key::kProxyMode, 442 base::Value::CreateStringValue(ProxyPrefs::kDirectProxyModeName));
434 base::Value::CreateStringValue(ProxyPrefs::kDirectProxyModeName)); 443 provider_.NotifyPolicyUpdated();
435 provider_.RefreshPolicies();
436 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_DIRECT); 444 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_DIRECT);
437 } 445 }
438 446
439 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyServerMode) { 447 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyServerMode) {
440 provider_.AddMandatoryPolicy( 448 policy_.Set(
441 key::kProxyServerMode, 449 key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
442 base::Value::CreateIntegerValue( 450 base::Value::CreateIntegerValue(
443 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE)); 451 ProxyPolicyHandler::PROXY_AUTO_DETECT_PROXY_SERVER_MODE));
444 provider_.RefreshPolicies(); 452 provider_.NotifyPolicyUpdated();
445 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT); 453 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT);
446 } 454 }
447 455
448 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyModeName) { 456 TEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyModeName) {
449 provider_.AddMandatoryPolicy( 457 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
450 key::kProxyMode, 458 base::Value::CreateStringValue(
451 base::Value::CreateStringValue(ProxyPrefs::kAutoDetectProxyModeName)); 459 ProxyPrefs::kAutoDetectProxyModeName));
452 provider_.RefreshPolicies(); 460 provider_.NotifyPolicyUpdated();
453 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT); 461 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT);
454 } 462 }
455 463
456 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyMode) { 464 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyMode) {
457 provider_.AddMandatoryPolicy( 465 policy_.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
458 key::kProxyPacUrl, 466 base::Value::CreateStringValue("http://short.org/proxy.pac"));
459 base::Value::CreateStringValue("http://short.org/proxy.pac")); 467 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
460 provider_.AddMandatoryPolicy( 468 base::Value::CreateStringValue(
461 key::kProxyMode, 469 ProxyPrefs::kPacScriptProxyModeName));
462 base::Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 470 provider_.NotifyPolicyUpdated();
463 provider_.RefreshPolicies();
464 VerifyProxyPrefs("", "http://short.org/proxy.pac", "", 471 VerifyProxyPrefs("", "http://short.org/proxy.pac", "",
465 ProxyPrefs::MODE_PAC_SCRIPT); 472 ProxyPrefs::MODE_PAC_SCRIPT);
466 } 473 }
467 474
468 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeInvalid) { 475 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeInvalid) {
469 provider_.AddMandatoryPolicy( 476 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
470 key::kProxyMode, 477 base::Value::CreateStringValue(
471 base::Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 478 ProxyPrefs::kPacScriptProxyModeName));
472 provider_.RefreshPolicies(); 479 provider_.NotifyPolicyUpdated();
473 const base::Value* value = NULL; 480 const base::Value* value = NULL;
474 EXPECT_EQ(PrefStore::READ_NO_VALUE, store_->GetValue(prefs::kProxy, &value)); 481 EXPECT_EQ(PrefStore::READ_NO_VALUE, store_->GetValue(prefs::kProxy, &value));
475 } 482 }
476 483
477 // Regression test for http://crbug.com/78016, CPanel returns empty strings 484 // Regression test for http://crbug.com/78016, CPanel returns empty strings
478 // for unset properties. 485 // for unset properties.
479 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeBug78016) { 486 TEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeBug78016) {
480 provider_.AddMandatoryPolicy(key::kProxyServer, 487 policy_.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
481 base::Value::CreateStringValue("")); 488 base::Value::CreateStringValue(""));
482 provider_.AddMandatoryPolicy( 489 policy_.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
483 key::kProxyPacUrl, 490 base::Value::CreateStringValue("http://short.org/proxy.pac"));
484 base::Value::CreateStringValue("http://short.org/proxy.pac")); 491 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
485 provider_.AddMandatoryPolicy( 492 base::Value::CreateStringValue(
486 key::kProxyMode, 493 ProxyPrefs::kPacScriptProxyModeName));
487 base::Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 494 provider_.NotifyPolicyUpdated();
488 provider_.RefreshPolicies();
489 VerifyProxyPrefs("", "http://short.org/proxy.pac", "", 495 VerifyProxyPrefs("", "http://short.org/proxy.pac", "",
490 ProxyPrefs::MODE_PAC_SCRIPT); 496 ProxyPrefs::MODE_PAC_SCRIPT);
491 } 497 }
492 498
493 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyServerMode) { 499 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyServerMode) {
494 provider_.AddMandatoryPolicy( 500 policy_.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
495 key::kProxyServerMode,
496 base::Value::CreateIntegerValue( 501 base::Value::CreateIntegerValue(
497 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE)); 502 ProxyPolicyHandler::PROXY_USE_SYSTEM_PROXY_SERVER_MODE));
498 provider_.RefreshPolicies(); 503 provider_.NotifyPolicyUpdated();
499 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_SYSTEM); 504 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_SYSTEM);
500 } 505 }
501 506
502 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyMode) { 507 TEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyMode) {
503 provider_.AddMandatoryPolicy( 508 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
504 key::kProxyMode, 509 base::Value::CreateStringValue(ProxyPrefs::kSystemProxyModeName));
505 base::Value::CreateStringValue(ProxyPrefs::kSystemProxyModeName)); 510 provider_.NotifyPolicyUpdated();
506 provider_.RefreshPolicies();
507 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_SYSTEM); 511 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_SYSTEM);
508 } 512 }
509 513
510 TEST_F(ConfigurationPolicyPrefStoreProxyTest, 514 TEST_F(ConfigurationPolicyPrefStoreProxyTest,
511 ProxyModeOverridesProxyServerMode) { 515 ProxyModeOverridesProxyServerMode) {
512 provider_.AddMandatoryPolicy( 516 policy_.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
513 key::kProxyServerMode, 517 base::Value::CreateIntegerValue(
514 base::Value::CreateIntegerValue(ProxyPolicyHandler::PROXY_SERVER_MODE)); 518 ProxyPolicyHandler::PROXY_SERVER_MODE));
515 provider_.AddMandatoryPolicy( 519 policy_.Set(key::kProxyMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
516 key::kProxyMode, 520 base::Value::CreateStringValue(
517 base::Value::CreateStringValue(ProxyPrefs::kAutoDetectProxyModeName)); 521 ProxyPrefs::kAutoDetectProxyModeName));
518 provider_.RefreshPolicies(); 522 provider_.NotifyPolicyUpdated();
519 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT); 523 VerifyProxyPrefs("", "", "", ProxyPrefs::MODE_AUTO_DETECT);
520 } 524 }
521 525
522 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) { 526 TEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) {
523 // No mode expects all three parameters being set. 527 // No mode expects all three parameters being set.
524 provider_.AddMandatoryPolicy( 528 policy_.Set(key::kProxyPacUrl, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
525 key::kProxyPacUrl, 529 base::Value::CreateStringValue("http://short.org/proxy.pac"));
526 base::Value::CreateStringValue("http://short.org/proxy.pac")); 530 policy_.Set(key::kProxyBypassList, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
527 provider_.AddMandatoryPolicy( 531 base::Value::CreateStringValue("http://chromium.org/override"));
528 key::kProxyBypassList, 532 policy_.Set(key::kProxyServer, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
529 base::Value::CreateStringValue("http://chromium.org/override")); 533 base::Value::CreateStringValue("chromium.org"));
530 provider_.AddMandatoryPolicy(
531 key::kProxyServer,
532 base::Value::CreateStringValue("chromium.org"));
533 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) { 534 for (int i = 0; i < ProxyPolicyHandler::MODE_COUNT; ++i) {
534 provider_.AddMandatoryPolicy(key::kProxyServerMode, 535 policy_.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY,
535 base::Value::CreateIntegerValue(i)); 536 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(i));
536 provider_.RefreshPolicies(); 537 provider_.NotifyPolicyUpdated();
537 const base::Value* value = NULL; 538 const base::Value* value = NULL;
538 EXPECT_EQ(PrefStore::READ_NO_VALUE, 539 EXPECT_EQ(PrefStore::READ_NO_VALUE,
539 store_->GetValue(prefs::kProxy, &value)); 540 store_->GetValue(prefs::kProxy, &value));
540 } 541 }
541 } 542 }
542 543
543 class ConfigurationPolicyPrefStoreDefaultSearchTest 544 class ConfigurationPolicyPrefStoreDefaultSearchTest
544 : public ConfigurationPolicyPrefStoreTest {}; 545 : public ConfigurationPolicyPrefStoreTest {};
545 546
546 // Checks that if the policy for default search is valid, i.e. there's a 547 // Checks that if the policy for default search is valid, i.e. there's a
547 // search URL, that all the elements have been given proper defaults. 548 // search URL, that all the elements have been given proper defaults.
548 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { 549 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) {
549 const char* const search_url = "http://test.com/search?t={searchTerms}"; 550 const char* const search_url = "http://test.com/search?t={searchTerms}";
550 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEnabled, 551 policy_.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
551 base::Value::CreateBooleanValue(true)); 552 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
552 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSearchURL, 553 policy_.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
553 base::Value::CreateStringValue(search_url)); 554 POLICY_SCOPE_USER, base::Value::CreateStringValue(search_url));
554 provider_.RefreshPolicies(); 555 provider_.NotifyPolicyUpdated();
555 556
556 const base::Value* value = NULL; 557 const base::Value* value = NULL;
557 EXPECT_EQ(PrefStore::READ_OK, 558 EXPECT_EQ(PrefStore::READ_OK,
558 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 559 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
559 EXPECT_TRUE(base::StringValue(search_url).Equals(value)); 560 EXPECT_TRUE(base::StringValue(search_url).Equals(value));
560 561
561 EXPECT_EQ(PrefStore::READ_OK, 562 EXPECT_EQ(PrefStore::READ_OK,
562 store_->GetValue(prefs::kDefaultSearchProviderName, &value)); 563 store_->GetValue(prefs::kDefaultSearchProviderName, &value));
563 EXPECT_TRUE(base::StringValue("test.com").Equals(value)); 564 EXPECT_TRUE(base::StringValue("test.com").Equals(value));
564 565
(...skipping 22 matching lines...) Expand all
587 // read properly. 588 // read properly.
588 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { 589 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) {
589 const char* const search_url = "http://test.com/search?t={searchTerms}"; 590 const char* const search_url = "http://test.com/search?t={searchTerms}";
590 const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; 591 const char* const suggest_url = "http://test.com/sugg?={searchTerms}";
591 const char* const icon_url = "http://test.com/icon.jpg"; 592 const char* const icon_url = "http://test.com/icon.jpg";
592 const char* const name = "MyName"; 593 const char* const name = "MyName";
593 const char* const keyword = "MyKeyword"; 594 const char* const keyword = "MyKeyword";
594 base::ListValue* encodings = new base::ListValue(); 595 base::ListValue* encodings = new base::ListValue();
595 encodings->Append(base::Value::CreateStringValue("UTF-16")); 596 encodings->Append(base::Value::CreateStringValue("UTF-16"));
596 encodings->Append(base::Value::CreateStringValue("UTF-8")); 597 encodings->Append(base::Value::CreateStringValue("UTF-8"));
597 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEnabled, 598 policy_.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
598 base::Value::CreateBooleanValue(true)); 599 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
599 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSearchURL, 600 policy_.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
600 base::Value::CreateStringValue(search_url)); 601 POLICY_SCOPE_USER, base::Value::CreateStringValue(search_url));
601 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderName, 602 policy_.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY,
602 base::Value::CreateStringValue(name)); 603 POLICY_SCOPE_USER, base::Value::CreateStringValue(name));
603 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderKeyword, 604 policy_.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY,
604 base::Value::CreateStringValue(keyword)); 605 POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword));
605 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSuggestURL, 606 policy_.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY,
606 base::Value::CreateStringValue(suggest_url)); 607 POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url));
607 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderIconURL, 608 policy_.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY,
608 base::Value::CreateStringValue(icon_url)); 609 POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url));
609 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEncodings, encodings); 610 policy_.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY,
610 provider_.RefreshPolicies(); 611 POLICY_SCOPE_USER, encodings);
612 provider_.NotifyPolicyUpdated();
611 613
612 const base::Value* value = NULL; 614 const base::Value* value = NULL;
613 EXPECT_EQ(PrefStore::READ_OK, 615 EXPECT_EQ(PrefStore::READ_OK,
614 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 616 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
615 EXPECT_TRUE(base::StringValue(search_url).Equals(value)); 617 EXPECT_TRUE(base::StringValue(search_url).Equals(value));
616 618
617 EXPECT_EQ(PrefStore::READ_OK, 619 EXPECT_EQ(PrefStore::READ_OK,
618 store_->GetValue(prefs::kDefaultSearchProviderName, &value)); 620 store_->GetValue(prefs::kDefaultSearchProviderName, &value));
619 EXPECT_TRUE(base::StringValue(name).Equals(value)); 621 EXPECT_TRUE(base::StringValue(name).Equals(value));
620 622
(...skipping 17 matching lines...) Expand all
638 // Checks that if the default search policy is missing, that no elements of the 640 // Checks that if the default search policy is missing, that no elements of the
639 // default search policy will be present. 641 // default search policy will be present.
640 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { 642 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) {
641 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 643 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}";
642 const char* const icon_url = "http://test.com/icon.jpg"; 644 const char* const icon_url = "http://test.com/icon.jpg";
643 const char* const name = "MyName"; 645 const char* const name = "MyName";
644 const char* const keyword = "MyKeyword"; 646 const char* const keyword = "MyKeyword";
645 base::ListValue* encodings = new base::ListValue(); 647 base::ListValue* encodings = new base::ListValue();
646 encodings->Append(base::Value::CreateStringValue("UTF-16")); 648 encodings->Append(base::Value::CreateStringValue("UTF-16"));
647 encodings->Append(base::Value::CreateStringValue("UTF-8")); 649 encodings->Append(base::Value::CreateStringValue("UTF-8"));
648 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEnabled, 650 policy_.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
649 base::Value::CreateBooleanValue(true)); 651 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
650 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderName, 652 policy_.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY,
651 base::Value::CreateStringValue(name)); 653 POLICY_SCOPE_USER, base::Value::CreateStringValue(name));
652 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderKeyword, 654 policy_.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY,
653 base::Value::CreateStringValue(keyword)); 655 POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword));
654 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSuggestURL, 656 policy_.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY,
655 base::Value::CreateStringValue(suggest_url)); 657 POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url));
656 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderIconURL, 658 policy_.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY,
657 base::Value::CreateStringValue(icon_url)); 659 POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url));
658 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEncodings, encodings); 660 policy_.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY,
659 provider_.RefreshPolicies(); 661 POLICY_SCOPE_USER, encodings);
662 provider_.NotifyPolicyUpdated();
660 663
661 EXPECT_EQ(PrefStore::READ_NO_VALUE, 664 EXPECT_EQ(PrefStore::READ_NO_VALUE,
662 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 665 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL));
663 EXPECT_EQ(PrefStore::READ_NO_VALUE, 666 EXPECT_EQ(PrefStore::READ_NO_VALUE,
664 store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); 667 store_->GetValue(prefs::kDefaultSearchProviderName, NULL));
665 EXPECT_EQ(PrefStore::READ_NO_VALUE, 668 EXPECT_EQ(PrefStore::READ_NO_VALUE,
666 store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 669 store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL));
667 EXPECT_EQ(PrefStore::READ_NO_VALUE, 670 EXPECT_EQ(PrefStore::READ_NO_VALUE,
668 store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 671 store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL));
669 EXPECT_EQ(PrefStore::READ_NO_VALUE, 672 EXPECT_EQ(PrefStore::READ_NO_VALUE,
670 store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 673 store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL));
671 EXPECT_EQ(PrefStore::READ_NO_VALUE, 674 EXPECT_EQ(PrefStore::READ_NO_VALUE,
672 store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 675 store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL));
673 } 676 }
674 677
675 // Checks that if the default search policy is invalid, that no elements of the 678 // Checks that if the default search policy is invalid, that no elements of the
676 // default search policy will be present. 679 // default search policy will be present.
677 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { 680 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) {
678 const char* const bad_search_url = "http://test.com/noSearchTerms"; 681 const char* const bad_search_url = "http://test.com/noSearchTerms";
679 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 682 const char* const suggest_url = "http://test.com/sugg?t={searchTerms}";
680 const char* const icon_url = "http://test.com/icon.jpg"; 683 const char* const icon_url = "http://test.com/icon.jpg";
681 const char* const name = "MyName"; 684 const char* const name = "MyName";
682 const char* const keyword = "MyKeyword"; 685 const char* const keyword = "MyKeyword";
683 base::ListValue* encodings = new base::ListValue(); 686 base::ListValue* encodings = new base::ListValue();
684 encodings->Append(base::Value::CreateStringValue("UTF-16")); 687 encodings->Append(base::Value::CreateStringValue("UTF-16"));
685 encodings->Append(base::Value::CreateStringValue("UTF-8")); 688 encodings->Append(base::Value::CreateStringValue("UTF-8"));
686 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEnabled, 689 policy_.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
687 base::Value::CreateBooleanValue(true)); 690 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
688 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSearchURL, 691 policy_.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
689 base::Value::CreateStringValue(bad_search_url)); 692 POLICY_SCOPE_USER,
690 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderName, 693 base::Value::CreateStringValue(bad_search_url));
691 base::Value::CreateStringValue(name)); 694 policy_.Set(key::kDefaultSearchProviderName, POLICY_LEVEL_MANDATORY,
692 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderKeyword, 695 POLICY_SCOPE_USER, base::Value::CreateStringValue(name));
693 base::Value::CreateStringValue(keyword)); 696 policy_.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY,
694 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderSuggestURL, 697 POLICY_SCOPE_USER, base::Value::CreateStringValue(keyword));
695 base::Value::CreateStringValue(suggest_url)); 698 policy_.Set(key::kDefaultSearchProviderSuggestURL, POLICY_LEVEL_MANDATORY,
696 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderIconURL, 699 POLICY_SCOPE_USER, base::Value::CreateStringValue(suggest_url));
697 base::Value::CreateStringValue(icon_url)); 700 policy_.Set(key::kDefaultSearchProviderIconURL, POLICY_LEVEL_MANDATORY,
698 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEncodings, encodings); 701 POLICY_SCOPE_USER, base::Value::CreateStringValue(icon_url));
699 provider_.RefreshPolicies(); 702 policy_.Set(key::kDefaultSearchProviderEncodings, POLICY_LEVEL_MANDATORY,
703 POLICY_SCOPE_USER, encodings);
704 provider_.NotifyPolicyUpdated();
700 705
701 EXPECT_EQ(PrefStore::READ_NO_VALUE, 706 EXPECT_EQ(PrefStore::READ_NO_VALUE,
702 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 707 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL));
703 EXPECT_EQ(PrefStore::READ_NO_VALUE, 708 EXPECT_EQ(PrefStore::READ_NO_VALUE,
704 store_->GetValue(prefs::kDefaultSearchProviderName, NULL)); 709 store_->GetValue(prefs::kDefaultSearchProviderName, NULL));
705 EXPECT_EQ(PrefStore::READ_NO_VALUE, 710 EXPECT_EQ(PrefStore::READ_NO_VALUE,
706 store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 711 store_->GetValue(prefs::kDefaultSearchProviderKeyword, NULL));
707 EXPECT_EQ(PrefStore::READ_NO_VALUE, 712 EXPECT_EQ(PrefStore::READ_NO_VALUE,
708 store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 713 store_->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL));
709 EXPECT_EQ(PrefStore::READ_NO_VALUE, 714 EXPECT_EQ(PrefStore::READ_NO_VALUE,
710 store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 715 store_->GetValue(prefs::kDefaultSearchProviderIconURL, NULL));
711 EXPECT_EQ(PrefStore::READ_NO_VALUE, 716 EXPECT_EQ(PrefStore::READ_NO_VALUE,
712 store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 717 store_->GetValue(prefs::kDefaultSearchProviderEncodings, NULL));
713 } 718 }
714 719
715 // Checks that if the default search policy is invalid, that no elements of the 720 // Checks that if the default search policy is invalid, that no elements of the
716 // default search policy will be present. 721 // default search policy will be present.
717 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Disabled) { 722 TEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Disabled) {
718 provider_.AddMandatoryPolicy(key::kDefaultSearchProviderEnabled, 723 policy_.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
719 base::Value::CreateBooleanValue(false)); 724 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false));
720 provider_.RefreshPolicies(); 725 provider_.NotifyPolicyUpdated();
721 726
722 const base::Value* value = NULL; 727 const base::Value* value = NULL;
723 EXPECT_EQ(PrefStore::READ_OK, 728 EXPECT_EQ(PrefStore::READ_OK,
724 store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value)); 729 store_->GetValue(prefs::kDefaultSearchProviderEnabled, &value));
725 base::FundamentalValue expected_enabled(false); 730 base::FundamentalValue expected_enabled(false);
726 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value)); 731 EXPECT_TRUE(base::Value::Equals(&expected_enabled, value));
727 EXPECT_EQ(PrefStore::READ_OK, 732 EXPECT_EQ(PrefStore::READ_OK,
728 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 733 store_->GetValue(prefs::kDefaultSearchProviderSearchURL, &value));
729 base::StringValue expected_search_url(""); 734 base::StringValue expected_search_url("");
730 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value)); 735 EXPECT_TRUE(base::Value::Equals(&expected_search_url, value));
731 } 736 }
732 737
733 // Tests Incognito mode availability preference setting. 738 // Tests Incognito mode availability preference setting.
734 class ConfigurationPolicyPrefStoreIncognitoModeTest 739 class ConfigurationPolicyPrefStoreIncognitoModeTest
735 : public ConfigurationPolicyPrefStoreTest { 740 : public ConfigurationPolicyPrefStoreTest {
736 protected: 741 protected:
737 static const int kIncognitoModeAvailabilityNotSet = -1; 742 static const int kIncognitoModeAvailabilityNotSet = -1;
738 743
739 enum ObsoleteIncognitoEnabledValue { 744 enum ObsoleteIncognitoEnabledValue {
740 INCOGNITO_ENABLED_UNKNOWN, 745 INCOGNITO_ENABLED_UNKNOWN,
741 INCOGNITO_ENABLED_TRUE, 746 INCOGNITO_ENABLED_TRUE,
742 INCOGNITO_ENABLED_FALSE 747 INCOGNITO_ENABLED_FALSE
743 }; 748 };
744 749
745 void SetPolicies(ObsoleteIncognitoEnabledValue incognito_enabled, 750 void SetPolicies(ObsoleteIncognitoEnabledValue incognito_enabled,
746 int availability) { 751 int availability) {
747 if (incognito_enabled != INCOGNITO_ENABLED_UNKNOWN) { 752 if (incognito_enabled != INCOGNITO_ENABLED_UNKNOWN) {
748 provider_.AddMandatoryPolicy( 753 policy_.Set(key::kIncognitoEnabled, POLICY_LEVEL_MANDATORY,
749 key::kIncognitoEnabled, 754 POLICY_SCOPE_USER,
750 base::Value::CreateBooleanValue( 755 base::Value::CreateBooleanValue(
751 incognito_enabled == INCOGNITO_ENABLED_TRUE)); 756 incognito_enabled == INCOGNITO_ENABLED_TRUE));
752 } 757 }
753 if (availability >= 0) { 758 if (availability >= 0) {
754 provider_.AddMandatoryPolicy( 759 policy_.Set(key::kIncognitoModeAvailability, POLICY_LEVEL_MANDATORY,
755 key::kIncognitoModeAvailability, 760 POLICY_SCOPE_USER,
756 base::Value::CreateIntegerValue(availability)); 761 base::Value::CreateIntegerValue(availability));
757 } 762 }
758 provider_.RefreshPolicies(); 763 provider_.NotifyPolicyUpdated();
759 } 764 }
760 765
761 void VerifyValues(IncognitoModePrefs::Availability availability) { 766 void VerifyValues(IncognitoModePrefs::Availability availability) {
762 const base::Value* value = NULL; 767 const base::Value* value = NULL;
763 EXPECT_EQ(PrefStore::READ_OK, 768 EXPECT_EQ(PrefStore::READ_OK,
764 store_->GetValue(prefs::kIncognitoModeAvailability, &value)); 769 store_->GetValue(prefs::kIncognitoModeAvailability, &value));
765 EXPECT_TRUE(base::FundamentalValue(availability).Equals(value)); 770 EXPECT_TRUE(base::FundamentalValue(availability).Equals(value));
766 } 771 }
767 }; 772 };
768 773
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 // Test cases for the Sync policy setting. 830 // Test cases for the Sync policy setting.
826 class ConfigurationPolicyPrefStoreSyncTest 831 class ConfigurationPolicyPrefStoreSyncTest
827 : public ConfigurationPolicyPrefStoreTest {}; 832 : public ConfigurationPolicyPrefStoreTest {};
828 833
829 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) { 834 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) {
830 EXPECT_EQ(PrefStore::READ_NO_VALUE, 835 EXPECT_EQ(PrefStore::READ_NO_VALUE,
831 store_->GetValue(prefs::kSyncManaged, NULL)); 836 store_->GetValue(prefs::kSyncManaged, NULL));
832 } 837 }
833 838
834 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) { 839 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) {
835 provider_.AddMandatoryPolicy(key::kSyncDisabled, 840 policy_.Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
836 base::Value::CreateBooleanValue(false)); 841 base::Value::CreateBooleanValue(false));
837 provider_.RefreshPolicies(); 842 provider_.NotifyPolicyUpdated();
838 // Enabling Sync should not set the pref. 843 // Enabling Sync should not set the pref.
839 EXPECT_EQ(PrefStore::READ_NO_VALUE, 844 EXPECT_EQ(PrefStore::READ_NO_VALUE,
840 store_->GetValue(prefs::kSyncManaged, NULL)); 845 store_->GetValue(prefs::kSyncManaged, NULL));
841 } 846 }
842 847
843 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) { 848 TEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) {
844 provider_.AddMandatoryPolicy(key::kSyncDisabled, 849 policy_.Set(key::kSyncDisabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
845 base::Value::CreateBooleanValue(true)); 850 base::Value::CreateBooleanValue(true));
846 provider_.RefreshPolicies(); 851 provider_.NotifyPolicyUpdated();
847 // Sync should be flagged as managed. 852 // Sync should be flagged as managed.
848 const base::Value* value = NULL; 853 const base::Value* value = NULL;
849 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kSyncManaged, &value)); 854 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kSyncManaged, &value));
850 ASSERT_TRUE(value); 855 ASSERT_TRUE(value);
851 bool sync_managed = false; 856 bool sync_managed = false;
852 bool result = value->GetAsBoolean(&sync_managed); 857 bool result = value->GetAsBoolean(&sync_managed);
853 ASSERT_TRUE(result); 858 ASSERT_TRUE(result);
854 EXPECT_TRUE(sync_managed); 859 EXPECT_TRUE(sync_managed);
855 } 860 }
856 861
857 // Test cases for how the DownloadDirectory and AllowFileSelectionDialogs policy 862 // Test cases for how the DownloadDirectory and AllowFileSelectionDialogs policy
858 // influence the PromptForDownload preference. 863 // influence the PromptForDownload preference.
859 class ConfigurationPolicyPrefStorePromptDownloadTest 864 class ConfigurationPolicyPrefStorePromptDownloadTest
860 : public ConfigurationPolicyPrefStoreTest {}; 865 : public ConfigurationPolicyPrefStoreTest {};
861 866
862 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, Default) { 867 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, Default) {
863 EXPECT_EQ(PrefStore::READ_NO_VALUE, 868 EXPECT_EQ(PrefStore::READ_NO_VALUE,
864 store_->GetValue(prefs::kPromptForDownload, NULL)); 869 store_->GetValue(prefs::kPromptForDownload, NULL));
865 } 870 }
866 871
867 #if !defined(OS_CHROMEOS) 872 #if !defined(OS_CHROMEOS)
868 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, SetDownloadDirectory) { 873 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, SetDownloadDirectory) {
869 EXPECT_EQ(PrefStore::READ_NO_VALUE, 874 EXPECT_EQ(PrefStore::READ_NO_VALUE,
870 store_->GetValue(prefs::kPromptForDownload, NULL)); 875 store_->GetValue(prefs::kPromptForDownload, NULL));
871 provider_.AddMandatoryPolicy(key::kDownloadDirectory, 876 policy_.Set(key::kDownloadDirectory, POLICY_LEVEL_MANDATORY,
872 base::Value::CreateStringValue("")); 877 POLICY_SCOPE_USER, base::Value::CreateStringValue(""));
873 provider_.RefreshPolicies(); 878 provider_.NotifyPolicyUpdated();
874 879
875 // Setting a DownloadDirectory should disable the PromptForDownload pref. 880 // Setting a DownloadDirectory should disable the PromptForDownload pref.
876 const base::Value* value = NULL; 881 const base::Value* value = NULL;
877 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kPromptForDownload, 882 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kPromptForDownload,
878 &value)); 883 &value));
879 ASSERT_TRUE(value); 884 ASSERT_TRUE(value);
880 bool prompt_for_download = true; 885 bool prompt_for_download = true;
881 bool result = value->GetAsBoolean(&prompt_for_download); 886 bool result = value->GetAsBoolean(&prompt_for_download);
882 ASSERT_TRUE(result); 887 ASSERT_TRUE(result);
883 EXPECT_FALSE(prompt_for_download); 888 EXPECT_FALSE(prompt_for_download);
884 } 889 }
885 #endif // !defined(OS_CHROMEOS) 890 #endif // !defined(OS_CHROMEOS)
886 891
887 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, 892 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest,
888 EnableFileSelectionDialogs) { 893 EnableFileSelectionDialogs) {
889 EXPECT_EQ(PrefStore::READ_NO_VALUE, 894 EXPECT_EQ(PrefStore::READ_NO_VALUE,
890 store_->GetValue(prefs::kPromptForDownload, NULL)); 895 store_->GetValue(prefs::kPromptForDownload, NULL));
891 provider_.AddMandatoryPolicy(key::kAllowFileSelectionDialogs, 896 policy_.Set(key::kAllowFileSelectionDialogs, POLICY_LEVEL_MANDATORY,
892 base::Value::CreateBooleanValue(true)); 897 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
893 provider_.RefreshPolicies(); 898 provider_.NotifyPolicyUpdated();
894 899
895 // Allowing file-selection dialogs should not influence the PromptForDownload 900 // Allowing file-selection dialogs should not influence the PromptForDownload
896 // pref. 901 // pref.
897 EXPECT_EQ(PrefStore::READ_NO_VALUE, 902 EXPECT_EQ(PrefStore::READ_NO_VALUE,
898 store_->GetValue(prefs::kPromptForDownload, NULL)); 903 store_->GetValue(prefs::kPromptForDownload, NULL));
899 } 904 }
900 905
901 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest, 906 TEST_F(ConfigurationPolicyPrefStorePromptDownloadTest,
902 DisableFileSelectionDialogs) { 907 DisableFileSelectionDialogs) {
903 EXPECT_EQ(PrefStore::READ_NO_VALUE, 908 EXPECT_EQ(PrefStore::READ_NO_VALUE,
904 store_->GetValue(prefs::kPromptForDownload, NULL)); 909 store_->GetValue(prefs::kPromptForDownload, NULL));
905 provider_.AddMandatoryPolicy(key::kAllowFileSelectionDialogs, 910 policy_.Set(key::kAllowFileSelectionDialogs, POLICY_LEVEL_MANDATORY,
906 base::Value::CreateBooleanValue(false)); 911 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false));
907 provider_.RefreshPolicies(); 912 provider_.NotifyPolicyUpdated();
908 913
909 // Disabling file-selection dialogs should disable the PromptForDownload pref. 914 // Disabling file-selection dialogs should disable the PromptForDownload pref.
910 const base::Value* value = NULL; 915 const base::Value* value = NULL;
911 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kPromptForDownload, 916 EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kPromptForDownload,
912 &value)); 917 &value));
913 ASSERT_TRUE(value); 918 ASSERT_TRUE(value);
914 bool prompt_for_download = true; 919 bool prompt_for_download = true;
915 bool result = value->GetAsBoolean(&prompt_for_download); 920 bool result = value->GetAsBoolean(&prompt_for_download);
916 ASSERT_TRUE(result); 921 ASSERT_TRUE(result);
917 EXPECT_FALSE(prompt_for_download); 922 EXPECT_FALSE(prompt_for_download);
918 } 923 }
919 924
920 // Test cases for the Autofill policy setting. 925 // Test cases for the Autofill policy setting.
921 class ConfigurationPolicyPrefStoreAutofillTest 926 class ConfigurationPolicyPrefStoreAutofillTest
922 : public ConfigurationPolicyPrefStoreTest {}; 927 : public ConfigurationPolicyPrefStoreTest {};
923 928
924 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Default) { 929 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Default) {
925 EXPECT_EQ(PrefStore::READ_NO_VALUE, 930 EXPECT_EQ(PrefStore::READ_NO_VALUE,
926 store_->GetValue(prefs::kAutofillEnabled, NULL)); 931 store_->GetValue(prefs::kAutofillEnabled, NULL));
927 } 932 }
928 933
929 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Enabled) { 934 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Enabled) {
930 provider_.AddMandatoryPolicy(key::kAutoFillEnabled, 935 policy_.Set(key::kAutoFillEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
931 base::Value::CreateBooleanValue(true)); 936 base::Value::CreateBooleanValue(true));
932 provider_.RefreshPolicies(); 937 provider_.NotifyPolicyUpdated();
933 // Enabling Autofill should not set the pref. 938 // Enabling Autofill should not set the pref.
934 EXPECT_EQ(PrefStore::READ_NO_VALUE, 939 EXPECT_EQ(PrefStore::READ_NO_VALUE,
935 store_->GetValue(prefs::kAutofillEnabled, NULL)); 940 store_->GetValue(prefs::kAutofillEnabled, NULL));
936 } 941 }
937 942
938 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Disabled) { 943 TEST_F(ConfigurationPolicyPrefStoreAutofillTest, Disabled) {
939 provider_.AddMandatoryPolicy(key::kAutoFillEnabled, 944 policy_.Set(key::kAutoFillEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
940 base::Value::CreateBooleanValue(false)); 945 base::Value::CreateBooleanValue(false));
941 provider_.RefreshPolicies(); 946 provider_.NotifyPolicyUpdated();
942 // Disabling Autofill should switch the pref to managed. 947 // Disabling Autofill should switch the pref to managed.
943 const base::Value* value = NULL; 948 const base::Value* value = NULL;
944 EXPECT_EQ(PrefStore::READ_OK, 949 EXPECT_EQ(PrefStore::READ_OK,
945 store_->GetValue(prefs::kAutofillEnabled, &value)); 950 store_->GetValue(prefs::kAutofillEnabled, &value));
946 ASSERT_TRUE(value); 951 ASSERT_TRUE(value);
947 bool autofill_enabled = true; 952 bool autofill_enabled = true;
948 bool result = value->GetAsBoolean(&autofill_enabled); 953 bool result = value->GetAsBoolean(&autofill_enabled);
949 ASSERT_TRUE(result); 954 ASSERT_TRUE(result);
950 EXPECT_FALSE(autofill_enabled); 955 EXPECT_FALSE(autofill_enabled);
951 } 956 }
952 957
953 // Exercises the policy refresh mechanism. 958 // Exercises the policy refresh mechanism.
954 class ConfigurationPolicyPrefStoreRefreshTest 959 class ConfigurationPolicyPrefStoreRefreshTest
955 : public ConfigurationPolicyPrefStoreTest { 960 : public ConfigurationPolicyPrefStoreTest {
956 protected: 961 protected:
957 virtual void SetUp() { 962 virtual void SetUp() {
958 store_->AddObserver(&observer_); 963 store_->AddObserver(&observer_);
959 } 964 }
960 965
961 virtual void TearDown() { 966 virtual void TearDown() {
962 store_->RemoveObserver(&observer_); 967 store_->RemoveObserver(&observer_);
963 } 968 }
964 969
970 void ResetServiceAndStore() {
Mattias Nissler (ping if slow) 2012/04/27 09:03:27 Since this is not declared virtual in Configuratio
Joao da Silva 2012/04/27 11:24:12 It's intentional; using different names to avoid c
971 store_->RemoveObserver(&observer_);
972 ConfigurationPolicyPrefStoreTest::ResetServiceAndStore();
973 store_->AddObserver(&observer_);
974 }
975
965 PrefStoreObserverMock observer_; 976 PrefStoreObserverMock observer_;
966 }; 977 };
967 978
968 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { 979 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) {
969 const base::Value* value = NULL; 980 const base::Value* value = NULL;
970 EXPECT_EQ(PrefStore::READ_NO_VALUE, 981 EXPECT_EQ(PrefStore::READ_NO_VALUE,
971 store_->GetValue(prefs::kHomePage, NULL)); 982 store_->GetValue(prefs::kHomePage, NULL));
972 983
973 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); 984 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1);
974 provider_.AddMandatoryPolicy( 985 policy_.Set(key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
975 key::kHomepageLocation, 986 base::Value::CreateStringValue("http://www.chromium.org"));
976 base::Value::CreateStringValue("http://www.chromium.org")); 987 provider_.NotifyPolicyUpdated();
977 provider_.RefreshPolicies();
978 Mock::VerifyAndClearExpectations(&observer_); 988 Mock::VerifyAndClearExpectations(&observer_);
979 EXPECT_EQ(PrefStore::READ_OK, 989 EXPECT_EQ(PrefStore::READ_OK,
980 store_->GetValue(prefs::kHomePage, &value)); 990 store_->GetValue(prefs::kHomePage, &value));
981 EXPECT_TRUE(base::StringValue("http://www.chromium.org").Equals(value)); 991 EXPECT_TRUE(base::StringValue("http://www.chromium.org").Equals(value));
982 992
983 EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0); 993 EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0);
984 provider_.RefreshPolicies(); 994 provider_.NotifyPolicyUpdated();
985 Mock::VerifyAndClearExpectations(&observer_); 995 Mock::VerifyAndClearExpectations(&observer_);
986 996
987 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); 997 EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1);
988 provider_.RemovePolicy(key::kHomepageLocation); 998 policy_.Erase(key::kHomepageLocation);
989 provider_.RefreshPolicies(); 999 provider_.NotifyPolicyUpdated();
990 Mock::VerifyAndClearExpectations(&observer_); 1000 Mock::VerifyAndClearExpectations(&observer_);
991 EXPECT_EQ(PrefStore::READ_NO_VALUE, 1001 EXPECT_EQ(PrefStore::READ_NO_VALUE,
992 store_->GetValue(prefs::kHomePage, NULL)); 1002 store_->GetValue(prefs::kHomePage, NULL));
993 } 1003 }
994 1004
995 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { 1005 TEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) {
1006 EXPECT_CALL(provider_, IsInitializationComplete())
1007 .WillRepeatedly(Return(false));
1008 ResetServiceAndStore();
Mattias Nissler (ping if slow) 2012/04/27 09:03:27 Why is this necessary?
Joao da Silva 2012/04/27 11:24:12 Because store_, as created from SetUp, is already
Mattias Nissler (ping if slow) 2012/04/27 12:52:58 Can't we just initialize with IsInitializationComp
Joao da Silva 2012/04/27 13:46:29 I've realized that the store can be uninitialized
996 EXPECT_FALSE(store_->IsInitializationComplete()); 1009 EXPECT_FALSE(store_->IsInitializationComplete());
997 1010
1011 EXPECT_CALL(provider_, IsInitializationComplete())
1012 .WillRepeatedly(Return(true));
998 EXPECT_CALL(observer_, OnInitializationCompleted(true)).Times(1); 1013 EXPECT_CALL(observer_, OnInitializationCompleted(true)).Times(1);
999 1014 provider_.NotifyPolicyUpdated();
1000 provider_.SetInitializationComplete(true);
1001 EXPECT_FALSE(store_->IsInitializationComplete());
1002
1003 provider_.RefreshPolicies();
1004 Mock::VerifyAndClearExpectations(&observer_); 1015 Mock::VerifyAndClearExpectations(&observer_);
1005 EXPECT_TRUE(store_->IsInitializationComplete()); 1016 EXPECT_TRUE(store_->IsInitializationComplete());
1006 } 1017 }
1007 1018
1008 // Tests for policies that don't quite fit the previous patterns. 1019 // Tests for policies that don't quite fit the previous patterns.
1009 class ConfigurationPolicyPrefStoreOthersTest 1020 class ConfigurationPolicyPrefStoreOthersTest
1010 : public ConfigurationPolicyPrefStoreTest {}; 1021 : public ConfigurationPolicyPrefStoreTest {};
1011 1022
1012 TEST_F(ConfigurationPolicyPrefStoreOthersTest, JavascriptEnabled) { 1023 TEST_F(ConfigurationPolicyPrefStoreOthersTest, JavascriptEnabled) {
1013 // This is a boolean policy, but affects an integer preference. 1024 // This is a boolean policy, but affects an integer preference.
1014 EXPECT_EQ(PrefStore::READ_NO_VALUE, 1025 EXPECT_EQ(PrefStore::READ_NO_VALUE,
1015 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 1026 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL));
1016 provider_.AddMandatoryPolicy(key::kJavascriptEnabled, 1027 policy_.Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY,
1017 base::Value::CreateBooleanValue(true)); 1028 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
1018 provider_.RefreshPolicies(); 1029 provider_.NotifyPolicyUpdated();
1019 EXPECT_EQ(PrefStore::READ_NO_VALUE, 1030 EXPECT_EQ(PrefStore::READ_NO_VALUE,
1020 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 1031 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL));
1021 provider_.AddMandatoryPolicy(key::kJavascriptEnabled, 1032 policy_.Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY,
1022 base::Value::CreateBooleanValue(false)); 1033 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false));
1023 provider_.RefreshPolicies(); 1034 provider_.NotifyPolicyUpdated();
1024 const base::Value* value = NULL; 1035 const base::Value* value = NULL;
1025 EXPECT_EQ(PrefStore::READ_OK, 1036 EXPECT_EQ(PrefStore::READ_OK,
1026 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value)); 1037 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value));
1027 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value)); 1038 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value));
1028 } 1039 }
1029 1040
1030 TEST_F(ConfigurationPolicyPrefStoreOthersTest, JavascriptEnabledOverridden) { 1041 TEST_F(ConfigurationPolicyPrefStoreOthersTest, JavascriptEnabledOverridden) {
1031 EXPECT_EQ(PrefStore::READ_NO_VALUE, 1042 EXPECT_EQ(PrefStore::READ_NO_VALUE,
1032 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 1043 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL));
1033 provider_.AddMandatoryPolicy(key::kJavascriptEnabled, 1044 policy_.Set(key::kJavascriptEnabled, POLICY_LEVEL_MANDATORY,
1034 base::Value::CreateBooleanValue(false)); 1045 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(false));
1035 provider_.RefreshPolicies(); 1046 provider_.NotifyPolicyUpdated();
1036 const base::Value* value = NULL; 1047 const base::Value* value = NULL;
1037 EXPECT_EQ(PrefStore::READ_OK, 1048 EXPECT_EQ(PrefStore::READ_OK,
1038 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value)); 1049 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value));
1039 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value)); 1050 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value));
1040 // DefaultJavaScriptSetting overrides JavascriptEnabled. 1051 // DefaultJavaScriptSetting overrides JavascriptEnabled.
1041 provider_.AddMandatoryPolicy( 1052 policy_.Set(key::kDefaultJavaScriptSetting, POLICY_LEVEL_MANDATORY,
1042 key::kDefaultJavaScriptSetting, 1053 POLICY_SCOPE_USER,
1043 base::Value::CreateIntegerValue(CONTENT_SETTING_ALLOW)); 1054 base::Value::CreateIntegerValue(CONTENT_SETTING_ALLOW));
1044 provider_.RefreshPolicies(); 1055 provider_.NotifyPolicyUpdated();
1045 EXPECT_EQ(PrefStore::READ_OK, 1056 EXPECT_EQ(PrefStore::READ_OK,
1046 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value)); 1057 store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, &value));
1047 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_ALLOW).Equals(value)); 1058 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_ALLOW).Equals(value));
1048 } 1059 }
1049 1060
1050 } // namespace policy 1061 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698