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_;