| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <map> | 5 #include <map> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/string_tokenizer.h" | 10 #include "base/strings/string_tokenizer.h" |
| 11 #include "google_apis/gcm/engine/registration_request.h" | 11 #include "google_apis/gcm/engine/registration_request.h" |
| 12 #include "net/url_request/test_url_fetcher_factory.h" | 12 #include "net/url_request/test_url_fetcher_factory.h" |
| 13 #include "net/url_request/url_request_status.h" | 13 #include "net/url_request/url_request_status.h" |
| 14 #include "net/url_request/url_request_test_util.h" | 14 #include "net/url_request/url_request_test_util.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 namespace gcm { | 17 namespace gcm { |
| 18 | 18 |
| 19 namespace { | 19 namespace { |
| 20 const uint64 kAndroidId = 42UL; | 20 const uint64 kAndroidId = 42UL; |
| 21 const char kAppId[] = "TestAppId"; | 21 const char kAppId[] = "TestAppId"; |
| 22 const char kCert[] = "0DEADBEEF420"; | |
| 23 const char kDeveloperId[] = "Project1"; | 22 const char kDeveloperId[] = "Project1"; |
| 24 const char kLoginHeader[] = "AidLogin"; | 23 const char kLoginHeader[] = "AidLogin"; |
| 25 const uint64 kSecurityToken = 77UL; | 24 const uint64 kSecurityToken = 77UL; |
| 26 | 25 |
| 27 // Backoff policy for testing registration request. | 26 // Backoff policy for testing registration request. |
| 28 const net::BackoffEntry::Policy kDefaultBackoffPolicy = { | 27 const net::BackoffEntry::Policy kDefaultBackoffPolicy = { |
| 29 // Number of initial errors (in sequence) to ignore before applying | 28 // Number of initial errors (in sequence) to ignore before applying |
| 30 // exponential back-off rules. | 29 // exponential back-off rules. |
| 31 // Explicitly set to 2 to skip the delay on the first retry, as we are not | 30 // Explicitly set to 2 to skip the delay on the first retry, as we are not |
| 32 // trying to test the backoff itself, but rather the fact that retry happens. | 31 // trying to test the backoff itself, but rather the fact that retry happens. |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 void RegistrationRequestTest::CreateRequest(const std::string& sender_ids) { | 102 void RegistrationRequestTest::CreateRequest(const std::string& sender_ids) { |
| 104 std::vector<std::string> senders; | 103 std::vector<std::string> senders; |
| 105 base::StringTokenizer tokenizer(sender_ids, ","); | 104 base::StringTokenizer tokenizer(sender_ids, ","); |
| 106 while (tokenizer.GetNext()) | 105 while (tokenizer.GetNext()) |
| 107 senders.push_back(tokenizer.token()); | 106 senders.push_back(tokenizer.token()); |
| 108 | 107 |
| 109 request_.reset(new RegistrationRequest( | 108 request_.reset(new RegistrationRequest( |
| 110 RegistrationRequest::RequestInfo(kAndroidId, | 109 RegistrationRequest::RequestInfo(kAndroidId, |
| 111 kSecurityToken, | 110 kSecurityToken, |
| 112 kAppId, | 111 kAppId, |
| 113 kCert, | |
| 114 senders), | 112 senders), |
| 115 kDefaultBackoffPolicy, | 113 kDefaultBackoffPolicy, |
| 116 base::Bind(&RegistrationRequestTest::RegistrationCallback, | 114 base::Bind(&RegistrationRequestTest::RegistrationCallback, |
| 117 base::Unretained(this)), | 115 base::Unretained(this)), |
| 118 max_retry_count_, | 116 max_retry_count_, |
| 119 url_request_context_getter_.get())); | 117 url_request_context_getter_.get())); |
| 120 } | 118 } |
| 121 | 119 |
| 122 void RegistrationRequestTest::SetResponseStatusAndString( | 120 void RegistrationRequestTest::SetResponseStatusAndString( |
| 123 net::HttpStatusCode status_code, | 121 net::HttpStatusCode status_code, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 ASSERT_TRUE(auth_tokenizer.GetNext()); | 166 ASSERT_TRUE(auth_tokenizer.GetNext()); |
| 169 EXPECT_EQ(kLoginHeader, auth_tokenizer.token()); | 167 EXPECT_EQ(kLoginHeader, auth_tokenizer.token()); |
| 170 ASSERT_TRUE(auth_tokenizer.GetNext()); | 168 ASSERT_TRUE(auth_tokenizer.GetNext()); |
| 171 EXPECT_EQ(base::Uint64ToString(kAndroidId), auth_tokenizer.token()); | 169 EXPECT_EQ(base::Uint64ToString(kAndroidId), auth_tokenizer.token()); |
| 172 ASSERT_TRUE(auth_tokenizer.GetNext()); | 170 ASSERT_TRUE(auth_tokenizer.GetNext()); |
| 173 EXPECT_EQ(base::Uint64ToString(kSecurityToken), auth_tokenizer.token()); | 171 EXPECT_EQ(base::Uint64ToString(kSecurityToken), auth_tokenizer.token()); |
| 174 | 172 |
| 175 std::map<std::string, std::string> expected_pairs; | 173 std::map<std::string, std::string> expected_pairs; |
| 176 expected_pairs["app"] = kAppId; | 174 expected_pairs["app"] = kAppId; |
| 177 expected_pairs["sender"] = kDeveloperId; | 175 expected_pairs["sender"] = kDeveloperId; |
| 178 expected_pairs["cert"] = kCert; | |
| 179 expected_pairs["device"] = base::Uint64ToString(kAndroidId); | 176 expected_pairs["device"] = base::Uint64ToString(kAndroidId); |
| 180 | 177 |
| 181 // Verify data was formatted properly. | 178 // Verify data was formatted properly. |
| 182 std::string upload_data = fetcher->upload_data(); | 179 std::string upload_data = fetcher->upload_data(); |
| 183 base::StringTokenizer data_tokenizer(upload_data, "&="); | 180 base::StringTokenizer data_tokenizer(upload_data, "&="); |
| 184 while (data_tokenizer.GetNext()) { | 181 while (data_tokenizer.GetNext()) { |
| 185 std::map<std::string, std::string>::iterator iter = | 182 std::map<std::string, std::string>::iterator iter = |
| 186 expected_pairs.find(data_tokenizer.token()); | 183 expected_pairs.find(data_tokenizer.token()); |
| 187 ASSERT_TRUE(iter != expected_pairs.end()); | 184 ASSERT_TRUE(iter != expected_pairs.end()); |
| 188 ASSERT_TRUE(data_tokenizer.GetNext()); | 185 ASSERT_TRUE(data_tokenizer.GetNext()); |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 | 398 |
| 402 SetResponseStatusAndString(net::HTTP_GATEWAY_TIMEOUT, "token=2501"); | 399 SetResponseStatusAndString(net::HTTP_GATEWAY_TIMEOUT, "token=2501"); |
| 403 CompleteFetch(); | 400 CompleteFetch(); |
| 404 | 401 |
| 405 EXPECT_TRUE(callback_called_); | 402 EXPECT_TRUE(callback_called_); |
| 406 EXPECT_EQ(RegistrationRequest::REACHED_MAX_RETRIES, status_); | 403 EXPECT_EQ(RegistrationRequest::REACHED_MAX_RETRIES, status_); |
| 407 EXPECT_EQ(std::string(), registration_id_); | 404 EXPECT_EQ(std::string(), registration_id_); |
| 408 } | 405 } |
| 409 | 406 |
| 410 } // namespace gcm | 407 } // namespace gcm |
| OLD | NEW |