Index: google_apis/gcm/engine/registration_request_unittest.cc |
diff --git a/google_apis/gcm/engine/registration_request_unittest.cc b/google_apis/gcm/engine/registration_request_unittest.cc |
index 178c135583950f4225513b0d5b0cbe38ee1c9001..62b8717d2a8dd9944cb78c919f02a8b942c4d02f 100644 |
--- a/google_apis/gcm/engine/registration_request_unittest.cc |
+++ b/google_apis/gcm/engine/registration_request_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "base/strings/string_tokenizer.h" |
#include "google_apis/gcm/engine/registration_request.h" |
#include "net/url_request/test_url_fetcher_factory.h" |
+#include "net/url_request/url_request_status.h" |
#include "net/url_request/url_request_test_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -311,4 +312,45 @@ TEST_F(RegistrationRequestTest, ResponseInvalidSender) { |
EXPECT_EQ(std::string(), registration_id_); |
} |
+TEST_F(RegistrationRequestTest, RequestNotSucessful) { |
+ CreateRequest("sender1,sender2"); |
+ request_->Start(); |
+ |
+ net::URLRequestStatus request_status(net::URLRequestStatus::FAILED, 1); |
+ SetResponseStatusAndString(net::HTTP_OK, "token=2501"); |
+ net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); |
+ ASSERT_TRUE(fetcher); |
+ fetcher->set_status(request_status); |
+ |
+ CompleteFetch(); |
+ |
+ EXPECT_FALSE(callback_called_); |
+ |
+ // Ensuring a retry happened and succeeded. |
+ SetResponseStatusAndString(net::HTTP_OK, "token=2501"); |
+ CompleteFetch(); |
+ |
+ EXPECT_TRUE(callback_called_); |
+ EXPECT_EQ(RegistrationRequest::SUCCESS, status_); |
+ EXPECT_EQ("2501", registration_id_); |
+} |
+ |
+TEST_F(RegistrationRequestTest, ResponseHttpNotOk) { |
+ CreateRequest("sender1,sender2"); |
+ request_->Start(); |
+ |
+ SetResponseStatusAndString(net::HTTP_GATEWAY_TIMEOUT, "token=2501"); |
+ CompleteFetch(); |
+ |
+ EXPECT_FALSE(callback_called_); |
+ |
+ // Ensuring a retry happened and succeeded. |
+ SetResponseStatusAndString(net::HTTP_OK, "token=2501"); |
+ CompleteFetch(); |
+ |
+ EXPECT_TRUE(callback_called_); |
+ EXPECT_EQ(RegistrationRequest::SUCCESS, status_); |
+ EXPECT_EQ("2501", registration_id_); |
+} |
+ |
} // namespace gcm |