update_engine: Consumer value of RollbackAllowedMilestones policy.
Policy value is always 0 for consumer users.
For devices which are still in OOBE, we are not setting the policy,
so we're not restricting future rollback possibilities.
BUG=chromium:813036
TEST='cros_run_unit_tests --board=cyan --packages update_engine'
CQ-DEPEND=CL:1013461
Change-Id: I15749f8eb8c8e2e404d73a8f3bd826db59412395
Reviewed-on: https://chromium-review.googlesource.com/985983
Commit-Ready: Marton Hunyady <hunyadym@chromium.org>
Tested-by: Marton Hunyady <hunyadym@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
diff --git a/update_manager/real_device_policy_provider.cc b/update_manager/real_device_policy_provider.cc
index 96f8739..3675624 100644
--- a/update_manager/real_device_policy_provider.cc
+++ b/update_manager/real_device_policy_provider.cc
@@ -197,6 +197,10 @@
&RealDevicePolicyProvider::ConvertRollbackToTargetVersion);
UpdateVariable(&var_rollback_allowed_milestones_,
&DevicePolicy::GetRollbackAllowedMilestones);
+ if (policy_provider_->IsConsumerDevice()) {
+ // For consumer devices (which won't ever have policy), set value to 0.
+ var_rollback_allowed_milestones_.SetValue(0);
+ }
UpdateVariable(&var_scatter_factor_,
&RealDevicePolicyProvider::ConvertScatterFactor);
UpdateVariable(
diff --git a/update_manager/real_device_policy_provider_unittest.cc b/update_manager/real_device_policy_provider_unittest.cc
index 6396e3f..f5d0e23 100644
--- a/update_manager/real_device_policy_provider_unittest.cc
+++ b/update_manager/real_device_policy_provider_unittest.cc
@@ -239,6 +239,44 @@
provider_->var_rollback_to_target_version());
}
+TEST_F(UmRealDevicePolicyProviderTest, RollbackAllowedMilestonesOobe) {
+ SetUpNonExistentDevicePolicy();
+ EXPECT_CALL(mock_device_policy_, GetRollbackAllowedMilestones(_)).Times(0);
+ ON_CALL(mock_policy_provider_, IsConsumerDevice())
+ .WillByDefault(Return(false));
+ EXPECT_TRUE(provider_->Init());
+ loop_.RunOnce(false);
+
+ UmTestUtils::ExpectVariableNotSet(
+ provider_->var_rollback_allowed_milestones());
+}
+
+TEST_F(UmRealDevicePolicyProviderTest, RollbackAllowedMilestonesConsumer) {
+ SetUpNonExistentDevicePolicy();
+ EXPECT_CALL(mock_device_policy_, GetRollbackAllowedMilestones(_)).Times(0);
+ ON_CALL(mock_policy_provider_, IsConsumerDevice())
+ .WillByDefault(Return(true));
+ EXPECT_TRUE(provider_->Init());
+ loop_.RunOnce(false);
+
+ UmTestUtils::ExpectVariableHasValue(
+ 0, provider_->var_rollback_allowed_milestones());
+}
+
+TEST_F(UmRealDevicePolicyProviderTest,
+ RollbackAllowedMilestonesEnterprisePolicySet) {
+ SetUpExistentDevicePolicy();
+ ON_CALL(mock_device_policy_, GetRollbackAllowedMilestones(_))
+ .WillByDefault(DoAll(SetArgPointee<0>(2), Return(true)));
+ ON_CALL(mock_policy_provider_, IsConsumerDevice())
+ .WillByDefault(Return(false));
+ EXPECT_TRUE(provider_->Init());
+ loop_.RunOnce(false);
+
+ UmTestUtils::ExpectVariableHasValue(
+ 2, provider_->var_rollback_allowed_milestones());
+}
+
TEST_F(UmRealDevicePolicyProviderTest, ScatterFactorConverted) {
SetUpExistentDevicePolicy();
EXPECT_CALL(mock_device_policy_, GetScatterFactorInSeconds(_))