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

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: 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
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..afae249ff706727e0884d4935e4f7e7b1f27a16d 100644
--- a/chrome/browser/policy/policy_service_unittest.cc
+++ b/chrome/browser/policy/policy_service_unittest.cc
@@ -21,9 +21,19 @@ 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 copy the PolicyMaps passed as arguments to an EXPECT_CALL of
+// OnPolicyUpdated.
+ACTION_P2(CopyPolicies, previous, current) {
+ previous->CopyFrom(arg2);
+ current->CopyFrom(arg3);
+}
+
class PolicyServiceTest : public testing::Test {
public:
PolicyServiceTest() {}
@@ -73,57 +83,78 @@ 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);
+
+ PolicyMap previous;
+ PolicyMap current;
+ EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", _, _))
+ .WillOnce(CopyPolicies(&previous, &current));
provider0_.RefreshPolicies();
Mock::VerifyAndClearExpectations(&observer_);
- EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected));
+ EXPECT_TRUE(previous.Equals(expectedPrevious));
+ EXPECT_TRUE(current.Equals(expectedCurrent));
Mattias Nissler (ping if slow) 2012/04/23 14:20:44 This pattern does manually what you can achieve by
Joao da Silva 2012/04/23 14:53:19 Thanks for the tip, MATCHER is quite cool! PTAL.
+
// 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(current);
+ 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, "", _, _))
+ .WillOnce(CopyPolicies(&previous, &current));
provider0_.RefreshPolicies();
Mock::VerifyAndClearExpectations(&observer_);
- EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected));
+ EXPECT_TRUE(previous.Equals(expectedPrevious));
+ EXPECT_TRUE(current.Equals(expectedCurrent));
+
// Removed policy.
- expected.Erase("bbb");
+ expectedPrevious.CopyFrom(current);
+ expectedCurrent.Erase("bbb");
provider0_.RemovePolicy("bbb");
- EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "")).Times(1);
+ EXPECT_CALL(observer_, OnPolicyUpdated(POLICY_DOMAIN_CHROME, "", _, _))
+ .WillOnce(CopyPolicies(&previous, &current));
provider0_.RefreshPolicies();
Mock::VerifyAndClearExpectations(&observer_);
- EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected));
+ EXPECT_TRUE(previous.Equals(expectedPrevious));
+ EXPECT_TRUE(current.Equals(expectedCurrent));
+
// Changed policy.
- expected.Set("aaa", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
- base::Value::CreateIntegerValue(789));
+ expectedPrevious.CopyFrom(current);
+ 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, "", _, _))
+ .WillOnce(CopyPolicies(&previous, &current));
provider0_.RefreshPolicies();
Mock::VerifyAndClearExpectations(&observer_);
- EXPECT_TRUE(VerifyPolicies(POLICY_DOMAIN_CHROME, "", expected));
+ EXPECT_TRUE(previous.Equals(expectedPrevious));
+ EXPECT_TRUE(current.Equals(expectedCurrent));
+
// 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));
« chrome/browser/policy/policy_service_impl.cc ('K') | « 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