AU: pass whether or not we can tolerate a delta to the server

BUG=4848
TEST=attached unittests

Review URL: http://codereview.chromium.org/3017006
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index cc37d7a..dedb972 100755
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -189,6 +189,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest",
+                            false,  // delta okay
                             "");  // url
   OmahaResponse response;
   ASSERT_TRUE(
@@ -211,6 +212,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "");  // url
   OmahaResponse response;
   ASSERT_TRUE(
@@ -248,6 +250,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest",
+                            false,  // delta okay
                             "");  // url
   const string http_response(GetNoUpdateResponse(OmahaRequestParams::kAppId));
 
@@ -279,6 +282,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(
@@ -301,6 +305,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(TestUpdateCheck(
@@ -326,6 +331,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(TestUpdateCheck(
@@ -351,6 +357,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(TestUpdateCheck(
@@ -376,6 +383,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_TRUE(TestUpdateCheck(params,
@@ -437,6 +445,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest",
+                            false,  // delta okay
                             "http://url");
   string http_response("doesn't matter");
   GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
@@ -475,6 +484,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(
@@ -505,6 +515,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_TRUE(
@@ -536,6 +547,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_TRUE(
@@ -568,6 +580,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   OmahaResponse response;
   ASSERT_FALSE(TestUpdateCheck(params,
@@ -595,6 +608,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
   TestEvent(params,
             new OmahaEvent(OmahaEvent::kTypeDownloadComplete,
@@ -626,6 +640,7 @@
                             "0.1.0.0",
                             "en-US",
                             "unittest_track",
+                            false,  // delta okay
                             "http://url");
 
   OmahaRequestAction update_check_action(
@@ -645,4 +660,34 @@
   EXPECT_TRUE(event_action.IsEvent());
 }
 
+TEST(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
+  for (int i = 0; i < 2; i++) {
+    bool delta_okay = i == 1;
+    const char* delta_okay_str = delta_okay ? "true" : "false";
+    vector<char> post_data;
+    OmahaRequestParams params("machine_id",
+                              "user_id",
+                              OmahaRequestParams::kOsPlatform,
+                              OmahaRequestParams::kOsVersion,
+                              "service_pack",
+                              "x86-generic",
+                              OmahaRequestParams::kAppId,
+                              "0.1.0.0",
+                              "en-US",
+                              "unittest_track",
+                              delta_okay,
+                              "http://url");
+    ASSERT_FALSE(TestUpdateCheck(params,
+                                 "invalid xml>",
+                                 false,
+                                 NULL,
+                                 &post_data));
+    // convert post_data to string
+    string post_str(&post_data[0], post_data.size());
+    EXPECT_NE(post_str.find(StringPrintf(" delta_okay=\"%s\"", delta_okay_str)),
+              string::npos)
+        << "i = " << i;
+  }
+}
+
 }  // namespace chromeos_update_engine