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

Side by Side Diff: components/policy/core/common/policy_service_impl_unittest.cc

Issue 388963002: Get rid of the rest of CreateStringValue (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tweaks Created 6 years, 5 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 "components/policy/core/common/policy_service_impl.h" 5 #include "components/policy/core/common/policy_service_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 return base::Value::Equals(arg, expected); 42 return base::Value::Equals(arg, expected);
43 } 43 }
44 44
45 // Helper that fills |bundle| with test policies. 45 // Helper that fills |bundle| with test policies.
46 void AddTestPolicies(PolicyBundle* bundle, 46 void AddTestPolicies(PolicyBundle* bundle,
47 const char* value, 47 const char* value,
48 PolicyLevel level, 48 PolicyLevel level,
49 PolicyScope scope) { 49 PolicyScope scope) {
50 PolicyMap* policy_map = 50 PolicyMap* policy_map =
51 &bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())); 51 &bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()));
52 policy_map->Set(kSameLevelPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 52 policy_map->Set(kSameLevelPolicy,
53 base::Value::CreateStringValue(value), NULL); 53 POLICY_LEVEL_MANDATORY,
54 policy_map->Set(kDiffLevelPolicy, level, scope, 54 POLICY_SCOPE_USER,
55 base::Value::CreateStringValue(value), NULL); 55 new base::StringValue(value),
56 NULL);
57 policy_map->Set(
58 kDiffLevelPolicy, level, scope, new base::StringValue(value), NULL);
56 policy_map = 59 policy_map =
57 &bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension)); 60 &bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension));
58 policy_map->Set(kSameLevelPolicy, POLICY_LEVEL_MANDATORY, 61 policy_map->Set(kSameLevelPolicy,
59 POLICY_SCOPE_USER, base::Value::CreateStringValue(value), 62 POLICY_LEVEL_MANDATORY,
63 POLICY_SCOPE_USER,
64 new base::StringValue(value),
60 NULL); 65 NULL);
61 policy_map->Set(kDiffLevelPolicy, level, scope, 66 policy_map->Set(
62 base::Value::CreateStringValue(value), NULL); 67 kDiffLevelPolicy, level, scope, new base::StringValue(value), NULL);
63 } 68 }
64 69
65 // Observer class that changes the policy in the passed provider when the 70 // Observer class that changes the policy in the passed provider when the
66 // callback is invoked. 71 // callback is invoked.
67 class ChangePolicyObserver : public PolicyService::Observer { 72 class ChangePolicyObserver : public PolicyService::Observer {
68 public: 73 public:
69 explicit ChangePolicyObserver(MockConfigurationPolicyProvider* provider) 74 explicit ChangePolicyObserver(MockConfigurationPolicyProvider* provider)
70 : provider_(provider), 75 : provider_(provider),
71 observer_invoked_(false) {} 76 observer_invoked_(false) {}
72 77
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 MockPolicyServiceObserver chrome_observer; 247 MockPolicyServiceObserver chrome_observer;
243 MockPolicyServiceObserver extension_observer; 248 MockPolicyServiceObserver extension_observer;
244 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &chrome_observer); 249 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &chrome_observer);
245 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &extension_observer); 250 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &extension_observer);
246 251
247 PolicyMap previous_policy_map; 252 PolicyMap previous_policy_map;
248 previous_policy_map.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 253 previous_policy_map.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
249 base::Value::CreateIntegerValue(13), NULL); 254 base::Value::CreateIntegerValue(13), NULL);
250 PolicyMap policy_map; 255 PolicyMap policy_map;
251 policy_map.CopyFrom(previous_policy_map); 256 policy_map.CopyFrom(previous_policy_map);
252 policy_map.Set("policy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 257 policy_map.Set("policy",
253 base::Value::CreateStringValue("value"), NULL); 258 POLICY_LEVEL_MANDATORY,
259 POLICY_SCOPE_USER,
260 new base::StringValue("value"),
261 NULL);
254 262
255 scoped_ptr<PolicyBundle> bundle(new PolicyBundle()); 263 scoped_ptr<PolicyBundle> bundle(new PolicyBundle());
256 // The initial setup includes a policy for chrome that is now changing. 264 // The initial setup includes a policy for chrome that is now changing.
257 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 265 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
258 .CopyFrom(policy_map); 266 .CopyFrom(policy_map);
259 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0)) 267 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0))
260 .CopyFrom(policy_map); 268 .CopyFrom(policy_map);
261 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1)) 269 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1))
262 .CopyFrom(policy_map); 270 .CopyFrom(policy_map);
263 271
(...skipping 17 matching lines...) Expand all
281 RunUntilIdle(); 289 RunUntilIdle();
282 Mock::VerifyAndClearExpectations(&chrome_observer); 290 Mock::VerifyAndClearExpectations(&chrome_observer);
283 Mock::VerifyAndClearExpectations(&extension_observer); 291 Mock::VerifyAndClearExpectations(&extension_observer);
284 292
285 // Chrome policy stays the same, kExtension0 is gone, kExtension1 changes, 293 // Chrome policy stays the same, kExtension0 is gone, kExtension1 changes,
286 // and kExtension2 is new. 294 // and kExtension2 is new.
287 previous_policy_map.CopyFrom(policy_map); 295 previous_policy_map.CopyFrom(policy_map);
288 bundle.reset(new PolicyBundle()); 296 bundle.reset(new PolicyBundle());
289 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) 297 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
290 .CopyFrom(policy_map); 298 .CopyFrom(policy_map);
291 policy_map.Set("policy", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 299 policy_map.Set("policy",
292 base::Value::CreateStringValue("another value"), NULL); 300 POLICY_LEVEL_MANDATORY,
301 POLICY_SCOPE_USER,
302 new base::StringValue("another value"),
303 NULL);
293 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1)) 304 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1))
294 .CopyFrom(policy_map); 305 .CopyFrom(policy_map);
295 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension2)) 306 bundle->Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension2))
296 .CopyFrom(policy_map); 307 .CopyFrom(policy_map);
297 308
298 EXPECT_CALL(chrome_observer, OnPolicyUpdated(_, _, _)).Times(0); 309 EXPECT_CALL(chrome_observer, OnPolicyUpdated(_, _, _)).Times(0);
299 EXPECT_CALL( 310 EXPECT_CALL(
300 extension_observer, 311 extension_observer,
301 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0), 312 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0),
302 PolicyEquals(&previous_policy_map), 313 PolicyEquals(&previous_policy_map),
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE); 515 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE);
505 516
506 provider0_.UpdatePolicy(bundle0.Pass()); 517 provider0_.UpdatePolicy(bundle0.Pass());
507 provider1_.UpdatePolicy(bundle1.Pass()); 518 provider1_.UpdatePolicy(bundle1.Pass());
508 provider2_.UpdatePolicy(bundle2.Pass()); 519 provider2_.UpdatePolicy(bundle2.Pass());
509 RunUntilIdle(); 520 RunUntilIdle();
510 521
511 PolicyMap expected; 522 PolicyMap expected;
512 // For policies of the same level and scope, the first provider takes 523 // For policies of the same level and scope, the first provider takes
513 // precedence, on every namespace. 524 // precedence, on every namespace.
514 expected.Set(kSameLevelPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 525 expected.Set(kSameLevelPolicy,
515 base::Value::CreateStringValue("bundle0"), NULL); 526 POLICY_LEVEL_MANDATORY,
527 POLICY_SCOPE_USER,
528 new base::StringValue("bundle0"),
529 NULL);
516 // For policies with different levels and scopes, the highest priority 530 // For policies with different levels and scopes, the highest priority
517 // level/scope combination takes precedence, on every namespace. 531 // level/scope combination takes precedence, on every namespace.
518 expected.Set(kDiffLevelPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, 532 expected.Set(kDiffLevelPolicy,
519 base::Value::CreateStringValue("bundle2"), NULL); 533 POLICY_LEVEL_MANDATORY,
534 POLICY_SCOPE_MACHINE,
535 new base::StringValue("bundle2"),
536 NULL);
520 EXPECT_TRUE(policy_service_->GetPolicies( 537 EXPECT_TRUE(policy_service_->GetPolicies(
521 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())).Equals(expected)); 538 PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())).Equals(expected));
522 EXPECT_TRUE(policy_service_->GetPolicies( 539 EXPECT_TRUE(policy_service_->GetPolicies(
523 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension)).Equals(expected)); 540 PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension)).Equals(expected));
524 } 541 }
525 542
526 TEST_F(PolicyServiceTest, IsInitializationComplete) { 543 TEST_F(PolicyServiceTest, IsInitializationComplete) {
527 // |provider0| has all domains initialized. 544 // |provider0| has all domains initialized.
528 Mock::VerifyAndClearExpectations(&provider1_); 545 Mock::VerifyAndClearExpectations(&provider1_);
529 Mock::VerifyAndClearExpectations(&provider2_); 546 Mock::VerifyAndClearExpectations(&provider2_);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 626
610 scoped_ptr<PolicyBundle> policy_bundle(new PolicyBundle()); 627 scoped_ptr<PolicyBundle> policy_bundle(new PolicyBundle());
611 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace); 628 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace);
612 // Individual proxy policy values in the Chrome namespace should be collected 629 // Individual proxy policy values in the Chrome namespace should be collected
613 // into a dictionary. 630 // into a dictionary.
614 policy_map.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, 631 policy_map.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY,
615 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(3), NULL); 632 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(3), NULL);
616 633
617 // Both these policies should be ignored, since there's a higher priority 634 // Both these policies should be ignored, since there's a higher priority
618 // policy available. 635 // policy available.
619 policy_map.Set(key::kProxyMode, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 636 policy_map.Set(key::kProxyMode,
620 base::Value::CreateStringValue("pac_script"), NULL); 637 POLICY_LEVEL_RECOMMENDED,
621 policy_map.Set(key::kProxyPacUrl, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, 638 POLICY_SCOPE_USER,
622 base::Value::CreateStringValue("http://example.com/wpad.dat"), 639 new base::StringValue("pac_script"),
640 NULL);
641 policy_map.Set(key::kProxyPacUrl,
642 POLICY_LEVEL_RECOMMENDED,
643 POLICY_SCOPE_USER,
644 new base::StringValue("http://example.com/wpad.dat"),
623 NULL); 645 NULL);
624 646
625 // Add a value to a non-Chrome namespace. 647 // Add a value to a non-Chrome namespace.
626 policy_bundle->Get(extension_namespace) 648 policy_bundle->Get(extension_namespace)
627 .Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, 649 .Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
628 base::Value::CreateIntegerValue(3), NULL); 650 base::Value::CreateIntegerValue(3), NULL);
629 651
630 // The resulting Chrome namespace map should have the collected policy. 652 // The resulting Chrome namespace map should have the collected policy.
631 PolicyMap expected_chrome; 653 PolicyMap expected_chrome;
632 scoped_ptr<base::DictionaryValue> expected_value(new base::DictionaryValue); 654 scoped_ptr<base::DictionaryValue> expected_value(new base::DictionaryValue);
633 expected_value->SetInteger(key::kProxyServerMode, 3); 655 expected_value->SetInteger(key::kProxyServerMode, 3);
634 expected_chrome.Set(key::kProxySettings, POLICY_LEVEL_MANDATORY, 656 expected_chrome.Set(key::kProxySettings, POLICY_LEVEL_MANDATORY,
635 POLICY_SCOPE_USER, expected_value.release(), NULL); 657 POLICY_SCOPE_USER, expected_value.release(), NULL);
636 658
637 // The resulting Extensions namespace map shouldn't have been modified. 659 // The resulting Extensions namespace map shouldn't have been modified.
638 PolicyMap expected_extension; 660 PolicyMap expected_extension;
639 expected_extension.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY, 661 expected_extension.Set(key::kProxyServerMode, POLICY_LEVEL_MANDATORY,
640 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(3), 662 POLICY_SCOPE_USER, base::Value::CreateIntegerValue(3),
641 NULL); 663 NULL);
642 664
643 provider0_.UpdatePolicy(policy_bundle.Pass()); 665 provider0_.UpdatePolicy(policy_bundle.Pass());
644 RunUntilIdle(); 666 RunUntilIdle();
645 667
646 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); 668 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome));
647 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); 669 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension));
648 } 670 }
649 671
650 } // namespace policy 672 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698