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 "components/policy/core/common/policy_service_impl.h" | 5 #include "components/policy/core/common/policy_service_impl.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 11 #include "base/callback.h" |
10 #include "base/macros.h" | 12 #include "base/macros.h" |
11 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
12 #include "base/run_loop.h" | 14 #include "base/run_loop.h" |
13 #include "base/values.h" | 15 #include "base/values.h" |
14 #include "components/policy/core/common/external_data_fetcher.h" | 16 #include "components/policy/core/common/external_data_fetcher.h" |
15 #include "components/policy/core/common/mock_configuration_policy_provider.h" | 17 #include "components/policy/core/common/mock_configuration_policy_provider.h" |
16 #include "components/policy/core/common/mock_policy_service.h" | 18 #include "components/policy/core/common/mock_policy_service.h" |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 EXPECT_CALL( | 331 EXPECT_CALL( |
330 extension_observer, | 332 extension_observer, |
331 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0), | 333 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension0), |
332 PolicyEquals(&kEmptyPolicyMap), | 334 PolicyEquals(&kEmptyPolicyMap), |
333 PolicyEquals(&policy_map))); | 335 PolicyEquals(&policy_map))); |
334 EXPECT_CALL( | 336 EXPECT_CALL( |
335 extension_observer, | 337 extension_observer, |
336 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1), | 338 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1), |
337 PolicyEquals(&kEmptyPolicyMap), | 339 PolicyEquals(&kEmptyPolicyMap), |
338 PolicyEquals(&policy_map))); | 340 PolicyEquals(&policy_map))); |
339 provider0_.UpdatePolicy(bundle.Pass()); | 341 provider0_.UpdatePolicy(std::move(bundle)); |
340 RunUntilIdle(); | 342 RunUntilIdle(); |
341 Mock::VerifyAndClearExpectations(&chrome_observer); | 343 Mock::VerifyAndClearExpectations(&chrome_observer); |
342 Mock::VerifyAndClearExpectations(&extension_observer); | 344 Mock::VerifyAndClearExpectations(&extension_observer); |
343 | 345 |
344 // Chrome policy stays the same, kExtension0 is gone, kExtension1 changes, | 346 // Chrome policy stays the same, kExtension0 is gone, kExtension1 changes, |
345 // and kExtension2 is new. | 347 // and kExtension2 is new. |
346 previous_policy_map.CopyFrom(policy_map); | 348 previous_policy_map.CopyFrom(policy_map); |
347 bundle.reset(new PolicyBundle()); | 349 bundle.reset(new PolicyBundle()); |
348 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) | 350 bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())) |
349 .CopyFrom(policy_map); | 351 .CopyFrom(policy_map); |
(...skipping 17 matching lines...) Expand all Loading... |
367 EXPECT_CALL( | 369 EXPECT_CALL( |
368 extension_observer, | 370 extension_observer, |
369 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1), | 371 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension1), |
370 PolicyEquals(&previous_policy_map), | 372 PolicyEquals(&previous_policy_map), |
371 PolicyEquals(&policy_map))); | 373 PolicyEquals(&policy_map))); |
372 EXPECT_CALL( | 374 EXPECT_CALL( |
373 extension_observer, | 375 extension_observer, |
374 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension2), | 376 OnPolicyUpdated(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kExtension2), |
375 PolicyEquals(&kEmptyPolicyMap), | 377 PolicyEquals(&kEmptyPolicyMap), |
376 PolicyEquals(&policy_map))); | 378 PolicyEquals(&policy_map))); |
377 provider0_.UpdatePolicy(bundle.Pass()); | 379 provider0_.UpdatePolicy(std::move(bundle)); |
378 RunUntilIdle(); | 380 RunUntilIdle(); |
379 Mock::VerifyAndClearExpectations(&chrome_observer); | 381 Mock::VerifyAndClearExpectations(&chrome_observer); |
380 Mock::VerifyAndClearExpectations(&extension_observer); | 382 Mock::VerifyAndClearExpectations(&extension_observer); |
381 | 383 |
382 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &chrome_observer); | 384 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &chrome_observer); |
383 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS, | 385 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS, |
384 &extension_observer); | 386 &extension_observer); |
385 } | 387 } |
386 | 388 |
387 TEST_F(PolicyServiceTest, ObserverChangesPolicy) { | 389 TEST_F(PolicyServiceTest, ObserverChangesPolicy) { |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 scoped_ptr<PolicyBundle> bundle1(new PolicyBundle()); | 601 scoped_ptr<PolicyBundle> bundle1(new PolicyBundle()); |
600 scoped_ptr<PolicyBundle> bundle2(new PolicyBundle()); | 602 scoped_ptr<PolicyBundle> bundle2(new PolicyBundle()); |
601 | 603 |
602 AddTestPolicies(bundle0.get(), "bundle0", | 604 AddTestPolicies(bundle0.get(), "bundle0", |
603 POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER); | 605 POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER); |
604 AddTestPolicies(bundle1.get(), "bundle1", | 606 AddTestPolicies(bundle1.get(), "bundle1", |
605 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER); | 607 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER); |
606 AddTestPolicies(bundle2.get(), "bundle2", | 608 AddTestPolicies(bundle2.get(), "bundle2", |
607 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE); | 609 POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE); |
608 | 610 |
609 provider0_.UpdatePolicy(bundle0.Pass()); | 611 provider0_.UpdatePolicy(std::move(bundle0)); |
610 provider1_.UpdatePolicy(bundle1.Pass()); | 612 provider1_.UpdatePolicy(std::move(bundle1)); |
611 provider2_.UpdatePolicy(bundle2.Pass()); | 613 provider2_.UpdatePolicy(std::move(bundle2)); |
612 RunUntilIdle(); | 614 RunUntilIdle(); |
613 | 615 |
614 PolicyMap expected; | 616 PolicyMap expected; |
615 // For policies of the same level and scope, the first provider takes | 617 // For policies of the same level and scope, the first provider takes |
616 // precedence, on every namespace. | 618 // precedence, on every namespace. |
617 expected.Set(kSameLevelPolicy, | 619 expected.Set(kSameLevelPolicy, |
618 POLICY_LEVEL_MANDATORY, | 620 POLICY_LEVEL_MANDATORY, |
619 POLICY_SCOPE_USER, | 621 POLICY_SCOPE_USER, |
620 POLICY_SOURCE_ENTERPRISE_DEFAULT, | 622 POLICY_SOURCE_ENTERPRISE_DEFAULT, |
621 new base::StringValue("bundle0"), | 623 new base::StringValue("bundle0"), |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 | 764 |
763 // The resulting Extensions namespace map shouldn't have been modified. | 765 // The resulting Extensions namespace map shouldn't have been modified. |
764 PolicyMap expected_extension; | 766 PolicyMap expected_extension; |
765 expected_extension.Set(key::kProxyServerMode, | 767 expected_extension.Set(key::kProxyServerMode, |
766 POLICY_LEVEL_MANDATORY, | 768 POLICY_LEVEL_MANDATORY, |
767 POLICY_SCOPE_USER, | 769 POLICY_SCOPE_USER, |
768 POLICY_SOURCE_CLOUD, | 770 POLICY_SOURCE_CLOUD, |
769 new base::FundamentalValue(3), | 771 new base::FundamentalValue(3), |
770 NULL); | 772 NULL); |
771 | 773 |
772 provider0_.UpdatePolicy(policy_bundle.Pass()); | 774 provider0_.UpdatePolicy(std::move(policy_bundle)); |
773 RunUntilIdle(); | 775 RunUntilIdle(); |
774 | 776 |
775 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); | 777 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); |
776 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); | 778 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); |
777 } | 779 } |
778 | 780 |
779 } // namespace policy | 781 } // namespace policy |
OLD | NEW |