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

Side by Side Diff: components/cryptauth/cryptauth_client_impl_unittest.cc

Issue 2502343003: Moved //components/proximity_auth/cryptauth to //components/cryptauth. (Closed)
Patch Set: Prefixed two test names with "CryptAuth" so that they do not collide with other test names. Created 4 years, 1 month 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
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 "components/proximity_auth/cryptauth/cryptauth_client_impl.h" 5 #include "components/cryptauth/cryptauth_client_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/test/null_task_runner.h" 10 #include "base/test/null_task_runner.h"
11 #include "components/proximity_auth/cryptauth/cryptauth_access_token_fetcher.h" 11 #include "components/cryptauth/cryptauth_access_token_fetcher.h"
12 #include "components/proximity_auth/cryptauth/cryptauth_api_call_flow.h" 12 #include "components/cryptauth/cryptauth_api_call_flow.h"
13 #include "components/cryptauth/switches.h"
13 #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h" 14 #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h"
14 #include "components/proximity_auth/cryptauth/switches.h"
15 #include "google_apis/gaia/fake_oauth2_token_service.h" 15 #include "google_apis/gaia/fake_oauth2_token_service.h"
16 #include "net/url_request/test_url_fetcher_factory.h" 16 #include "net/url_request/test_url_fetcher_factory.h"
17 #include "net/url_request/url_request_test_util.h" 17 #include "net/url_request/url_request_test_util.h"
18 #include "testing/gmock/include/gmock/gmock.h" 18 #include "testing/gmock/include/gmock/gmock.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "url/gurl.h" 20 #include "url/gurl.h"
21 21
22 using testing::_; 22 using testing::_;
23 using testing::DoAll; 23 using testing::DoAll;
24 using testing::Return; 24 using testing::Return;
25 using testing::SaveArg; 25 using testing::SaveArg;
26 using testing::StrictMock; 26 using testing::StrictMock;
27 27
28 namespace proximity_auth { 28 namespace cryptauth {
29 29
30 namespace { 30 namespace {
31 31
32 const char kTestGoogleApisUrl[] = "https://www.testgoogleapis.com"; 32 const char kTestGoogleApisUrl[] = "https://www.testgoogleapis.com";
33 const char kAccessToken[] = "access_token"; 33 const char kAccessToken[] = "access_token";
34 const char kPublicKey1[] = "public_key1"; 34 const char kPublicKey1[] = "public_key1";
35 const char kPublicKey2[] = "public_key2"; 35 const char kPublicKey2[] = "public_key2";
36 const char kBluetoothAddress1[] = "AA:AA:AA:AA:AA:AA"; 36 const char kBluetoothAddress1[] = "AA:AA:AA:AA:AA:AA";
37 const char kBluetoothAddress2[] = "BB:BB:BB:BB:BB:BB"; 37 const char kBluetoothAddress2[] = "BB:BB:BB:BB:BB:BB";
38 38
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 85 }
86 86
87 // Callback that saves the result returned by CryptAuthClient. 87 // Callback that saves the result returned by CryptAuthClient.
88 template <class T> 88 template <class T>
89 void SaveResult(T* out, const T& result) { 89 void SaveResult(T* out, const T& result) {
90 *out = result; 90 *out = result;
91 } 91 }
92 92
93 } // namespace 93 } // namespace
94 94
95 class ProximityAuthCryptAuthClientTest : public testing::Test { 95 class CryptAuthClientTest : public testing::Test {
96 protected: 96 protected:
97 ProximityAuthCryptAuthClientTest() 97 CryptAuthClientTest()
98 : access_token_fetcher_(new FakeCryptAuthAccessTokenFetcher()), 98 : access_token_fetcher_(new FakeCryptAuthAccessTokenFetcher()),
99 api_call_flow_(new StrictMock<MockCryptAuthApiCallFlow>()), 99 api_call_flow_(new StrictMock<MockCryptAuthApiCallFlow>()),
100 url_request_context_( 100 url_request_context_(
101 new net::TestURLRequestContextGetter(new base::NullTaskRunner())), 101 new net::TestURLRequestContextGetter(new base::NullTaskRunner())),
102 serialized_request_(std::string()) {} 102 serialized_request_(std::string()) {}
103 103
104 void SetUp() override { 104 void SetUp() override {
105 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 105 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
106 switches::kCryptAuthHTTPHost, kTestGoogleApisUrl); 106 switches::kCryptAuthHTTPHost, kTestGoogleApisUrl);
107 107
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 StrictMock<MockCryptAuthApiCallFlow>* api_call_flow_; 148 StrictMock<MockCryptAuthApiCallFlow>* api_call_flow_;
149 149
150 scoped_refptr<net::URLRequestContextGetter> url_request_context_; 150 scoped_refptr<net::URLRequestContextGetter> url_request_context_;
151 std::unique_ptr<CryptAuthClient> client_; 151 std::unique_ptr<CryptAuthClient> client_;
152 152
153 std::string serialized_request_; 153 std::string serialized_request_;
154 CryptAuthApiCallFlow::ResultCallback flow_result_callback_; 154 CryptAuthApiCallFlow::ResultCallback flow_result_callback_;
155 CryptAuthApiCallFlow::ErrorCallback flow_error_callback_; 155 CryptAuthApiCallFlow::ErrorCallback flow_error_callback_;
156 }; 156 };
157 157
158 TEST_F(ProximityAuthCryptAuthClientTest, GetMyDevicesSuccess) { 158 TEST_F(CryptAuthClientTest, GetMyDevicesSuccess) {
159 ExpectRequest( 159 ExpectRequest(
160 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 160 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
161 "getmydevices?alt=proto"); 161 "getmydevices?alt=proto");
162 162
163 cryptauth::GetMyDevicesResponse result_proto; 163 cryptauth::GetMyDevicesResponse result_proto;
164 cryptauth::GetMyDevicesRequest request_proto; 164 cryptauth::GetMyDevicesRequest request_proto;
165 request_proto.set_allow_stale_read(true); 165 request_proto.set_allow_stale_read(true);
166 client_->GetMyDevices( 166 client_->GetMyDevices(
167 request_proto, 167 request_proto,
168 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto), 168 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto),
(...skipping 19 matching lines...) Expand all
188 188
189 // Check that the result received in callback is the same as the response. 189 // Check that the result received in callback is the same as the response.
190 ASSERT_EQ(2, result_proto.devices_size()); 190 ASSERT_EQ(2, result_proto.devices_size());
191 EXPECT_EQ(kPublicKey1, result_proto.devices(0).public_key()); 191 EXPECT_EQ(kPublicKey1, result_proto.devices(0).public_key());
192 EXPECT_TRUE(result_proto.devices(0).unlock_key()); 192 EXPECT_TRUE(result_proto.devices(0).unlock_key());
193 EXPECT_EQ(kBluetoothAddress1, result_proto.devices(0).bluetooth_address()); 193 EXPECT_EQ(kBluetoothAddress1, result_proto.devices(0).bluetooth_address());
194 EXPECT_EQ(kPublicKey2, result_proto.devices(1).public_key()); 194 EXPECT_EQ(kPublicKey2, result_proto.devices(1).public_key());
195 EXPECT_TRUE(result_proto.devices(1).unlockable()); 195 EXPECT_TRUE(result_proto.devices(1).unlockable());
196 } 196 }
197 197
198 TEST_F(ProximityAuthCryptAuthClientTest, GetMyDevicesFailure) { 198 TEST_F(CryptAuthClientTest, GetMyDevicesFailure) {
199 ExpectRequest( 199 ExpectRequest(
200 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 200 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
201 "getmydevices?alt=proto"); 201 "getmydevices?alt=proto");
202 202
203 std::string error_message; 203 std::string error_message;
204 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(), 204 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(),
205 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>), 205 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>),
206 base::Bind(&SaveResult<std::string>, &error_message)); 206 base::Bind(&SaveResult<std::string>, &error_message));
207 207
208 std::string kStatus500Error("HTTP status: 500"); 208 std::string kStatus500Error("HTTP status: 500");
209 FailApiCallFlow(kStatus500Error); 209 FailApiCallFlow(kStatus500Error);
210 EXPECT_EQ(kStatus500Error, error_message); 210 EXPECT_EQ(kStatus500Error, error_message);
211 } 211 }
212 212
213 TEST_F(ProximityAuthCryptAuthClientTest, FindEligibleUnlockDevicesSuccess) { 213 TEST_F(CryptAuthClientTest, FindEligibleUnlockDevicesSuccess) {
214 ExpectRequest( 214 ExpectRequest(
215 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 215 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
216 "findeligibleunlockdevices?alt=proto"); 216 "findeligibleunlockdevices?alt=proto");
217 217
218 cryptauth::FindEligibleUnlockDevicesResponse result_proto; 218 cryptauth::FindEligibleUnlockDevicesResponse result_proto;
219 cryptauth::FindEligibleUnlockDevicesRequest request_proto; 219 cryptauth::FindEligibleUnlockDevicesRequest request_proto;
220 request_proto.set_callback_bluetooth_address(kBluetoothAddress2); 220 request_proto.set_callback_bluetooth_address(kBluetoothAddress2);
221 client_->FindEligibleUnlockDevices( 221 client_->FindEligibleUnlockDevices(
222 request_proto, 222 request_proto,
223 base::Bind(&SaveResult<cryptauth::FindEligibleUnlockDevicesResponse>, 223 base::Bind(&SaveResult<cryptauth::FindEligibleUnlockDevicesResponse>,
(...skipping 22 matching lines...) Expand all
246 ASSERT_EQ(1, result_proto.eligible_devices_size()); 246 ASSERT_EQ(1, result_proto.eligible_devices_size());
247 EXPECT_EQ(kPublicKey1, result_proto.eligible_devices(0).public_key()); 247 EXPECT_EQ(kPublicKey1, result_proto.eligible_devices(0).public_key());
248 ASSERT_EQ(1, result_proto.ineligible_devices_size()); 248 ASSERT_EQ(1, result_proto.ineligible_devices_size());
249 EXPECT_EQ(kPublicKey2, 249 EXPECT_EQ(kPublicKey2,
250 result_proto.ineligible_devices(0).device().public_key()); 250 result_proto.ineligible_devices(0).device().public_key());
251 ASSERT_EQ(1, result_proto.ineligible_devices(0).reasons_size()); 251 ASSERT_EQ(1, result_proto.ineligible_devices(0).reasons_size());
252 EXPECT_EQ(kIneligibilityReason, 252 EXPECT_EQ(kIneligibilityReason,
253 result_proto.ineligible_devices(0).reasons(0)); 253 result_proto.ineligible_devices(0).reasons(0));
254 } 254 }
255 255
256 TEST_F(ProximityAuthCryptAuthClientTest, FindEligibleUnlockDevicesFailure) { 256 TEST_F(CryptAuthClientTest, FindEligibleUnlockDevicesFailure) {
257 ExpectRequest( 257 ExpectRequest(
258 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 258 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
259 "findeligibleunlockdevices?alt=proto"); 259 "findeligibleunlockdevices?alt=proto");
260 260
261 std::string error_message; 261 std::string error_message;
262 cryptauth::FindEligibleUnlockDevicesRequest request_proto; 262 cryptauth::FindEligibleUnlockDevicesRequest request_proto;
263 request_proto.set_callback_bluetooth_address(kBluetoothAddress1); 263 request_proto.set_callback_bluetooth_address(kBluetoothAddress1);
264 client_->FindEligibleUnlockDevices( 264 client_->FindEligibleUnlockDevices(
265 request_proto, 265 request_proto,
266 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>), 266 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>),
267 base::Bind(&SaveResult<std::string>, &error_message)); 267 base::Bind(&SaveResult<std::string>, &error_message));
268 268
269 std::string kStatus403Error("HTTP status: 403"); 269 std::string kStatus403Error("HTTP status: 403");
270 FailApiCallFlow(kStatus403Error); 270 FailApiCallFlow(kStatus403Error);
271 EXPECT_EQ(kStatus403Error, error_message); 271 EXPECT_EQ(kStatus403Error, error_message);
272 } 272 }
273 273
274 TEST_F(ProximityAuthCryptAuthClientTest, SendDeviceSyncTickleSuccess) { 274 TEST_F(CryptAuthClientTest, SendDeviceSyncTickleSuccess) {
275 ExpectRequest( 275 ExpectRequest(
276 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 276 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
277 "senddevicesynctickle?alt=proto"); 277 "senddevicesynctickle?alt=proto");
278 278
279 cryptauth::SendDeviceSyncTickleResponse result_proto; 279 cryptauth::SendDeviceSyncTickleResponse result_proto;
280 client_->SendDeviceSyncTickle( 280 client_->SendDeviceSyncTickle(
281 cryptauth::SendDeviceSyncTickleRequest(), 281 cryptauth::SendDeviceSyncTickleRequest(),
282 base::Bind(&SaveResult<cryptauth::SendDeviceSyncTickleResponse>, 282 base::Bind(&SaveResult<cryptauth::SendDeviceSyncTickleResponse>,
283 &result_proto), 283 &result_proto),
284 base::Bind(&NotCalled<std::string>)); 284 base::Bind(&NotCalled<std::string>));
285 285
286 cryptauth::SendDeviceSyncTickleRequest expected_request; 286 cryptauth::SendDeviceSyncTickleRequest expected_request;
287 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_)); 287 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_));
288 288
289 cryptauth::SendDeviceSyncTickleResponse response_proto; 289 cryptauth::SendDeviceSyncTickleResponse response_proto;
290 FinishApiCallFlow(&response_proto); 290 FinishApiCallFlow(&response_proto);
291 } 291 }
292 292
293 TEST_F(ProximityAuthCryptAuthClientTest, ToggleEasyUnlockSuccess) { 293 TEST_F(CryptAuthClientTest, ToggleEasyUnlockSuccess) {
294 ExpectRequest( 294 ExpectRequest(
295 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 295 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
296 "toggleeasyunlock?alt=proto"); 296 "toggleeasyunlock?alt=proto");
297 297
298 cryptauth::ToggleEasyUnlockResponse result_proto; 298 cryptauth::ToggleEasyUnlockResponse result_proto;
299 cryptauth::ToggleEasyUnlockRequest request_proto; 299 cryptauth::ToggleEasyUnlockRequest request_proto;
300 request_proto.set_enable(true); 300 request_proto.set_enable(true);
301 request_proto.set_apply_to_all(false); 301 request_proto.set_apply_to_all(false);
302 request_proto.set_public_key(kPublicKey1); 302 request_proto.set_public_key(kPublicKey1);
303 client_->ToggleEasyUnlock( 303 client_->ToggleEasyUnlock(
304 request_proto, 304 request_proto,
305 base::Bind(&SaveResult<cryptauth::ToggleEasyUnlockResponse>, 305 base::Bind(&SaveResult<cryptauth::ToggleEasyUnlockResponse>,
306 &result_proto), 306 &result_proto),
307 base::Bind(&NotCalled<std::string>)); 307 base::Bind(&NotCalled<std::string>));
308 308
309 cryptauth::ToggleEasyUnlockRequest expected_request; 309 cryptauth::ToggleEasyUnlockRequest expected_request;
310 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_)); 310 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_));
311 EXPECT_TRUE(expected_request.enable()); 311 EXPECT_TRUE(expected_request.enable());
312 EXPECT_EQ(kPublicKey1, expected_request.public_key()); 312 EXPECT_EQ(kPublicKey1, expected_request.public_key());
313 EXPECT_FALSE(expected_request.apply_to_all()); 313 EXPECT_FALSE(expected_request.apply_to_all());
314 314
315 cryptauth::ToggleEasyUnlockResponse response_proto; 315 cryptauth::ToggleEasyUnlockResponse response_proto;
316 FinishApiCallFlow(&response_proto); 316 FinishApiCallFlow(&response_proto);
317 } 317 }
318 318
319 TEST_F(ProximityAuthCryptAuthClientTest, SetupEnrollmentSuccess) { 319 TEST_F(CryptAuthClientTest, SetupEnrollmentSuccess) {
320 ExpectRequest( 320 ExpectRequest(
321 "https://www.testgoogleapis.com/cryptauth/v1/enrollment/" 321 "https://www.testgoogleapis.com/cryptauth/v1/enrollment/"
322 "setup?alt=proto"); 322 "setup?alt=proto");
323 323
324 std::string kApplicationId = "mkaes"; 324 std::string kApplicationId = "mkaes";
325 std::vector<std::string> supported_protocols; 325 std::vector<std::string> supported_protocols;
326 supported_protocols.push_back("gcmV1"); 326 supported_protocols.push_back("gcmV1");
327 supported_protocols.push_back("testProtocol"); 327 supported_protocols.push_back("testProtocol");
328 328
329 cryptauth::SetupEnrollmentResponse result_proto; 329 cryptauth::SetupEnrollmentResponse result_proto;
(...skipping 25 matching lines...) Expand all
355 } 355 }
356 356
357 // Check that the returned proto is the same as the one just created. 357 // Check that the returned proto is the same as the one just created.
358 EXPECT_EQ("OK", result_proto.status()); 358 EXPECT_EQ("OK", result_proto.status());
359 ASSERT_EQ(1, result_proto.infos_size()); 359 ASSERT_EQ(1, result_proto.infos_size());
360 EXPECT_EQ("gcmV1", result_proto.infos(0).type()); 360 EXPECT_EQ("gcmV1", result_proto.infos(0).type());
361 EXPECT_EQ("session_id", result_proto.infos(0).enrollment_session_id()); 361 EXPECT_EQ("session_id", result_proto.infos(0).enrollment_session_id());
362 EXPECT_EQ("ephemeral_key", result_proto.infos(0).server_ephemeral_key()); 362 EXPECT_EQ("ephemeral_key", result_proto.infos(0).server_ephemeral_key());
363 } 363 }
364 364
365 TEST_F(ProximityAuthCryptAuthClientTest, FinishEnrollmentSuccess) { 365 TEST_F(CryptAuthClientTest, FinishEnrollmentSuccess) {
366 ExpectRequest( 366 ExpectRequest(
367 "https://www.testgoogleapis.com/cryptauth/v1/enrollment/" 367 "https://www.testgoogleapis.com/cryptauth/v1/enrollment/"
368 "finish?alt=proto"); 368 "finish?alt=proto");
369 369
370 const char kEnrollmentSessionId[] = "enrollment_session_id"; 370 const char kEnrollmentSessionId[] = "enrollment_session_id";
371 const char kEnrollmentMessage[] = "enrollment_message"; 371 const char kEnrollmentMessage[] = "enrollment_message";
372 const char kDeviceEphemeralKey[] = "device_ephermal_key"; 372 const char kDeviceEphemeralKey[] = "device_ephermal_key";
373 cryptauth::FinishEnrollmentResponse result_proto; 373 cryptauth::FinishEnrollmentResponse result_proto;
374 cryptauth::FinishEnrollmentRequest request_proto; 374 cryptauth::FinishEnrollmentRequest request_proto;
375 request_proto.set_enrollment_session_id(kEnrollmentSessionId); 375 request_proto.set_enrollment_session_id(kEnrollmentSessionId);
(...skipping 12 matching lines...) Expand all
388 EXPECT_EQ(kDeviceEphemeralKey, expected_request.device_ephemeral_key()); 388 EXPECT_EQ(kDeviceEphemeralKey, expected_request.device_ephemeral_key());
389 389
390 { 390 {
391 cryptauth::FinishEnrollmentResponse response_proto; 391 cryptauth::FinishEnrollmentResponse response_proto;
392 response_proto.set_status("OK"); 392 response_proto.set_status("OK");
393 FinishApiCallFlow(&response_proto); 393 FinishApiCallFlow(&response_proto);
394 } 394 }
395 EXPECT_EQ("OK", result_proto.status()); 395 EXPECT_EQ("OK", result_proto.status());
396 } 396 }
397 397
398 TEST_F(ProximityAuthCryptAuthClientTest, FetchAccessTokenFailure) { 398 TEST_F(CryptAuthClientTest, FetchAccessTokenFailure) {
399 access_token_fetcher_->set_access_token(""); 399 access_token_fetcher_->set_access_token("");
400 400
401 std::string error_message; 401 std::string error_message;
402 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(), 402 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(),
403 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>), 403 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>),
404 base::Bind(&SaveResult<std::string>, &error_message)); 404 base::Bind(&SaveResult<std::string>, &error_message));
405 405
406 EXPECT_EQ("Failed to get a valid access token.", error_message); 406 EXPECT_EQ("Failed to get a valid access token.", error_message);
407 } 407 }
408 408
409 TEST_F(ProximityAuthCryptAuthClientTest, ParseResponseProtoFailure) { 409 TEST_F(CryptAuthClientTest, ParseResponseProtoFailure) {
410 ExpectRequest( 410 ExpectRequest(
411 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 411 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
412 "getmydevices?alt=proto"); 412 "getmydevices?alt=proto");
413 413
414 std::string error_message; 414 std::string error_message;
415 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(), 415 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(),
416 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>), 416 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>),
417 base::Bind(&SaveResult<std::string>, &error_message)); 417 base::Bind(&SaveResult<std::string>, &error_message));
418 418
419 flow_result_callback_.Run("Not a valid serialized response message."); 419 flow_result_callback_.Run("Not a valid serialized response message.");
420 EXPECT_EQ("Failed to parse response proto.", error_message); 420 EXPECT_EQ("Failed to parse response proto.", error_message);
421 } 421 }
422 422
423 TEST_F(ProximityAuthCryptAuthClientTest, 423 TEST_F(CryptAuthClientTest,
424 MakeSecondRequestBeforeFirstRequestSucceeds) { 424 MakeSecondRequestBeforeFirstRequestSucceeds) {
425 ExpectRequest( 425 ExpectRequest(
426 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 426 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
427 "getmydevices?alt=proto"); 427 "getmydevices?alt=proto");
428 428
429 // Make first request. 429 // Make first request.
430 cryptauth::GetMyDevicesResponse result_proto; 430 cryptauth::GetMyDevicesResponse result_proto;
431 client_->GetMyDevices( 431 client_->GetMyDevices(
432 cryptauth::GetMyDevicesRequest(), 432 cryptauth::GetMyDevicesRequest(),
433 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto), 433 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto),
(...skipping 15 matching lines...) Expand all
449 cryptauth::GetMyDevicesResponse response_proto; 449 cryptauth::GetMyDevicesResponse response_proto;
450 response_proto.add_devices(); 450 response_proto.add_devices();
451 response_proto.mutable_devices(0)->set_public_key(kPublicKey1); 451 response_proto.mutable_devices(0)->set_public_key(kPublicKey1);
452 FinishApiCallFlow(&response_proto); 452 FinishApiCallFlow(&response_proto);
453 } 453 }
454 454
455 ASSERT_EQ(1, result_proto.devices_size()); 455 ASSERT_EQ(1, result_proto.devices_size());
456 EXPECT_EQ(kPublicKey1, result_proto.devices(0).public_key()); 456 EXPECT_EQ(kPublicKey1, result_proto.devices(0).public_key());
457 } 457 }
458 458
459 TEST_F(ProximityAuthCryptAuthClientTest, 459 TEST_F(CryptAuthClientTest,
460 MakeSecondRequestBeforeFirstRequestFails) { 460 MakeSecondRequestBeforeFirstRequestFails) {
461 ExpectRequest( 461 ExpectRequest(
462 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 462 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
463 "getmydevices?alt=proto"); 463 "getmydevices?alt=proto");
464 464
465 // Make first request. 465 // Make first request.
466 std::string error_message; 466 std::string error_message;
467 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(), 467 client_->GetMyDevices(cryptauth::GetMyDevicesRequest(),
468 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>), 468 base::Bind(&NotCalled<cryptauth::GetMyDevicesResponse>),
469 base::Bind(&SaveResult<std::string>, &error_message)); 469 base::Bind(&SaveResult<std::string>, &error_message));
470 470
471 // With request pending, make second request. 471 // With request pending, make second request.
472 { 472 {
473 std::string error_message; 473 std::string error_message;
474 client_->FindEligibleUnlockDevices( 474 client_->FindEligibleUnlockDevices(
475 cryptauth::FindEligibleUnlockDevicesRequest(), 475 cryptauth::FindEligibleUnlockDevicesRequest(),
476 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>), 476 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>),
477 base::Bind(&SaveResult<std::string>, &error_message)); 477 base::Bind(&SaveResult<std::string>, &error_message));
478 EXPECT_EQ("Client has been used for another request. Do not reuse.", 478 EXPECT_EQ("Client has been used for another request. Do not reuse.",
479 error_message); 479 error_message);
480 } 480 }
481 481
482 // Fail first request. 482 // Fail first request.
483 std::string kStatus429Error = "HTTP status: 429"; 483 std::string kStatus429Error = "HTTP status: 429";
484 FailApiCallFlow(kStatus429Error); 484 FailApiCallFlow(kStatus429Error);
485 EXPECT_EQ(kStatus429Error, error_message); 485 EXPECT_EQ(kStatus429Error, error_message);
486 } 486 }
487 487
488 TEST_F(ProximityAuthCryptAuthClientTest, 488 TEST_F(CryptAuthClientTest,
489 MakeSecondRequestAfterFirstRequestSucceeds) { 489 MakeSecondRequestAfterFirstRequestSucceeds) {
490 // Make first request successfully. 490 // Make first request successfully.
491 { 491 {
492 ExpectRequest( 492 ExpectRequest(
493 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 493 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
494 "getmydevices?alt=proto"); 494 "getmydevices?alt=proto");
495 cryptauth::GetMyDevicesResponse result_proto; 495 cryptauth::GetMyDevicesResponse result_proto;
496 client_->GetMyDevices( 496 client_->GetMyDevices(
497 cryptauth::GetMyDevicesRequest(), 497 cryptauth::GetMyDevicesRequest(),
498 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto), 498 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto),
(...skipping 12 matching lines...) Expand all
511 std::string error_message; 511 std::string error_message;
512 client_->FindEligibleUnlockDevices( 512 client_->FindEligibleUnlockDevices(
513 cryptauth::FindEligibleUnlockDevicesRequest(), 513 cryptauth::FindEligibleUnlockDevicesRequest(),
514 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>), 514 base::Bind(&NotCalled<cryptauth::FindEligibleUnlockDevicesResponse>),
515 base::Bind(&SaveResult<std::string>, &error_message)); 515 base::Bind(&SaveResult<std::string>, &error_message));
516 EXPECT_EQ("Client has been used for another request. Do not reuse.", 516 EXPECT_EQ("Client has been used for another request. Do not reuse.",
517 error_message); 517 error_message);
518 } 518 }
519 } 519 }
520 520
521 TEST_F(ProximityAuthCryptAuthClientTest, DeviceClassifierIsSet) { 521 TEST_F(CryptAuthClientTest, DeviceClassifierIsSet) {
522 ExpectRequest( 522 ExpectRequest(
523 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 523 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
524 "getmydevices?alt=proto"); 524 "getmydevices?alt=proto");
525 525
526 cryptauth::GetMyDevicesResponse result_proto; 526 cryptauth::GetMyDevicesResponse result_proto;
527 cryptauth::GetMyDevicesRequest request_proto; 527 cryptauth::GetMyDevicesRequest request_proto;
528 request_proto.set_allow_stale_read(true); 528 request_proto.set_allow_stale_read(true);
529 client_->GetMyDevices( 529 client_->GetMyDevices(
530 request_proto, 530 request_proto,
531 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto), 531 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto),
532 base::Bind(&NotCalled<std::string>)); 532 base::Bind(&NotCalled<std::string>));
533 cryptauth::GetMyDevicesRequest expected_request; 533 cryptauth::GetMyDevicesRequest expected_request;
534 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_)); 534 EXPECT_TRUE(expected_request.ParseFromString(serialized_request_));
535 535
536 const cryptauth::DeviceClassifier& device_classifier = 536 const cryptauth::DeviceClassifier& device_classifier =
537 expected_request.device_classifier(); 537 expected_request.device_classifier();
538 EXPECT_EQ(kDeviceOsVersionCode, device_classifier.device_os_version_code()); 538 EXPECT_EQ(kDeviceOsVersionCode, device_classifier.device_os_version_code());
539 EXPECT_EQ(kDeviceSoftwareVersionCode, 539 EXPECT_EQ(kDeviceSoftwareVersionCode,
540 device_classifier.device_software_version_code()); 540 device_classifier.device_software_version_code());
541 EXPECT_EQ(kDeviceSoftwarePackage, 541 EXPECT_EQ(kDeviceSoftwarePackage,
542 device_classifier.device_software_package()); 542 device_classifier.device_software_package());
543 EXPECT_EQ(kDeviceType, device_classifier.device_type()); 543 EXPECT_EQ(kDeviceType, device_classifier.device_type());
544 } 544 }
545 545
546 TEST_F(ProximityAuthCryptAuthClientTest, GetAccessTokenUsed) { 546 TEST_F(CryptAuthClientTest, GetAccessTokenUsed) {
547 EXPECT_TRUE(client_->GetAccessTokenUsed().empty()); 547 EXPECT_TRUE(client_->GetAccessTokenUsed().empty());
548 ExpectRequest( 548 ExpectRequest(
549 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/" 549 "https://www.testgoogleapis.com/cryptauth/v1/deviceSync/"
550 "getmydevices?alt=proto"); 550 "getmydevices?alt=proto");
551 551
552 cryptauth::GetMyDevicesResponse result_proto; 552 cryptauth::GetMyDevicesResponse result_proto;
553 cryptauth::GetMyDevicesRequest request_proto; 553 cryptauth::GetMyDevicesRequest request_proto;
554 request_proto.set_allow_stale_read(true); 554 request_proto.set_allow_stale_read(true);
555 client_->GetMyDevices( 555 client_->GetMyDevices(
556 request_proto, 556 request_proto,
557 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto), 557 base::Bind(&SaveResult<cryptauth::GetMyDevicesResponse>, &result_proto),
558 base::Bind(&NotCalled<std::string>)); 558 base::Bind(&NotCalled<std::string>));
559 EXPECT_EQ(kAccessToken, client_->GetAccessTokenUsed()); 559 EXPECT_EQ(kAccessToken, client_->GetAccessTokenUsed());
560 } 560 }
561 561
562 } // namespace proximity_auth 562 } // namespace cryptauth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698