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

Unified Diff: chrome/browser/policy/policy_service_unittest.cc

Issue 10174003: Pass the previous and the current PolicyMap to Observers of the PolicyService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed nits Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/policy/policy_service_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..9fa0de5991ac795e5f00de52f2feaaa5ca169dd0 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 expected values.
+MATCHER_P(PolicyEquals, expected, "") {
+ return arg.Equals(*expected);
+}
+
+} // namespace
+
class PolicyServiceTest : public testing::Test {
public:
PolicyServiceTest() {}
@@ -73,57 +84,71 @@ 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));
provider0_.AddMandatoryPolicy("bbb", base::Value::CreateIntegerValue(456));
- 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 +173,4 @@ TEST_F(PolicyServiceTest, Priorities) {
EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected));
}
-} // namespace
-
} // namespace policy
« no previous file with comments | « chrome/browser/policy/policy_service_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698