update_engine: Include quick_fix_build_token in updatecheck request body
Get the value of the new device policy which is included in
AutoUpdateSettings as quick_fix_build_token, and include it
in the update request body if value is set.
BUG=chromium:932465
TEST=./build_packages --board=amd64-generic && \
cros_run_unit_tests --board=amd64-generic --packages update_engine
Cq-Depend: chromium:1571634
Change-Id: Iaca35a08d973616a058864a11896ef9305d00174
Reviewed-on: https://chromium-review.googlesource.com/1581519
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Askar Aitzhan <askaraitzhan@google.com>
Reviewed-by: Nicolas Norvez <norvez@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index ec08333..bfbf6a4 100644
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -1463,6 +1463,7 @@
request_params_.set_current_channel("unittest_track<");
request_params_.set_target_channel("unittest_track<");
request_params_.set_hwid("<OEM MODEL>");
+ request_params_.set_autoupdate_token("autoupdate_token>");
fake_prefs_.SetString(kPrefsOmahaCohort, "evil\nstring");
fake_prefs_.SetString(kPrefsOmahaCohortHint, "evil&string\\");
fake_prefs_.SetString(
@@ -1489,6 +1490,8 @@
// Values from Prefs that are too big are removed from the XML instead of
// encoded.
EXPECT_EQ(string::npos, post_str.find("cohortname="));
+ EXPECT_NE(string::npos, post_str.find("autoupdate_token>"));
+ EXPECT_EQ(string::npos, post_str.find("autoupdate_token>"));
}
TEST_F(OmahaRequestActionTest, XmlDecodeTest) {
@@ -1692,6 +1695,21 @@
EXPECT_EQ(ErrorCode::kError, error_event.error_code);
}
+TEST_F(OmahaRequestActionTest, DeviceQuickFixBuildTokenIsSetTest) {
+ constexpr char autoupdate_token[] = "autoupdate_token";
+
+ tuc_params_.http_response = fake_update_response_.GetNoUpdateResponse();
+ tuc_params_.expected_check_result = metrics::CheckResult::kNoUpdateAvailable;
+ tuc_params_.expected_check_reaction = metrics::CheckReaction::kUnset;
+ request_params_.set_autoupdate_token(autoupdate_token);
+
+ ASSERT_TRUE(TestUpdateCheck());
+
+ EXPECT_NE(post_str.find(" <updatecheck token=\"" +
+ string(autoupdate_token) + "\"></updatecheck>\n"),
+ string::npos);
+}
+
void OmahaRequestActionTest::PingTest(bool ping_only) {
NiceMock<MockPrefs> prefs;
fake_system_state_.set_prefs(&prefs);