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

Side by Side Diff: chrome/browser/signin/signin_manager_unittest.cc

Issue 23245003: Remove SigninManager::StartSignIn() since /ClientLogin is no longer used. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Undo changes to GaiaAuthFetcher Created 7 years, 3 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 | « chrome/browser/signin/signin_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/signin/signin_manager.h" 5 #include "chrome/browser/signin/signin_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 202
203 net::TestURLFetcherFactory factory_; 203 net::TestURLFetcherFactory factory_;
204 scoped_ptr<SigninManager> manager_; 204 scoped_ptr<SigninManager> manager_;
205 content::TestNotificationTracker google_login_success_; 205 content::TestNotificationTracker google_login_success_;
206 content::TestNotificationTracker google_login_failure_; 206 content::TestNotificationTracker google_login_failure_;
207 std::vector<std::string> oauth_tokens_fetched_; 207 std::vector<std::string> oauth_tokens_fetched_;
208 scoped_ptr<TestingPrefServiceSimple> prefs_; 208 scoped_ptr<TestingPrefServiceSimple> prefs_;
209 std::vector<std::string> cookies_; 209 std::vector<std::string> cookies_;
210 }; 210 };
211 211
212 // NOTE: ClientLogin's "StartSignin" is called after collecting credentials
213 // from the user.
214 TEST_F(SigninManagerTest, SignInClientLogin) {
215 manager_->Initialize(profile(), NULL);
216 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
217
218 manager_->StartSignIn(
219 "user@gmail.com", "password", std::string(), std::string());
220 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
221
222 SimulateValidResponseClientLogin(true);
223 EXPECT_FALSE(manager_->GetAuthenticatedUsername().empty());
224
225 // Should go into token service and stop.
226 EXPECT_EQ(1U, google_login_success_.size());
227 EXPECT_EQ(0U, google_login_failure_.size());
228
229 service()->OnIssueAuthTokenSuccess(
230 GaiaConstants::kGaiaOAuth2LoginRefreshToken,
231 "oauth2Token");
232 SimulateValidUberToken();
233 // Check that the login cookie has been sent.
234 ASSERT_NE(std::find(cookies_.begin(), cookies_.end(), "checkCookie = true"),
235 cookies_.end());
236
237 // Should persist across resets.
238 manager_->Shutdown();
239 manager_.reset(new SigninManager(
240 scoped_ptr<SigninManagerDelegate>(
241 new ChromeSigninManagerDelegate(profile()))));
242 manager_->Initialize(profile(), NULL);
243 EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
244 }
245
246 TEST_F(SigninManagerTest, SignInWithCredentials) { 212 TEST_F(SigninManagerTest, SignInWithCredentials) {
247 manager_->Initialize(profile(), NULL); 213 manager_->Initialize(profile(), NULL);
248 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty()); 214 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
249 215
250 manager_->StartSignInWithCredentials( 216 manager_->StartSignInWithCredentials(
251 "0", 217 "0",
252 "user@gmail.com", 218 "user@gmail.com",
253 "password", 219 "password",
254 SigninManager::OAuthTokenFetchedCallback()); 220 SigninManager::OAuthTokenFetchedCallback());
255 221
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 "user@gmail.com", 355 "user@gmail.com",
390 "password", 356 "password",
391 callback); 357 callback);
392 358
393 // Signin should fail since it would be cancelled by the callback. 359 // Signin should fail since it would be cancelled by the callback.
394 ExpectSignInWithCredentialsFail(true); 360 ExpectSignInWithCredentialsFail(true);
395 ASSERT_EQ(1U, oauth_tokens_fetched_.size()); 361 ASSERT_EQ(1U, oauth_tokens_fetched_.size());
396 EXPECT_EQ(oauth_tokens_fetched_[0], "rt1"); 362 EXPECT_EQ(oauth_tokens_fetched_[0], "rt1");
397 } 363 }
398 364
399 TEST_F(SigninManagerTest, SignInClientLoginNoGPlus) { 365 TEST_F(SigninManagerTest, SignOut) {
400 manager_->Initialize(profile(), NULL); 366 manager_->Initialize(profile(), NULL);
401 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty()); 367 SigninManager::OAuthTokenFetchedCallback dummy;
368 manager_->StartSignInWithCredentials("0", "user@gmail.com", "password",
369 dummy);
370 ExpectSignInWithCredentialsSuccess();
402 371
403 manager_->StartSignIn("username", "password", std::string(), std::string());
404 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
405
406 SimulateValidResponseClientLogin(false);
407 EXPECT_FALSE(manager_->GetAuthenticatedUsername().empty());
408 }
409
410 TEST_F(SigninManagerTest, ClearTransientSigninData) {
411 manager_->Initialize(profile(), NULL);
412 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
413
414 manager_->StartSignIn("username", "password", std::string(), std::string());
415 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
416
417 SimulateValidResponseClientLogin(false);
418
419 // Should go into token service and stop.
420 EXPECT_EQ(1U, google_login_success_.size());
421 EXPECT_EQ(0U, google_login_failure_.size());
422
423 EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
424
425 // Now clear the in memory data.
426 manager_->ClearTransientSigninData();
427 EXPECT_TRUE(manager_->last_result_.data.empty());
428 EXPECT_FALSE(manager_->GetAuthenticatedUsername().empty());
429
430 // Ensure preferences are not modified.
431 EXPECT_FALSE(
432 profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername).empty());
433
434 // On reset it should be regenerated.
435 manager_->Shutdown();
436 manager_.reset(new SigninManager(
437 scoped_ptr<SigninManagerDelegate>(
438 new ChromeSigninManagerDelegate(profile()))));
439 manager_->Initialize(profile(), NULL);
440
441 // Now make sure we have the right user name.
442 EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
443 }
444
445 TEST_F(SigninManagerTest, SignOutClientLogin) {
446 manager_->Initialize(profile(), NULL);
447 manager_->StartSignIn("username", "password", std::string(), std::string());
448 SimulateValidResponseClientLogin(false);
449 manager_->OnClientLoginSuccess(credentials());
450
451 EXPECT_EQ("user@gmail.com", manager_->GetAuthenticatedUsername());
452 manager_->SignOut(); 372 manager_->SignOut();
453 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty()); 373 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
454 // Should not be persisted anymore 374 // Should not be persisted anymore
455 manager_->Shutdown(); 375 manager_->Shutdown();
456 manager_.reset(new SigninManager( 376 manager_.reset(new SigninManager(
457 scoped_ptr<SigninManagerDelegate>( 377 scoped_ptr<SigninManagerDelegate>(
458 new ChromeSigninManagerDelegate(profile())))); 378 new ChromeSigninManagerDelegate(profile()))));
459 manager_->Initialize(profile(), NULL); 379 manager_->Initialize(profile(), NULL);
460 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty()); 380 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
461 } 381 }
462 382
463 TEST_F(SigninManagerTest, SignInFailureClientLogin) {
464 manager_->Initialize(profile(), NULL);
465 manager_->StartSignIn("username", "password", std::string(), std::string());
466 GoogleServiceAuthError error(GoogleServiceAuthError::REQUEST_CANCELED);
467 manager_->OnClientLoginFailure(error);
468
469 EXPECT_EQ(0U, google_login_success_.size());
470 EXPECT_EQ(1U, google_login_failure_.size());
471
472 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
473
474 // Should not be persisted
475 manager_->Shutdown();
476 manager_.reset(new SigninManager(
477 scoped_ptr<SigninManagerDelegate>(
478 new ChromeSigninManagerDelegate(profile()))));
479 manager_->Initialize(profile(), NULL);
480 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
481 }
482
483 TEST_F(SigninManagerTest, ProvideSecondFactorSuccess) {
484 manager_->Initialize(profile(), NULL);
485 manager_->StartSignIn("username", "password", std::string(), std::string());
486 GoogleServiceAuthError error(GoogleServiceAuthError::TWO_FACTOR);
487 manager_->OnClientLoginFailure(error);
488
489 EXPECT_EQ(0U, google_login_success_.size());
490 EXPECT_EQ(1U, google_login_failure_.size());
491
492 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
493 EXPECT_FALSE(manager_->possibly_invalid_username_.empty());
494
495 manager_->ProvideSecondFactorAccessCode("access");
496 SimulateValidResponseClientLogin(false);
497
498 EXPECT_EQ(1U, google_login_success_.size());
499 EXPECT_EQ(1U, google_login_failure_.size());
500 }
501
502 TEST_F(SigninManagerTest, ProvideSecondFactorFailure) {
503 manager_->Initialize(profile(), NULL);
504 manager_->StartSignIn("username", "password", std::string(), std::string());
505 GoogleServiceAuthError error1(GoogleServiceAuthError::TWO_FACTOR);
506 manager_->OnClientLoginFailure(error1);
507
508 EXPECT_EQ(0U, google_login_success_.size());
509 EXPECT_EQ(1U, google_login_failure_.size());
510
511 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
512 EXPECT_FALSE(manager_->possibly_invalid_username_.empty());
513
514 manager_->ProvideSecondFactorAccessCode("badaccess");
515 GoogleServiceAuthError error2(
516 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
517 manager_->OnClientLoginFailure(error2);
518
519 EXPECT_EQ(0U, google_login_success_.size());
520 EXPECT_EQ(2U, google_login_failure_.size());
521 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
522
523 manager_->ProvideSecondFactorAccessCode("badaccess");
524 GoogleServiceAuthError error3(GoogleServiceAuthError::CONNECTION_FAILED);
525 manager_->OnClientLoginFailure(error3);
526
527 EXPECT_EQ(0U, google_login_success_.size());
528 EXPECT_EQ(3U, google_login_failure_.size());
529 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
530 }
531
532 TEST_F(SigninManagerTest, SignOutMidConnect) { 383 TEST_F(SigninManagerTest, SignOutMidConnect) {
533 manager_->Initialize(profile(), NULL); 384 manager_->Initialize(profile(), NULL);
534 manager_->StartSignIn("username", "password", std::string(), std::string()); 385 SigninManager::OAuthTokenFetchedCallback dummy;
535 EXPECT_EQ("username", manager_->GetUsernameForAuthInProgress()); 386 manager_->StartSignInWithCredentials("0", "user@gmail.com", "password",
387 dummy);
388
536 manager_->SignOut(); 389 manager_->SignOut();
537 EXPECT_EQ(0U, google_login_success_.size()); 390 EXPECT_EQ(0U, google_login_success_.size());
538 EXPECT_EQ(1U, google_login_failure_.size()); 391 EXPECT_EQ(1U, google_login_failure_.size());
539 392
540 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty()); 393 EXPECT_TRUE(manager_->GetAuthenticatedUsername().empty());
541 EXPECT_TRUE(manager_->GetUsernameForAuthInProgress().empty()); 394 EXPECT_TRUE(manager_->GetUsernameForAuthInProgress().empty());
542 } 395 }
543 396
544 TEST_F(SigninManagerTest, SignOutWhileProhibited) { 397 TEST_F(SigninManagerTest, SignOutWhileProhibited) {
545 manager_->Initialize(profile(), NULL); 398 manager_->Initialize(profile(), NULL);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 EXPECT_EQ("", manager_->GetAuthenticatedUsername()); 476 EXPECT_EQ("", manager_->GetAuthenticatedUsername());
624 EXPECT_EQ(0u, google_login_success_.size()); 477 EXPECT_EQ(0u, google_login_success_.size());
625 478
626 manager_->OnExternalSigninCompleted("external@example.com"); 479 manager_->OnExternalSigninCompleted("external@example.com");
627 EXPECT_EQ(1u, google_login_success_.size()); 480 EXPECT_EQ(1u, google_login_success_.size());
628 EXPECT_EQ(0u, google_login_failure_.size()); 481 EXPECT_EQ(0u, google_login_failure_.size());
629 EXPECT_EQ("external@example.com", 482 EXPECT_EQ("external@example.com",
630 profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername)); 483 profile()->GetPrefs()->GetString(prefs::kGoogleServicesUsername));
631 EXPECT_EQ("external@example.com", manager_->GetAuthenticatedUsername()); 484 EXPECT_EQ("external@example.com", manager_->GetAuthenticatedUsername());
632 } 485 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/signin_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698