Never defer updates on interactive checks.

Looks like we had a bug when adding the deferred logic. We should never
defer on interactive checks as it's really confusing to a user who's
doing an interactive check. This change is simple enough but I've changed
all unittests that tested deferred behavior to also make sure they allow
an update if interactive is set.

BUG=chromium:274056
TEST=Unittests

Change-Id: Ib63dbd20e64bed2da84e68c96291335e00e944a2
Reviewed-on: https://gerrit.chromium.org/gerrit/66864
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Chris Sosa <sosa@chromium.org>
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index ffcb91a..cb305f7 100644
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -394,6 +394,29 @@
                       &response,
                       NULL));
   EXPECT_FALSE(response.update_exists);
+
+  // Verify if we are interactive check we don't defer.
+  params.set_interactive(true);
+  ASSERT_TRUE(
+      TestUpdateCheck(&prefs,  // prefs
+                      params,
+                      GetUpdateResponse2(OmahaRequestParams::kAppId,
+                                         "1.2.3.4",  // version
+                                         "http://more/info",
+                                         "true",  // prompt
+                                         "http://code/base/",  // dl url
+                                         "file.signed", // file name
+                                         "HASH1234=",  // checksum
+                                         "false",  // needs admin
+                                         "123",  // size
+                                         "",  // deadline
+                                         "7"), // max days to scatter
+                      -1,
+                      false,  // ping_only
+                      kErrorCodeSuccess,
+                      &response,
+                      NULL));
+  EXPECT_TRUE(response.update_exists);
 }
 
 TEST(OmahaRequestActionTest, NoWallClockBasedWaitCausesNoScattering) {
@@ -567,6 +590,29 @@
   ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateCheckCount, &count));
   ASSERT_TRUE(count > 0);
   EXPECT_FALSE(response.update_exists);
+
+  // Verify if we are interactive check we don't defer.
+  params.set_interactive(true);
+  ASSERT_TRUE(
+      TestUpdateCheck(&prefs,  // prefs
+                      params,
+                      GetUpdateResponse2(OmahaRequestParams::kAppId,
+                                         "1.2.3.4",  // version
+                                         "http://more/info",
+                                         "true",  // prompt
+                                         "http://code/base/",  // dl url
+                                         "file.signed", // file name
+                                         "HASH1234=",  // checksum
+                                         "false",  // needs admin
+                                         "123",  // size
+                                         "",  // deadline
+                                         "7"), // max days to scatter
+                      -1,
+                      false,  // ping_only
+                      kErrorCodeSuccess,
+                      &response,
+                      NULL));
+  EXPECT_TRUE(response.update_exists);
 }
 
 TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
@@ -616,6 +662,29 @@
   // which this test doesn't exercise.
   ASSERT_TRUE(count == 5);
   EXPECT_FALSE(response.update_exists);
+
+  // Verify if we are interactive check we don't defer.
+  params.set_interactive(true);
+  ASSERT_TRUE(
+      TestUpdateCheck(&prefs,  // prefs
+                      params,
+                      GetUpdateResponse2(OmahaRequestParams::kAppId,
+                                         "1.2.3.4",  // version
+                                         "http://more/info",
+                                         "true",  // prompt
+                                         "http://code/base/",  // dl url
+                                         "file.signed", // file name
+                                         "HASH1234=",  // checksum
+                                         "false",  // needs admin
+                                         "123",  // size
+                                         "",  // deadline
+                                         "7"), // max days to scatter
+                      -1,
+                      false,  // ping_only
+                      kErrorCodeSuccess,
+                      &response,
+                      NULL));
+  EXPECT_TRUE(response.update_exists);
 }
 
 TEST(OmahaRequestActionTest, NoOutputPipeTest) {
@@ -1438,6 +1507,29 @@
   ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateFirstSeenAt, &timestamp));
   ASSERT_TRUE(timestamp > 0);
   EXPECT_FALSE(response.update_exists);
+
+  // Verify if we are interactive check we don't defer.
+  params.set_interactive(true);
+  ASSERT_TRUE(
+      TestUpdateCheck(&prefs,  // prefs
+                      params,
+                      GetUpdateResponse2(OmahaRequestParams::kAppId,
+                                         "1.2.3.4",  // version
+                                         "http://more/info",
+                                         "true",  // prompt
+                                         "http://code/base/",  // dl url
+                                         "file.signed", // file name
+                                         "HASH1234=",  // checksum
+                                         "false",  // needs admin
+                                         "123",  // size
+                                         "",  // deadline
+                                         "7"), // max days to scatter
+                      -1,
+                      false,  // ping_only
+                      kErrorCodeSuccess,
+                      &response,
+                      NULL));
+  EXPECT_TRUE(response.update_exists);
 }
 
 TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsUsedIfAlreadyPresent) {