PM: New (stub) policy for whether an update can be applied.

There's no implementation for this policy yet, and so it always returns
true.

BUG=chromium:358323
TEST=Unit tests.

Change-Id: Id3a0d13cf8c2e9061b800b114d8476c11f998df0
Reviewed-on: https://chromium-review.googlesource.com/197376
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/policy_manager_unittest.cc b/policy_manager/policy_manager_unittest.cc
index b1f5562..15553a5 100644
--- a/policy_manager/policy_manager_unittest.cc
+++ b/policy_manager/policy_manager_unittest.cc
@@ -75,24 +75,41 @@
   acc->push_back(std::make_pair(status, result));
 }
 
-TEST_F(PmPolicyManagerTest, PolicyRequestCall) {
+TEST_F(PmPolicyManagerTest, PolicyRequestCallReturnsSuccess) {
   bool result;
-  EvalStatus status = pmut_->PolicyRequest(
-      &Policy::UpdateCheckAllowed, &result);
-  EXPECT_EQ(status, EvalStatus::kSucceeded);
+  EvalStatus status;
+
+  // Tests that policy requests are completed successfully. It is important that
+  // this test covers all policy requests as defined in Policy.
+  //
+  // TODO(garnold) We may need to adapt this test as the Chrome OS policy grows
+  // beyond the stub implementation.
+  status = pmut_->PolicyRequest(&Policy::UpdateCheckAllowed, &result);
+  EXPECT_EQ(EvalStatus::kSucceeded, status);
+  status = pmut_->PolicyRequest(&Policy::UpdateDownloadAndApplyAllowed,
+                                &result);
+  EXPECT_EQ(EvalStatus::kSucceeded, status);
 }
 
 TEST_F(PmPolicyManagerTest, PolicyRequestCallsPolicy) {
   StrictMock<MockPolicy>* policy = new StrictMock<MockPolicy>();
   pmut_->set_policy(policy);
   bool result;
+  EvalStatus status;
 
-  // Tests that the method is called on the policy_ instance.
+  // Tests that the policy methods are actually called on the policy instance.
+  // It is important that this test covers all policy requests as defined in
+  // Policy.
   EXPECT_CALL(*policy, UpdateCheckAllowed(_, _, _, _))
       .WillOnce(Return(EvalStatus::kSucceeded));
-  EvalStatus status = pmut_->PolicyRequest(
-      &Policy::UpdateCheckAllowed, &result);
-  EXPECT_EQ(status, EvalStatus::kSucceeded);
+  status = pmut_->PolicyRequest(&Policy::UpdateCheckAllowed, &result);
+  EXPECT_EQ(EvalStatus::kSucceeded, status);
+
+  EXPECT_CALL(*policy, UpdateDownloadAndApplyAllowed(_, _, _, _))
+      .WillOnce(Return(EvalStatus::kSucceeded));
+  status = pmut_->PolicyRequest(&Policy::UpdateDownloadAndApplyAllowed,
+                                &result);
+  EXPECT_EQ(EvalStatus::kSucceeded, status);
 }
 
 TEST_F(PmPolicyManagerTest, PolicyRequestCallsDefaultOnError) {
@@ -103,7 +120,7 @@
   bool result = false;
   EvalStatus status = pmut_->PolicyRequest(
       &Policy::UpdateCheckAllowed, &result);
-  EXPECT_EQ(status, EvalStatus::kSucceeded);
+  EXPECT_EQ(EvalStatus::kSucceeded, status);
   EXPECT_TRUE(result);
 }
 
@@ -113,7 +130,7 @@
 
   EvalStatus status = pmut_->PolicyRequest(
       &Policy::UpdateCheckAllowed, &result);
-  EXPECT_EQ(status, EvalStatus::kAskMeAgainLater);
+  EXPECT_EQ(EvalStatus::kAskMeAgainLater, status);
 }
 
 TEST_F(PmPolicyManagerTest, AsyncPolicyRequestDelaysEvaluation) {