| 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 <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 EXPECT_CALL(provider2_, IsInitializationComplete(_)) | 565 EXPECT_CALL(provider2_, IsInitializationComplete(_)) |
| 566 .WillRepeatedly(Return(false)); | 566 .WillRepeatedly(Return(false)); |
| 567 PolicyServiceImpl::Providers providers; | 567 PolicyServiceImpl::Providers providers; |
| 568 providers.push_back(&provider0_); | 568 providers.push_back(&provider0_); |
| 569 providers.push_back(&provider1_); | 569 providers.push_back(&provider1_); |
| 570 providers.push_back(&provider2_); | 570 providers.push_back(&provider2_); |
| 571 policy_service_.reset(new PolicyServiceImpl(providers)); | 571 policy_service_.reset(new PolicyServiceImpl(providers)); |
| 572 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); | 572 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); |
| 573 EXPECT_FALSE( | 573 EXPECT_FALSE( |
| 574 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); | 574 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); |
| 575 EXPECT_FALSE(policy_service_->IsInitializationComplete( |
| 576 POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 575 | 577 |
| 576 // |provider2_| still doesn't have POLICY_DOMAIN_CHROME initialized, so | 578 // |provider2_| still doesn't have POLICY_DOMAIN_CHROME initialized, so |
| 577 // the initialization status of that domain won't change. | 579 // the initialization status of that domain won't change. |
| 578 MockPolicyServiceObserver observer; | 580 MockPolicyServiceObserver observer; |
| 579 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer); | 581 policy_service_->AddObserver(POLICY_DOMAIN_CHROME, &observer); |
| 580 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &observer); | 582 policy_service_->AddObserver(POLICY_DOMAIN_EXTENSIONS, &observer); |
| 583 policy_service_->AddObserver(POLICY_DOMAIN_SIGNIN_EXTENSIONS, &observer); |
| 581 EXPECT_CALL(observer, OnPolicyServiceInitialized(_)).Times(0); | 584 EXPECT_CALL(observer, OnPolicyServiceInitialized(_)).Times(0); |
| 582 Mock::VerifyAndClearExpectations(&provider1_); | 585 Mock::VerifyAndClearExpectations(&provider1_); |
| 583 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) | 586 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) |
| 584 .WillRepeatedly(Return(true)); | 587 .WillRepeatedly(Return(true)); |
| 585 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) | 588 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) |
| 586 .WillRepeatedly(Return(false)); | 589 .WillRepeatedly(Return(false)); |
| 590 EXPECT_CALL(provider1_, |
| 591 IsInitializationComplete(POLICY_DOMAIN_SIGNIN_EXTENSIONS)) |
| 592 .WillRepeatedly(Return(false)); |
| 587 const PolicyMap kPolicyMap; | 593 const PolicyMap kPolicyMap; |
| 588 provider1_.UpdateChromePolicy(kPolicyMap); | 594 provider1_.UpdateChromePolicy(kPolicyMap); |
| 589 Mock::VerifyAndClearExpectations(&observer); | 595 Mock::VerifyAndClearExpectations(&observer); |
| 590 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); | 596 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); |
| 591 EXPECT_FALSE( | 597 EXPECT_FALSE( |
| 592 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); | 598 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); |
| 599 EXPECT_FALSE(policy_service_->IsInitializationComplete( |
| 600 POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 593 | 601 |
| 594 // Same if |provider1_| doesn't have POLICY_DOMAIN_EXTENSIONS initialized. | 602 // Same if |provider1_| doesn't have POLICY_DOMAIN_EXTENSIONS initialized. |
| 595 EXPECT_CALL(observer, OnPolicyServiceInitialized(_)).Times(0); | 603 EXPECT_CALL(observer, OnPolicyServiceInitialized(_)).Times(0); |
| 596 Mock::VerifyAndClearExpectations(&provider2_); | 604 Mock::VerifyAndClearExpectations(&provider2_); |
| 597 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) | 605 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) |
| 598 .WillRepeatedly(Return(false)); | 606 .WillRepeatedly(Return(false)); |
| 599 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) | 607 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) |
| 600 .WillRepeatedly(Return(true)); | 608 .WillRepeatedly(Return(true)); |
| 609 EXPECT_CALL(provider2_, |
| 610 IsInitializationComplete(POLICY_DOMAIN_SIGNIN_EXTENSIONS)) |
| 611 .WillRepeatedly(Return(true)); |
| 601 provider2_.UpdateChromePolicy(kPolicyMap); | 612 provider2_.UpdateChromePolicy(kPolicyMap); |
| 602 Mock::VerifyAndClearExpectations(&observer); | 613 Mock::VerifyAndClearExpectations(&observer); |
| 603 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); | 614 EXPECT_FALSE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); |
| 604 EXPECT_FALSE( | 615 EXPECT_FALSE( |
| 605 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); | 616 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); |
| 617 EXPECT_FALSE(policy_service_->IsInitializationComplete( |
| 618 POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 606 | 619 |
| 607 // Now initialize POLICY_DOMAIN_CHROME on all the providers. | 620 // Now initialize POLICY_DOMAIN_CHROME on all the providers. |
| 608 EXPECT_CALL(observer, OnPolicyServiceInitialized(POLICY_DOMAIN_CHROME)); | 621 EXPECT_CALL(observer, OnPolicyServiceInitialized(POLICY_DOMAIN_CHROME)); |
| 609 Mock::VerifyAndClearExpectations(&provider2_); | 622 Mock::VerifyAndClearExpectations(&provider2_); |
| 610 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) | 623 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) |
| 611 .WillRepeatedly(Return(true)); | 624 .WillRepeatedly(Return(true)); |
| 612 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) | 625 EXPECT_CALL(provider2_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) |
| 613 .WillRepeatedly(Return(true)); | 626 .WillRepeatedly(Return(true)); |
| 627 EXPECT_CALL(provider2_, |
| 628 IsInitializationComplete(POLICY_DOMAIN_SIGNIN_EXTENSIONS)) |
| 629 .WillRepeatedly(Return(true)); |
| 614 provider2_.UpdateChromePolicy(kPolicyMap); | 630 provider2_.UpdateChromePolicy(kPolicyMap); |
| 615 Mock::VerifyAndClearExpectations(&observer); | 631 Mock::VerifyAndClearExpectations(&observer); |
| 616 EXPECT_TRUE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); | 632 EXPECT_TRUE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); |
| 617 // Other domains are still not initialized. | 633 // Other domains are still not initialized. |
| 618 EXPECT_FALSE( | 634 EXPECT_FALSE( |
| 619 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); | 635 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); |
| 636 EXPECT_FALSE(policy_service_->IsInitializationComplete( |
| 637 POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 620 | 638 |
| 621 // Initialize the remaining domain. | 639 // Initialize the remaining domain. |
| 622 EXPECT_CALL(observer, OnPolicyServiceInitialized(POLICY_DOMAIN_EXTENSIONS)); | 640 EXPECT_CALL(observer, OnPolicyServiceInitialized(POLICY_DOMAIN_EXTENSIONS)); |
| 641 EXPECT_CALL(observer, |
| 642 OnPolicyServiceInitialized(POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 623 Mock::VerifyAndClearExpectations(&provider1_); | 643 Mock::VerifyAndClearExpectations(&provider1_); |
| 624 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) | 644 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_CHROME)) |
| 625 .WillRepeatedly(Return(true)); | 645 .WillRepeatedly(Return(true)); |
| 626 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) | 646 EXPECT_CALL(provider1_, IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)) |
| 627 .WillRepeatedly(Return(true)); | 647 .WillRepeatedly(Return(true)); |
| 648 EXPECT_CALL(provider1_, |
| 649 IsInitializationComplete(POLICY_DOMAIN_SIGNIN_EXTENSIONS)) |
| 650 .WillRepeatedly(Return(true)); |
| 628 provider1_.UpdateChromePolicy(kPolicyMap); | 651 provider1_.UpdateChromePolicy(kPolicyMap); |
| 629 Mock::VerifyAndClearExpectations(&observer); | 652 Mock::VerifyAndClearExpectations(&observer); |
| 630 EXPECT_TRUE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); | 653 EXPECT_TRUE(policy_service_->IsInitializationComplete(POLICY_DOMAIN_CHROME)); |
| 631 EXPECT_TRUE( | 654 EXPECT_TRUE( |
| 632 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); | 655 policy_service_->IsInitializationComplete(POLICY_DOMAIN_EXTENSIONS)); |
| 656 EXPECT_TRUE(policy_service_->IsInitializationComplete( |
| 657 POLICY_DOMAIN_SIGNIN_EXTENSIONS)); |
| 633 | 658 |
| 634 // Cleanup. | 659 // Cleanup. |
| 635 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &observer); | 660 policy_service_->RemoveObserver(POLICY_DOMAIN_CHROME, &observer); |
| 636 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS, &observer); | 661 policy_service_->RemoveObserver(POLICY_DOMAIN_EXTENSIONS, &observer); |
| 662 policy_service_->RemoveObserver(POLICY_DOMAIN_SIGNIN_EXTENSIONS, &observer); |
| 637 } | 663 } |
| 638 | 664 |
| 639 TEST_F(PolicyServiceTest, FixDeprecatedPolicies) { | 665 TEST_F(PolicyServiceTest, FixDeprecatedPolicies) { |
| 640 const PolicyNamespace chrome_namespace(POLICY_DOMAIN_CHROME, std::string()); | 666 const PolicyNamespace chrome_namespace(POLICY_DOMAIN_CHROME, std::string()); |
| 641 const PolicyNamespace extension_namespace(POLICY_DOMAIN_EXTENSIONS, "xyz"); | 667 const PolicyNamespace extension_namespace(POLICY_DOMAIN_EXTENSIONS, "xyz"); |
| 642 | 668 |
| 643 std::unique_ptr<PolicyBundle> policy_bundle(new PolicyBundle()); | 669 std::unique_ptr<PolicyBundle> policy_bundle(new PolicyBundle()); |
| 644 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace); | 670 PolicyMap& policy_map = policy_bundle->Get(chrome_namespace); |
| 645 // Individual proxy policy values in the Chrome namespace should be collected | 671 // Individual proxy policy values in the Chrome namespace should be collected |
| 646 // into a dictionary. | 672 // into a dictionary. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 base::MakeUnique<base::FundamentalValue>(3), nullptr); | 706 base::MakeUnique<base::FundamentalValue>(3), nullptr); |
| 681 | 707 |
| 682 provider0_.UpdatePolicy(std::move(policy_bundle)); | 708 provider0_.UpdatePolicy(std::move(policy_bundle)); |
| 683 RunUntilIdle(); | 709 RunUntilIdle(); |
| 684 | 710 |
| 685 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); | 711 EXPECT_TRUE(VerifyPolicies(chrome_namespace, expected_chrome)); |
| 686 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); | 712 EXPECT_TRUE(VerifyPolicies(extension_namespace, expected_extension)); |
| 687 } | 713 } |
| 688 | 714 |
| 689 } // namespace policy | 715 } // namespace policy |
| OLD | NEW |