Always update target version prefix

When UpdateAttempter::Update is called, the cached target version
prefix in its |omaha_request_params_| should always be updated with
the one passed in.

Also fix the target version LOG lines in kiosk app pin policy code.

BUG=chromium:695133
TEST=UpdateAttempterTest.TargetVersionPrefixSetAndReset

Reviewed-on: https://chromium-review.googlesource.com/446657
Commit-Ready: Xiyuan Xia <xiyuan@chromium.org>
Tested-by: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>

(cherry picked from commit 4d34c18e5ce29d138c7946cc817dee8b3fce7cf0)

Change-Id: I712b169505f4566aac3a0b2c9746dfcb9466ef8d
diff --git a/update_attempter.cc b/update_attempter.cc
index 1bdd0eb..d9a8d04 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -371,9 +371,8 @@
   // Refresh the policy before computing all the update parameters.
   RefreshDevicePolicy();
 
-  // Set the target version prefix, if provided.
-  if (!target_version_prefix.empty())
-    omaha_request_params_->set_target_version_prefix(target_version_prefix);
+  // Update the target version prefix.
+  omaha_request_params_->set_target_version_prefix(target_version_prefix);
 
   CalculateScatteringParams(interactive);
 
diff --git a/update_attempter.h b/update_attempter.h
index f6547fe..c88e7ad 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -256,6 +256,7 @@
   FRIEND_TEST(UpdateAttempterTest, UpdateTest);
   FRIEND_TEST(UpdateAttempterTest, ReportDailyMetrics);
   FRIEND_TEST(UpdateAttempterTest, BootTimeInUpdateMarkerFile);
+  FRIEND_TEST(UpdateAttempterTest, TargetVersionPrefixSetAndReset);
 
   // CertificateChecker::Observer method.
   // Report metrics about the certificate being checked.
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 94a1b3c..5224870 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -978,4 +978,14 @@
   EXPECT_EQ(constants::kOmahaDefaultAUTestURL, attempter_.forced_omaha_url());
 }
 
+TEST_F(UpdateAttempterTest, TargetVersionPrefixSetAndReset) {
+  attempter_.CalculateUpdateParams("", "", "", "1234", false, false);
+  EXPECT_EQ("1234",
+            fake_system_state_.request_params()->target_version_prefix());
+
+  attempter_.CalculateUpdateParams("", "", "", "", false, false);
+  EXPECT_TRUE(
+      fake_system_state_.request_params()->target_version_prefix().empty());
+}
+
 }  // namespace chromeos_update_engine
diff --git a/update_manager/chromeos_policy.cc b/update_manager/chromeos_policy.cc
index ec2b9f0..ffd378c 100644
--- a/update_manager/chromeos_policy.cc
+++ b/update_manager/chromeos_policy.cc
@@ -245,9 +245,9 @@
       }
 
       result->target_version_prefix = *kiosk_required_platform_version_p;
-      LOG(INFO) << "Allow kiosk app to control Chrome version policy is set,"
-                << ", target version is "
-                << (kiosk_required_platform_version_p
+      LOG(INFO) << "Allow kiosk app to control Chrome version policy is set, "
+                << "target version is "
+                << (!kiosk_required_platform_version_p->empty()
                         ? *kiosk_required_platform_version_p
                         : std::string("latest"));
     } else {