update_engine: Re-introduce RefreshDevicePolicy() before computing update params.
The update_manager refreshes the policy for its own usage, but the
code that still remains outside the update_manager and depends on
device policy settings has to reload the policy manually.
This patch re-introduces the call to RefreshDevicePolicy() from
CalculateUpdateParams() that was removed in CL:209101 since some
code still requires it.
BUG=chromium:425827
TEST=delopyed this patch on R39 and tested that the scattering value from the policy is used.
TEST=Changed UpdateAttempterTest.UpdateTest to check this. Verified it fails without the change on update_attempter.cc
Change-Id: I051382987b507752e52a0af87d869a8845f3db6f
Reviewed-on: https://chromium-review.googlesource.com/224808
Commit-Queue: Alex Deymo <[email protected]>
Tested-by: Alex Deymo <[email protected]>
Reviewed-by: Gaurav Shah <[email protected]>
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 0bfc31d..31b1452 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -430,13 +430,23 @@
void UpdateAttempterTest::UpdateTestStart() {
attempter_.set_http_response_code(200);
- InSequence s;
- for (size_t i = 0; i < arraysize(kUpdateActionTypes); ++i) {
- EXPECT_CALL(*processor_,
- EnqueueAction(Property(&AbstractAction::Type,
- kUpdateActionTypes[i]))).Times(1);
+
+ // Expect that the device policy is loaded by the UpdateAttempter at some
+ // point by calling RefreshDevicePolicy.
+ policy::MockDevicePolicy* device_policy = new policy::MockDevicePolicy();
+ attempter_.policy_provider_.reset(new policy::PolicyProvider(device_policy));
+ EXPECT_CALL(*device_policy, LoadPolicy())
+ .Times(testing::AtLeast(1)).WillRepeatedly(Return(true));
+
+ {
+ InSequence s;
+ for (size_t i = 0; i < arraysize(kUpdateActionTypes); ++i) {
+ EXPECT_CALL(*processor_,
+ EnqueueAction(Property(&AbstractAction::Type,
+ kUpdateActionTypes[i]))).Times(1);
+ }
+ EXPECT_CALL(*processor_, StartProcessing()).Times(1);
}
- EXPECT_CALL(*processor_, StartProcessing()).Times(1);
attempter_.Update("", "", "", "", false, false);
g_idle_add(&StaticUpdateTestVerify, this);