AU: Expose the server's HTTP response code in HttpFetcher.

A step towards resolving 2394 -- we'll need to exponentially back
off on 500 and 503 as well as 502 if possible.

BUG=2394
TEST=unit tests, gmerged and made sure updates can happen

Change-Id: I7928e3af37f23ce1ba197315ec52ab0b2ed0dc4c

Review URL: http://codereview.chromium.org/3106038
diff --git a/http_fetcher_unittest.cc b/http_fetcher_unittest.cc
index f7dad8e..d096267 100644
--- a/http_fetcher_unittest.cc
+++ b/http_fetcher_unittest.cc
@@ -161,6 +161,7 @@
     memcpy(str, bytes, length);
   }
   virtual void TransferComplete(HttpFetcher* fetcher, bool successful) {
+    EXPECT_EQ(200, fetcher->http_response_code());
     g_main_loop_quit(loop_);
   }
   GMainLoop* loop_;
@@ -332,6 +333,7 @@
 
     g_main_loop_run(loop);
     g_source_destroy(timeout_source_);
+    EXPECT_EQ(0, fetcher->http_response_code());
   }
   g_main_loop_unref(loop);
 }
@@ -345,6 +347,7 @@
   }
   virtual void TransferComplete(HttpFetcher* fetcher, bool successful) {
     EXPECT_TRUE(successful);
+    EXPECT_EQ(206, fetcher->http_response_code());
     g_main_loop_quit(loop_);
   }
   string data;
@@ -398,6 +401,7 @@
   }
   virtual void TransferComplete(HttpFetcher* fetcher, bool successful) {
     EXPECT_FALSE(successful);
+    EXPECT_EQ(0, fetcher->http_response_code());
     g_main_loop_quit(loop_);
   }
   GMainLoop* loop_;
@@ -466,6 +470,12 @@
   }
   virtual void TransferComplete(HttpFetcher* fetcher, bool successful) {
     EXPECT_EQ(expected_successful_, successful);
+    if (expected_successful_)
+      EXPECT_EQ(200, fetcher->http_response_code());
+    else {
+      EXPECT_GE(fetcher->http_response_code(), 301);
+      EXPECT_LE(fetcher->http_response_code(), 307);
+    }
     g_main_loop_quit(loop_);
   }
   bool expected_successful_;