Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1756)

Side by Side Diff: google_apis/gcm/engine/checkin_request_unittest.cc

Issue 215363007: [GCM] Adding basic G-services handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing the G-services handling form GCMClientImpl Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « google_apis/gcm/engine/checkin_request.cc ('k') | google_apis/gcm/engine/gcm_store.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "google_apis/gcm/engine/checkin_request.h" 8 #include "google_apis/gcm/engine/checkin_request.h"
9 #include "google_apis/gcm/protocol/checkin.pb.h" 9 #include "google_apis/gcm/protocol/checkin.pb.h"
10 #include "net/base/backoff_entry.h" 10 #include "net/base/backoff_entry.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 false, 44 false,
45 }; 45 };
46 46
47 } 47 }
48 48
49 const uint64 kAndroidId = 42UL; 49 const uint64 kAndroidId = 42UL;
50 const uint64 kBlankAndroidId = 999999UL; 50 const uint64 kBlankAndroidId = 999999UL;
51 const uint64 kBlankSecurityToken = 999999UL; 51 const uint64 kBlankSecurityToken = 999999UL;
52 const char kChromeVersion[] = "Version String"; 52 const char kChromeVersion[] = "Version String";
53 const uint64 kSecurityToken = 77; 53 const uint64 kSecurityToken = 77;
54 const char kSettingsDigest[] = "settings_digest";
54 55
55 class CheckinRequestTest : public testing::Test { 56 class CheckinRequestTest : public testing::Test {
56 public: 57 public:
57 enum ResponseScenario { 58 enum ResponseScenario {
58 VALID_RESPONSE, // Both android_id and security_token set in response. 59 VALID_RESPONSE, // Both android_id and security_token set in response.
59 MISSING_ANDROID_ID, // android_id is missing. 60 MISSING_ANDROID_ID, // android_id is missing.
60 MISSING_SECURITY_TOKEN, // security_token is missing. 61 MISSING_SECURITY_TOKEN, // security_token is missing.
61 ANDROID_ID_IS_ZER0, // android_id is 0. 62 ANDROID_ID_IS_ZER0, // android_id is 0.
62 SECURITY_TOKEN_IS_ZERO // security_token is 0. 63 SECURITY_TOKEN_IS_ZERO // security_token is 0.
63 }; 64 };
64 65
65 CheckinRequestTest(); 66 CheckinRequestTest();
66 virtual ~CheckinRequestTest(); 67 virtual ~CheckinRequestTest();
67 68
68 void FetcherCallback(uint64 android_id, uint64 security_token); 69 void FetcherCallback(
70 const checkin_proto::AndroidCheckinResponse& response);
69 71
70 void CreateRequest(uint64 android_id, uint64 security_token); 72 void CreateRequest(uint64 android_id, uint64 security_token);
71 73
72 void SetResponseStatusAndString( 74 void SetResponseStatusAndString(
73 net::HttpStatusCode status_code, 75 net::HttpStatusCode status_code,
74 const std::string& response_data); 76 const std::string& response_data);
75 77
76 void CompleteFetch(); 78 void CompleteFetch();
77 79
78 void SetResponse(ResponseScenario response_scenario); 80 void SetResponse(ResponseScenario response_scenario);
(...skipping 16 matching lines...) Expand all
95 android_id_(kBlankAndroidId), 97 android_id_(kBlankAndroidId),
96 security_token_(kBlankSecurityToken), 98 security_token_(kBlankSecurityToken),
97 checkin_device_type_(0), 99 checkin_device_type_(0),
98 url_request_context_getter_(new net::TestURLRequestContextGetter( 100 url_request_context_getter_(new net::TestURLRequestContextGetter(
99 message_loop_.message_loop_proxy())) { 101 message_loop_.message_loop_proxy())) {
100 account_ids_.push_back("account_id"); 102 account_ids_.push_back("account_id");
101 } 103 }
102 104
103 CheckinRequestTest::~CheckinRequestTest() {} 105 CheckinRequestTest::~CheckinRequestTest() {}
104 106
105 void CheckinRequestTest::FetcherCallback(uint64 android_id, 107 void CheckinRequestTest::FetcherCallback(
106 uint64 security_token) { 108 const checkin_proto::AndroidCheckinResponse& checkin_response) {
107 callback_called_ = true; 109 callback_called_ = true;
108 android_id_ = android_id; 110 if (checkin_response.has_android_id())
109 security_token_ = security_token; 111 android_id_ = checkin_response.android_id();
112 if (checkin_response.has_security_token())
113 security_token_ = checkin_response.security_token();
110 } 114 }
111 115
112 void CheckinRequestTest::CreateRequest(uint64 android_id, 116 void CheckinRequestTest::CreateRequest(uint64 android_id,
113 uint64 security_token) { 117 uint64 security_token) {
114 // First setup a chrome_build protobuf. 118 // First setup a chrome_build protobuf.
115 chrome_build_proto_.set_platform( 119 chrome_build_proto_.set_platform(
116 checkin_proto::ChromeBuildProto::PLATFORM_LINUX); 120 checkin_proto::ChromeBuildProto::PLATFORM_LINUX);
117 chrome_build_proto_.set_channel( 121 chrome_build_proto_.set_channel(
118 checkin_proto::ChromeBuildProto::CHANNEL_CANARY); 122 checkin_proto::ChromeBuildProto::CHANNEL_CANARY);
119 chrome_build_proto_.set_chrome_version(kChromeVersion); 123 chrome_build_proto_.set_chrome_version(kChromeVersion);
124
125 CheckinRequest::RequestInfo request_info(
126 android_id,
127 security_token,
128 kSettingsDigest,
129 account_ids_,
130 chrome_build_proto_);
120 // Then create a request with that protobuf and specified android_id, 131 // Then create a request with that protobuf and specified android_id,
121 // security_token. 132 // security_token.
122 request_.reset(new CheckinRequest( 133 request_.reset(new CheckinRequest(
134 request_info,
135 kDefaultBackoffPolicy,
123 base::Bind(&CheckinRequestTest::FetcherCallback, base::Unretained(this)), 136 base::Bind(&CheckinRequestTest::FetcherCallback, base::Unretained(this)),
124 kDefaultBackoffPolicy,
125 chrome_build_proto_,
126 android_id,
127 security_token,
128 account_ids_,
129 url_request_context_getter_.get())); 137 url_request_context_getter_.get()));
130 138
131 // Setting android_id_ and security_token_ to blank value, not used elsewhere 139 // Setting android_id_ and security_token_ to blank value, not used elsewhere
132 // in the tests. 140 // in the tests.
133 callback_called_ = false; 141 callback_called_ = false;
134 android_id_ = kBlankAndroidId; 142 android_id_ = kBlankAndroidId;
135 security_token_ = kBlankSecurityToken; 143 security_token_ = kBlankSecurityToken;
136 } 144 }
137 145
138 void CheckinRequestTest::SetResponseStatusAndString( 146 void CheckinRequestTest::SetResponseStatusAndString(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 EXPECT_EQ(chrome_build_proto_.channel(), 199 EXPECT_EQ(chrome_build_proto_.channel(),
192 request_proto.checkin().chrome_build().channel()); 200 request_proto.checkin().chrome_build().channel());
193 201
194 #if defined(CHROME_OS) 202 #if defined(CHROME_OS)
195 EXPECT_EQ(checkin_proto::DEVICE_CHROME_OS, request_proto.checkin().type()); 203 EXPECT_EQ(checkin_proto::DEVICE_CHROME_OS, request_proto.checkin().type());
196 #else 204 #else
197 EXPECT_EQ(checkin_proto::DEVICE_CHROME_BROWSER, 205 EXPECT_EQ(checkin_proto::DEVICE_CHROME_BROWSER,
198 request_proto.checkin().type()); 206 request_proto.checkin().type());
199 #endif 207 #endif
200 208
209 EXPECT_EQ(kSettingsDigest, request_proto.digest());
201 EXPECT_EQ(1, request_proto.account_cookie_size()); 210 EXPECT_EQ(1, request_proto.account_cookie_size());
202 EXPECT_EQ("[account_id]", request_proto.account_cookie(0)); 211 EXPECT_EQ("[account_id]", request_proto.account_cookie(0));
203 } 212 }
204 213
205 TEST_F(CheckinRequestTest, ResponseBodyEmpty) { 214 TEST_F(CheckinRequestTest, ResponseBodyEmpty) {
206 CreateRequest(0u, 0u); 215 CreateRequest(0u, 0u);
207 request_->Start(); 216 request_->Start();
208 217
209 SetResponseStatusAndString(net::HTTP_OK, std::string()); 218 SetResponseStatusAndString(net::HTTP_OK, std::string());
210 CompleteFetch(); 219 CompleteFetch();
(...skipping 26 matching lines...) Expand all
237 } 246 }
238 247
239 TEST_F(CheckinRequestTest, ResponseHttpStatusUnauthorized) { 248 TEST_F(CheckinRequestTest, ResponseHttpStatusUnauthorized) {
240 CreateRequest(0u, 0u); 249 CreateRequest(0u, 0u);
241 request_->Start(); 250 request_->Start();
242 251
243 SetResponseStatusAndString(net::HTTP_UNAUTHORIZED, std::string()); 252 SetResponseStatusAndString(net::HTTP_UNAUTHORIZED, std::string());
244 CompleteFetch(); 253 CompleteFetch();
245 254
246 EXPECT_TRUE(callback_called_); 255 EXPECT_TRUE(callback_called_);
247 EXPECT_EQ(0u, android_id_); 256 EXPECT_EQ(kBlankAndroidId, android_id_);
248 EXPECT_EQ(0u, security_token_); 257 EXPECT_EQ(kBlankSecurityToken, security_token_);
249 } 258 }
250 259
251 TEST_F(CheckinRequestTest, ResponseHttpStatusBadRequest) { 260 TEST_F(CheckinRequestTest, ResponseHttpStatusBadRequest) {
252 CreateRequest(0u, 0u); 261 CreateRequest(0u, 0u);
253 request_->Start(); 262 request_->Start();
254 263
255 SetResponseStatusAndString(net::HTTP_BAD_REQUEST, std::string()); 264 SetResponseStatusAndString(net::HTTP_BAD_REQUEST, std::string());
256 CompleteFetch(); 265 CompleteFetch();
257 266
258 EXPECT_TRUE(callback_called_); 267 EXPECT_TRUE(callback_called_);
259 EXPECT_EQ(0u, android_id_); 268 EXPECT_EQ(kBlankAndroidId, android_id_);
260 EXPECT_EQ(0u, security_token_); 269 EXPECT_EQ(kBlankSecurityToken, security_token_);
261 } 270 }
262 271
263 TEST_F(CheckinRequestTest, ResponseHttpStatusNotOK) { 272 TEST_F(CheckinRequestTest, ResponseHttpStatusNotOK) {
264 CreateRequest(0u, 0u); 273 CreateRequest(0u, 0u);
265 request_->Start(); 274 request_->Start();
266 275
267 SetResponseStatusAndString(net::HTTP_INTERNAL_SERVER_ERROR, std::string()); 276 SetResponseStatusAndString(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
268 CompleteFetch(); 277 CompleteFetch();
269 278
270 EXPECT_FALSE(callback_called_); 279 EXPECT_FALSE(callback_called_);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 372
364 SetResponse(VALID_RESPONSE); 373 SetResponse(VALID_RESPONSE);
365 CompleteFetch(); 374 CompleteFetch();
366 375
367 EXPECT_TRUE(callback_called_); 376 EXPECT_TRUE(callback_called_);
368 EXPECT_EQ(kAndroidId, android_id_); 377 EXPECT_EQ(kAndroidId, android_id_);
369 EXPECT_EQ(kSecurityToken, security_token_); 378 EXPECT_EQ(kSecurityToken, security_token_);
370 } 379 }
371 380
372 } // namespace gcm 381 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/checkin_request.cc ('k') | google_apis/gcm/engine/gcm_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698