OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/policy/configuration_policy_provider_test.h" | 5 #include "chrome/browser/policy/configuration_policy_provider_test.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/policy/configuration_policy_provider.h" | 10 #include "chrome/browser/policy/configuration_policy_provider.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 PolicyProviderTestHarness::~PolicyProviderTestHarness() {} | 59 PolicyProviderTestHarness::~PolicyProviderTestHarness() {} |
60 | 60 |
61 PolicyLevel PolicyProviderTestHarness::policy_level() const { | 61 PolicyLevel PolicyProviderTestHarness::policy_level() const { |
62 return level_; | 62 return level_; |
63 } | 63 } |
64 | 64 |
65 PolicyScope PolicyProviderTestHarness::policy_scope() const { | 65 PolicyScope PolicyProviderTestHarness::policy_scope() const { |
66 return scope_; | 66 return scope_; |
67 } | 67 } |
68 | 68 |
| 69 void PolicyProviderTestHarness::Install3rdPartyPolicy( |
| 70 const base::DictionaryValue* policies) { |
| 71 FAIL(); |
| 72 } |
| 73 |
69 ConfigurationPolicyProviderTest::ConfigurationPolicyProviderTest() {} | 74 ConfigurationPolicyProviderTest::ConfigurationPolicyProviderTest() {} |
70 | 75 |
71 ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {} | 76 ConfigurationPolicyProviderTest::~ConfigurationPolicyProviderTest() {} |
72 | 77 |
73 void ConfigurationPolicyProviderTest::SetUp() { | 78 void ConfigurationPolicyProviderTest::SetUp() { |
74 PolicyTestBase::SetUp(); | 79 PolicyTestBase::SetUp(); |
75 | 80 |
76 test_harness_.reset((*GetParam())()); | 81 test_harness_.reset((*GetParam())()); |
77 test_harness_->SetUp(); | 82 test_harness_->SetUp(); |
78 | 83 |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 | 254 |
250 PolicyBundle expected_bundle; | 255 PolicyBundle expected_bundle; |
251 base::DictionaryValue* expected_value = new base::DictionaryValue(); | 256 base::DictionaryValue* expected_value = new base::DictionaryValue(); |
252 expected_value->SetInteger(key::kProxyServerMode, 3); | 257 expected_value->SetInteger(key::kProxyServerMode, 3); |
253 expected_bundle.Get(POLICY_DOMAIN_CHROME, "") | 258 expected_bundle.Get(POLICY_DOMAIN_CHROME, "") |
254 .Set(key::kProxySettings, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 259 .Set(key::kProxySettings, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
255 expected_value); | 260 expected_value); |
256 EXPECT_TRUE(provider.policies().Equals(expected_bundle)); | 261 EXPECT_TRUE(provider.policies().Equals(expected_bundle)); |
257 } | 262 } |
258 | 263 |
| 264 Configuration3rdPartyPolicyProviderTest:: |
| 265 Configuration3rdPartyPolicyProviderTest() {} |
| 266 |
| 267 Configuration3rdPartyPolicyProviderTest:: |
| 268 ~Configuration3rdPartyPolicyProviderTest() {} |
| 269 |
| 270 TEST_P(Configuration3rdPartyPolicyProviderTest, Load3rdParty) { |
| 271 base::DictionaryValue policy_dict; |
| 272 policy_dict.SetBoolean("bool", true); |
| 273 policy_dict.SetDouble("double", 123.456); |
| 274 policy_dict.SetInteger("int", 789); |
| 275 policy_dict.SetString("str", "string value"); |
| 276 |
| 277 base::ListValue* list = new base::ListValue(); |
| 278 for (int i = 0; i < 2; ++i) { |
| 279 base::DictionaryValue* dict = new base::DictionaryValue(); |
| 280 dict->SetInteger("subdictindex", i); |
| 281 dict->Set("subdict", policy_dict.DeepCopy()); |
| 282 list->Append(dict); |
| 283 } |
| 284 policy_dict.Set("list", list); |
| 285 policy_dict.Set("dict", policy_dict.DeepCopy()); |
| 286 |
| 287 // Install these policies as a Chrome policy. |
| 288 test_harness_->InstallDictionaryPolicy( |
| 289 test_policy_definitions::kKeyDictionary, &policy_dict); |
| 290 // Install them as 3rd party policies too. |
| 291 base::DictionaryValue policy_3rdparty; |
| 292 policy_3rdparty.Set("extensions.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", |
| 293 policy_dict.DeepCopy()); |
| 294 policy_3rdparty.Set("extensions.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", |
| 295 policy_dict.DeepCopy()); |
| 296 // Install invalid 3rd party policies that shouldn't be loaded. These also |
| 297 // help detecting memory leaks in the code paths that detect invalid input. |
| 298 policy_3rdparty.Set("invalid-domain.component", policy_dict.DeepCopy()); |
| 299 policy_3rdparty.Set("extensions.cccccccccccccccccccccccccccccccc", |
| 300 base::Value::CreateStringValue("invalid-value")); |
| 301 test_harness_->Install3rdPartyPolicy(&policy_3rdparty); |
| 302 |
| 303 provider_->RefreshPolicies(); |
| 304 loop_.RunAllPending(); |
| 305 |
| 306 PolicyMap expected_policy; |
| 307 expected_policy.Set(test_policy_definitions::kKeyDictionary, |
| 308 test_harness_->policy_level(), |
| 309 test_harness_->policy_scope(), |
| 310 policy_dict.DeepCopy()); |
| 311 PolicyBundle expected_bundle; |
| 312 expected_bundle.Get(POLICY_DOMAIN_CHROME, "").CopyFrom(expected_policy); |
| 313 expected_policy.Clear(); |
| 314 expected_policy.LoadFrom(&policy_dict, |
| 315 test_harness_->policy_level(), |
| 316 test_harness_->policy_scope()); |
| 317 expected_bundle.Get(POLICY_DOMAIN_EXTENSIONS, |
| 318 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") |
| 319 .CopyFrom(expected_policy); |
| 320 expected_bundle.Get(POLICY_DOMAIN_EXTENSIONS, |
| 321 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb") |
| 322 .CopyFrom(expected_policy); |
| 323 EXPECT_TRUE(provider_->policies().Equals(expected_bundle)); |
| 324 } |
| 325 |
259 } // namespace policy | 326 } // namespace policy |
OLD | NEW |