update_engine: Add new rollback policy values

The new values are:
- RollbackAndRestoreIfPossible: always roll back, but try to save and
  restore data if possible. This is rollback_allowed=true.
- RollbackWithRestoreOnly: only roll back if it's possible to save and
  restore data. This is rollback_allowed=false until data save and
  restore is implemented.

BUG=chromium:878736
TEST='cros_run_unit_tests --board=caroline --packages update_engine'

Change-Id: Ifd198610c26d11521b39da8fce5f44dc97609bf5
Reviewed-on: https://chromium-review.googlesource.com/1194229
Commit-Ready: Marton Hunyady <hunyadym@chromium.org>
Tested-by: Marton Hunyady <hunyadym@chromium.org>
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
diff --git a/update_manager/chromeos_policy_unittest.cc b/update_manager/chromeos_policy_unittest.cc
index 96f3d79..f97d4ed 100644
--- a/update_manager/chromeos_policy_unittest.cc
+++ b/update_manager/chromeos_policy_unittest.cc
@@ -278,6 +278,18 @@
       true, RollbackToTargetVersion::kRollbackWithFullPowerwash));
 }
 
+TEST_F(UmChromeOSPolicyTest, UpdateCheckAllowedRollbackAndRestoreIfPossible) {
+  // We're doing rollback even if we don't support data save and restore.
+  EXPECT_TRUE(TestRollbackAllowed(
+      true, RollbackToTargetVersion::kRollbackAndRestoreIfPossible));
+}
+
+TEST_F(UmChromeOSPolicyTest, UpdateCheckAllowedRollbackWithRestoreOnly) {
+  // We're not allowed to do rollback until we support data save and restore.
+  EXPECT_FALSE(TestRollbackAllowed(
+      true, RollbackToTargetVersion::kRollbackWithRestoreOnly));
+}
+
 TEST_F(UmChromeOSPolicyTest, UpdateCheckAllowedRollbackDisabled) {
   EXPECT_FALSE(TestRollbackAllowed(true, RollbackToTargetVersion::kDisabled));
 }