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

Side by Side Diff: chrome/browser/chromeos/settings/device_oauth2_token_service_unittest.cc

Issue 1870793002: Convert //chrome/browser/chromeos from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/chromeos/settings/device_oauth2_token_service.h" 5 #include "chrome/browser/chromeos/settings/device_oauth2_token_service.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 } 84 }
85 85
86 void SetRobotAccountId(const std::string& account_id) { 86 void SetRobotAccountId(const std::string& account_id) {
87 device_policy_.policy_data().set_service_account_identity(account_id); 87 device_policy_.policy_data().set_service_account_identity(account_id);
88 device_policy_.Build(); 88 device_policy_.Build();
89 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob()); 89 device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
90 DeviceSettingsService::Get()->Load(); 90 DeviceSettingsService::Get()->Load();
91 device_settings_test_helper_.Flush(); 91 device_settings_test_helper_.Flush();
92 } 92 }
93 93
94 scoped_ptr<OAuth2TokenService::Request> StartTokenRequest() { 94 std::unique_ptr<OAuth2TokenService::Request> StartTokenRequest() {
95 return oauth2_service_->StartRequest(oauth2_service_->GetRobotAccountId(), 95 return oauth2_service_->StartRequest(oauth2_service_->GetRobotAccountId(),
96 std::set<std::string>(), 96 std::set<std::string>(),
97 &consumer_); 97 &consumer_);
98 } 98 }
99 99
100 void SetUp() override { 100 void SetUp() override {
101 fake_cryptohome_client_ = new FakeCryptohomeClient; 101 fake_cryptohome_client_ = new FakeCryptohomeClient;
102 fake_cryptohome_client_->SetServiceIsAvailable(true); 102 fake_cryptohome_client_->SetServiceIsAvailable(true);
103 fake_cryptohome_client_->set_system_salt( 103 fake_cryptohome_client_->set_system_salt(
104 FakeCryptohomeClient::GetStubSystemSalt()); 104 FakeCryptohomeClient::GetStubSystemSalt());
105 chromeos::DBusThreadManager::GetSetterForTesting()->SetCryptohomeClient( 105 chromeos::DBusThreadManager::GetSetterForTesting()->SetCryptohomeClient(
106 scoped_ptr<CryptohomeClient>(fake_cryptohome_client_)); 106 std::unique_ptr<CryptohomeClient>(fake_cryptohome_client_));
107 107
108 SystemSaltGetter::Initialize(); 108 SystemSaltGetter::Initialize();
109 109
110 DeviceSettingsService::Initialize(); 110 DeviceSettingsService::Initialize();
111 scoped_refptr<ownership::MockOwnerKeyUtil> owner_key_util_( 111 scoped_refptr<ownership::MockOwnerKeyUtil> owner_key_util_(
112 new ownership::MockOwnerKeyUtil()); 112 new ownership::MockOwnerKeyUtil());
113 owner_key_util_->SetPublicKeyFromPrivateKey( 113 owner_key_util_->SetPublicKeyFromPrivateKey(
114 *device_policy_.GetSigningKey()); 114 *device_policy_.GetSigningKey());
115 DeviceSettingsService::Get()->SetSessionManager( 115 DeviceSettingsService::Get()->SetSessionManager(
116 &device_settings_test_helper_, owner_key_util_); 116 &device_settings_test_helper_, owner_key_util_);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } 204 }
205 }; 205 };
206 206
207 base::MessageLoop message_loop_; 207 base::MessageLoop message_loop_;
208 ScopedTestingLocalState scoped_testing_local_state_; 208 ScopedTestingLocalState scoped_testing_local_state_;
209 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; 209 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
210 net::TestURLFetcherFactory factory_; 210 net::TestURLFetcherFactory factory_;
211 FakeCryptohomeClient* fake_cryptohome_client_; 211 FakeCryptohomeClient* fake_cryptohome_client_;
212 DeviceSettingsTestHelper device_settings_test_helper_; 212 DeviceSettingsTestHelper device_settings_test_helper_;
213 policy::DevicePolicyBuilder device_policy_; 213 policy::DevicePolicyBuilder device_policy_;
214 scoped_ptr<DeviceOAuth2TokenService, TokenServiceDeleter> oauth2_service_; 214 std::unique_ptr<DeviceOAuth2TokenService, TokenServiceDeleter>
215 oauth2_service_;
215 TestingOAuth2TokenServiceConsumer consumer_; 216 TestingOAuth2TokenServiceConsumer consumer_;
216 }; 217 };
217 218
218 void DeviceOAuth2TokenServiceTest::ReturnOAuthUrlFetchResults( 219 void DeviceOAuth2TokenServiceTest::ReturnOAuthUrlFetchResults(
219 int fetcher_id, 220 int fetcher_id,
220 net::HttpStatusCode response_code, 221 net::HttpStatusCode response_code,
221 const std::string& response_string) { 222 const std::string& response_string) {
222 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(fetcher_id); 223 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(fetcher_id);
223 if (fetcher) { 224 if (fetcher) {
224 factory_.RemoveFetcherFromMap(fetcher_id); 225 factory_.RemoveFetcherFromMap(fetcher_id);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 EXPECT_EQ("test-token", GetRefreshToken()); 293 EXPECT_EQ("test-token", GetRefreshToken());
293 294
294 // Reloading shouldn't change the token either. 295 // Reloading shouldn't change the token either.
295 CreateService(); 296 CreateService();
296 base::RunLoop().RunUntilIdle(); 297 base::RunLoop().RunUntilIdle();
297 EXPECT_EQ("test-token", GetRefreshToken()); 298 EXPECT_EQ("test-token", GetRefreshToken());
298 } 299 }
299 300
300 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Success) { 301 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Success) {
301 SetUpDefaultValues(); 302 SetUpDefaultValues();
302 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 303 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
303 304
304 PerformURLFetches(); 305 PerformURLFetches();
305 AssertConsumerTokensAndErrors(1, 0); 306 AssertConsumerTokensAndErrors(1, 0);
306 307
307 EXPECT_EQ("scoped_access_token", consumer_.last_token_); 308 EXPECT_EQ("scoped_access_token", consumer_.last_token_);
308 } 309 }
309 310
310 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_SuccessAsyncLoad) { 311 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_SuccessAsyncLoad) {
311 SetUpWithPendingSalt(); 312 SetUpWithPendingSalt();
312 313
313 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 314 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
314 PerformURLFetches(); 315 PerformURLFetches();
315 AssertConsumerTokensAndErrors(0, 0); 316 AssertConsumerTokensAndErrors(0, 0);
316 317
317 fake_cryptohome_client_->set_system_salt( 318 fake_cryptohome_client_->set_system_salt(
318 FakeCryptohomeClient::GetStubSystemSalt()); 319 FakeCryptohomeClient::GetStubSystemSalt());
319 fake_cryptohome_client_->SetServiceIsAvailable(true); 320 fake_cryptohome_client_->SetServiceIsAvailable(true);
320 base::RunLoop().RunUntilIdle(); 321 base::RunLoop().RunUntilIdle();
321 322
322 PerformURLFetches(); 323 PerformURLFetches();
323 AssertConsumerTokensAndErrors(1, 0); 324 AssertConsumerTokensAndErrors(1, 0);
324 325
325 EXPECT_EQ("scoped_access_token", consumer_.last_token_); 326 EXPECT_EQ("scoped_access_token", consumer_.last_token_);
326 } 327 }
327 328
328 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Cancel) { 329 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Cancel) {
329 SetUpDefaultValues(); 330 SetUpDefaultValues();
330 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 331 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
331 request.reset(); 332 request.reset();
332 333
333 PerformURLFetches(); 334 PerformURLFetches();
334 335
335 // Test succeeds if this line is reached without a crash. 336 // Test succeeds if this line is reached without a crash.
336 } 337 }
337 338
338 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_NoSalt) { 339 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_NoSalt) {
339 fake_cryptohome_client_->set_system_salt(std::vector<uint8_t>()); 340 fake_cryptohome_client_->set_system_salt(std::vector<uint8_t>());
340 fake_cryptohome_client_->SetServiceIsAvailable(true); 341 fake_cryptohome_client_->SetServiceIsAvailable(true);
341 SetUpDefaultValues(); 342 SetUpDefaultValues();
342 343
343 EXPECT_FALSE(RefreshTokenIsAvailable()); 344 EXPECT_FALSE(RefreshTokenIsAvailable());
344 345
345 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 346 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
346 base::RunLoop().RunUntilIdle(); 347 base::RunLoop().RunUntilIdle();
347 348
348 AssertConsumerTokensAndErrors(0, 1); 349 AssertConsumerTokensAndErrors(0, 1);
349 } 350 }
350 351
351 TEST_F(DeviceOAuth2TokenServiceTest, 352 TEST_F(DeviceOAuth2TokenServiceTest,
352 RefreshTokenValidation_Failure_TokenInfoAccessTokenHttpError) { 353 RefreshTokenValidation_Failure_TokenInfoAccessTokenHttpError) {
353 SetUpDefaultValues(); 354 SetUpDefaultValues();
354 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 355 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
355 356
356 PerformURLFetchesWithResults( 357 PerformURLFetchesWithResults(
357 net::HTTP_UNAUTHORIZED, "", 358 net::HTTP_UNAUTHORIZED, "",
358 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 359 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
359 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 360 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
360 361
361 AssertConsumerTokensAndErrors(0, 1); 362 AssertConsumerTokensAndErrors(0, 1);
362 } 363 }
363 364
364 TEST_F(DeviceOAuth2TokenServiceTest, 365 TEST_F(DeviceOAuth2TokenServiceTest,
365 RefreshTokenValidation_Failure_TokenInfoAccessTokenInvalidResponse) { 366 RefreshTokenValidation_Failure_TokenInfoAccessTokenInvalidResponse) {
366 SetUpDefaultValues(); 367 SetUpDefaultValues();
367 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 368 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
368 369
369 PerformURLFetchesWithResults( 370 PerformURLFetchesWithResults(
370 net::HTTP_OK, "invalid response", 371 net::HTTP_OK, "invalid response",
371 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 372 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
372 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 373 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
373 374
374 AssertConsumerTokensAndErrors(0, 1); 375 AssertConsumerTokensAndErrors(0, 1);
375 } 376 }
376 377
377 TEST_F(DeviceOAuth2TokenServiceTest, 378 TEST_F(DeviceOAuth2TokenServiceTest,
378 RefreshTokenValidation_Failure_TokenInfoApiCallHttpError) { 379 RefreshTokenValidation_Failure_TokenInfoApiCallHttpError) {
379 SetUpDefaultValues(); 380 SetUpDefaultValues();
380 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 381 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
381 382
382 PerformURLFetchesWithResults( 383 PerformURLFetchesWithResults(
383 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600), 384 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600),
384 net::HTTP_INTERNAL_SERVER_ERROR, "", 385 net::HTTP_INTERNAL_SERVER_ERROR, "",
385 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 386 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
386 387
387 AssertConsumerTokensAndErrors(0, 1); 388 AssertConsumerTokensAndErrors(0, 1);
388 } 389 }
389 390
390 TEST_F(DeviceOAuth2TokenServiceTest, 391 TEST_F(DeviceOAuth2TokenServiceTest,
391 RefreshTokenValidation_Failure_TokenInfoApiCallInvalidResponse) { 392 RefreshTokenValidation_Failure_TokenInfoApiCallInvalidResponse) {
392 SetUpDefaultValues(); 393 SetUpDefaultValues();
393 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 394 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
394 395
395 PerformURLFetchesWithResults( 396 PerformURLFetchesWithResults(
396 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600), 397 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600),
397 net::HTTP_OK, "invalid response", 398 net::HTTP_OK, "invalid response",
398 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 399 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
399 400
400 AssertConsumerTokensAndErrors(0, 1); 401 AssertConsumerTokensAndErrors(0, 1);
401 } 402 }
402 403
403 TEST_F(DeviceOAuth2TokenServiceTest, 404 TEST_F(DeviceOAuth2TokenServiceTest,
404 RefreshTokenValidation_Failure_CloudPrintAccessTokenHttpError) { 405 RefreshTokenValidation_Failure_CloudPrintAccessTokenHttpError) {
405 SetUpDefaultValues(); 406 SetUpDefaultValues();
406 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 407 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
407 408
408 PerformURLFetchesWithResults( 409 PerformURLFetchesWithResults(
409 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600), 410 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600),
410 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 411 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
411 net::HTTP_BAD_REQUEST, ""); 412 net::HTTP_BAD_REQUEST, "");
412 413
413 AssertConsumerTokensAndErrors(0, 1); 414 AssertConsumerTokensAndErrors(0, 1);
414 } 415 }
415 416
416 TEST_F(DeviceOAuth2TokenServiceTest, 417 TEST_F(DeviceOAuth2TokenServiceTest,
417 RefreshTokenValidation_Failure_CloudPrintAccessTokenInvalidResponse) { 418 RefreshTokenValidation_Failure_CloudPrintAccessTokenInvalidResponse) {
418 SetUpDefaultValues(); 419 SetUpDefaultValues();
419 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 420 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
420 421
421 PerformURLFetchesWithResults( 422 PerformURLFetchesWithResults(
422 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600), 423 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600),
423 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 424 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
424 net::HTTP_OK, "invalid request"); 425 net::HTTP_OK, "invalid request");
425 426
426 AssertConsumerTokensAndErrors(0, 1); 427 AssertConsumerTokensAndErrors(0, 1);
427 } 428 }
428 429
429 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Failure_BadOwner) { 430 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Failure_BadOwner) {
430 SetUpDefaultValues(); 431 SetUpDefaultValues();
431 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 432 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
432 433
433 SetRobotAccountId("WRONG_service_acct@g.com"); 434 SetRobotAccountId("WRONG_service_acct@g.com");
434 435
435 PerformURLFetchesWithResults( 436 PerformURLFetchesWithResults(
436 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600), 437 net::HTTP_OK, GetValidTokenResponse("tokeninfo_access_token", 3600),
437 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 438 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
438 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 439 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
439 440
440 AssertConsumerTokensAndErrors(0, 1); 441 AssertConsumerTokensAndErrors(0, 1);
441 } 442 }
442 443
443 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Retry) { 444 TEST_F(DeviceOAuth2TokenServiceTest, RefreshTokenValidation_Retry) {
444 SetUpDefaultValues(); 445 SetUpDefaultValues();
445 scoped_ptr<OAuth2TokenService::Request> request = StartTokenRequest(); 446 std::unique_ptr<OAuth2TokenService::Request> request = StartTokenRequest();
446 447
447 PerformURLFetchesWithResults( 448 PerformURLFetchesWithResults(
448 net::HTTP_INTERNAL_SERVER_ERROR, "", 449 net::HTTP_INTERNAL_SERVER_ERROR, "",
449 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"), 450 net::HTTP_OK, GetValidTokenInfoResponse("service_acct@g.com"),
450 net::HTTP_OK, GetValidTokenResponse("ignored", 3600)); 451 net::HTTP_OK, GetValidTokenResponse("ignored", 3600));
451 452
452 AssertConsumerTokensAndErrors(0, 1); 453 AssertConsumerTokensAndErrors(0, 1);
453 454
454 // Retry should succeed. 455 // Retry should succeed.
455 request = StartTokenRequest(); 456 request = StartTokenRequest();
(...skipping 16 matching lines...) Expand all
472 // Also make the robot account ID available. Verify that the token is 473 // Also make the robot account ID available. Verify that the token is
473 // announced now. 474 // announced now.
474 EXPECT_CALL(observer, OnRefreshTokenAvailable("robot@example.com")); 475 EXPECT_CALL(observer, OnRefreshTokenAvailable("robot@example.com"));
475 SetRobotAccountId("robot@example.com"); 476 SetRobotAccountId("robot@example.com");
476 testing::Mock::VerifyAndClearExpectations(&observer); 477 testing::Mock::VerifyAndClearExpectations(&observer);
477 478
478 oauth2_service_->RemoveObserver(&observer); 479 oauth2_service_->RemoveObserver(&observer);
479 } 480 }
480 481
481 } // namespace chromeos 482 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698