Chromium Code Reviews| Index: chrome/browser/policy/policy_service_unittest.cc |
| diff --git a/chrome/browser/policy/policy_service_unittest.cc b/chrome/browser/policy/policy_service_unittest.cc |
| index ad99a7b22b47d710deaf9d0b504d639b76fec4b4..1a4443cbe0d38d275605634edc02a56a12d95648 100644 |
| --- a/chrome/browser/policy/policy_service_unittest.cc |
| +++ b/chrome/browser/policy/policy_service_unittest.cc |
| @@ -21,9 +21,20 @@ namespace { |
| class MockPolicyServiceObserver : public PolicyService::Observer { |
| public: |
| virtual ~MockPolicyServiceObserver() {} |
| - MOCK_METHOD2(OnPolicyUpdated, void(PolicyDomain, const std::string&)); |
| + MOCK_METHOD4(OnPolicyUpdated, void(PolicyDomain, |
| + const std::string&, |
| + const PolicyMap& previous, |
| + const PolicyMap& current)); |
| }; |
| +// Helper to compare the arguments to an EXPECT_CALL of OnPolicyUpdated() with |
| +// their expectec values. |
|
Mattias Nissler (ping if slow)
2012/04/23 15:08:55
nit: expected
Joao da Silva
2012/04/23 15:22:10
Done.
|
| +MATCHER_P(PolicyEquals, expected, "") { |
| + return arg.Equals(*expected); |
| +} |
| + |
| +} // namespace |
| + |
| class PolicyServiceTest : public testing::Test { |
| public: |
| PolicyServiceTest() {} |
| @@ -73,57 +84,72 @@ TEST_F(PolicyServiceTest, LoadsPoliciesBeforeProvidersRefresh) { |
| } |
| TEST_F(PolicyServiceTest, NotifyObservers) { |
| - PolicyMap expected; |
| - expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| - base::Value::CreateIntegerValue(13)); |
| - |
| - expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| - base::Value::CreateIntegerValue(123)); |
| + PolicyMap expectedPrevious; |
| + expectedPrevious.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| + base::Value::CreateIntegerValue(13)); |
| + |
| + PolicyMap expectedCurrent; |
| + expectedCurrent.CopyFrom(expectedPrevious); |
| + expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| + base::Value::CreateIntegerValue(123)); |
| provider0_.AddMandatoryPolicy("aaa", base::Value::CreateIntegerValue(123)); |
| - EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "")).Times(1); |
| + |
| + EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", |
| + PolicyEquals(&expectedPrevious), |
| + PolicyEquals(&expectedCurrent))); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + |
| // No changes. |
| - EXPECT_CALL(observer_, OnPolicyUpdated(_, _)).Times(0); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(_, _, _, _)).Times(0); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expectedCurrent)); |
| + |
| // New policy. |
| - expected.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| - base::Value::CreateIntegerValue(456)); |
| + expectedPrevious.CopyFrom(expectedCurrent); |
| + expectedCurrent.Set("bbb", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| + base::Value::CreateIntegerValue(456)); |
|
Mattias Nissler (ping if slow)
2012/04/23 15:08:55
indentation
Joao da Silva
2012/04/23 15:22:10
Done.
|
| provider0_.AddMandatoryPolicy("bbb", base::Value::CreateIntegerValue(456)); |
|
Mattias Nissler (ping if slow)
2012/04/23 15:08:55
nit: You have added a newline in the corresponding
Joao da Silva
2012/04/23 15:22:10
Removed line above.
|
| - EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "")).Times(1); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", |
| + PolicyEquals(&expectedPrevious), |
| + PolicyEquals(&expectedCurrent))); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + |
| // Removed policy. |
| - expected.Erase("bbb"); |
| + expectedPrevious.CopyFrom(expectedCurrent); |
| + expectedCurrent.Erase("bbb"); |
| provider0_.RemovePolicy("bbb"); |
| - EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "")).Times(1); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", |
| + PolicyEquals(&expectedPrevious), |
| + PolicyEquals(&expectedCurrent))); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + |
| // Changed policy. |
| - expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| - base::Value::CreateIntegerValue(789)); |
| + expectedPrevious.CopyFrom(expectedCurrent); |
| + expectedCurrent.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| + base::Value::CreateIntegerValue(789)); |
| provider0_.AddMandatoryPolicy("aaa", base::Value::CreateIntegerValue(789)); |
| - EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "")).Times(1); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", |
| + PolicyEquals(&expectedPrevious), |
| + PolicyEquals(&expectedCurrent))); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + |
| // No changes again. |
| - EXPECT_CALL(observer_, OnPolicyUpdated(_, _)).Times(0); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(_, _, _, _)).Times(0); |
| provider0_.RefreshPolicies(); |
| Mock::VerifyAndClearExpectations(&observer_); |
| - EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| + EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expectedCurrent)); |
| } |
| TEST_F(PolicyServiceTest, Priorities) { |
| PolicyMap expected; |
| expected.Set("pre", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| base::Value::CreateIntegerValue(13)); |
| - EXPECT_CALL(observer_, OnPolicyUpdated(_, _)).Times(AnyNumber()); |
| + EXPECT_CALL(observer_, OnPolicyUpdated(_, _, _, _)).Times(AnyNumber()); |
| expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
| base::Value::CreateIntegerValue(0)); |
| @@ -148,6 +174,4 @@ TEST_F(PolicyServiceTest, Priorities) { |
| EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected)); |
| } |
| -} // namespace |
| - |
| } // namespace policy |