Chromium Code Reviews| 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..301e08728babbef7e651d0e1674ba3dc5728e03a 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" |
| @@ -65,6 +66,9 @@ class RegistrationRequestTest : public testing::Test { |
| void CreateRequest(const std::string& sender_ids); |
| void SetResponseStatusAndString(net::HttpStatusCode status_code, |
| const std::string& response_body); |
| + void SetResponseStatusAndString(net::HttpStatusCode status_code, |
|
fgorski
2014/02/14 06:18:04
In Chromium you are not suppose to overload the me
juyik
2014/02/18 20:11:01
Done.
juyik
2014/02/18 20:11:01
Done.
|
| + const net::URLRequestStatus& request_status, |
| + const std::string& response_body); |
| void CompleteFetch(); |
| protected: |
| @@ -121,6 +125,17 @@ void RegistrationRequestTest::SetResponseStatusAndString( |
| fetcher->SetResponseString(response_body); |
| } |
| +void RegistrationRequestTest::SetResponseStatusAndString( |
| + net::HttpStatusCode status_code, |
| + const net::URLRequestStatus& request_status, |
| + const std::string& response_body) { |
| + net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0); |
| + ASSERT_TRUE(fetcher); |
| + fetcher->set_response_code(status_code); |
| + fetcher->set_status(request_status); |
| + fetcher->SetResponseString(response_body); |
| +} |
| + |
| void RegistrationRequestTest::CompleteFetch() { |
| registration_id_.clear(); |
| status_ = RegistrationRequest::SUCCESS; |
| @@ -311,4 +326,42 @@ 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, request_status, "token=2501"); |
| + CompleteFetch(); |
| + |
| + EXPECT_FALSE(callback_called_); |
| + |
| + // Ensuring a retry happened and succeeds. |
| + request_status.set_status(net::URLRequestStatus::SUCCESS); |
| + SetResponseStatusAndString(net::HTTP_OK, request_status, "token=2501"); |
| + CompleteFetch(); |
| + |
| + EXPECT_TRUE(callback_called_); |
| + EXPECT_EQ(RegistrationRequest::SUCCESS, status_); |
| + EXPECT_EQ("2501", registration_id_); |
| +} |
| + |
| +TEST_F(RegistrationRequestTest, ResponseHTTPNotOK) { |
|
fgorski
2014/02/14 06:18:04
ResponseHttpNotOk
juyik
2014/02/18 20:11:01
Done.
|
| + CreateRequest("sender1,sender2"); |
| + request_->Start(); |
| + |
| + SetResponseStatusAndString(net::HTTP_GATEWAY_TIMEOUT, "token=2501"); |
| + CompleteFetch(); |
| + |
| + EXPECT_FALSE(callback_called_); |
| + |
| + // Ensuring a retry happened and succeeds. |
| + SetResponseStatusAndString(net::HTTP_OK, "token=2501"); |
| + CompleteFetch(); |
| + |
| + EXPECT_TRUE(callback_called_); |
| + EXPECT_EQ(RegistrationRequest::SUCCESS, status_); |
| + EXPECT_EQ("2501", registration_id_); |
| +} |
| + |
| } // namespace gcm |