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

Side by Side Diff: chrome/browser/chromeos/login/google_authenticator_unittest.cc

Issue 7524033: Add a scoper object for URLFetcher::Factory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 4 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/login/google_authenticator.h" 5 #include "chrome/browser/chromeos/login/google_authenticator.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 .WillOnce(Return(true)) 551 .WillOnce(Return(true))
552 .RetiresOnSaturation(); 552 .RetiresOnSaturation();
553 553
554 EXPECT_CALL(*mock_library_, GetSystemSalt()) 554 EXPECT_CALL(*mock_library_, GetSystemSalt())
555 .WillOnce(Return(salt_v)) 555 .WillOnce(Return(salt_v))
556 .RetiresOnSaturation(); 556 .RetiresOnSaturation();
557 557
558 TestingProfile profile; 558 TestingProfile profile;
559 559
560 MockFactory<MockFetcher> factory; 560 MockFactory<MockFetcher> factory;
561 URLFetcher::set_factory(&factory);
562 561
563 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); 562 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer));
564 EXPECT_CALL(*user_manager_.get(), IsKnownUser(username_)) 563 EXPECT_CALL(*user_manager_.get(), IsKnownUser(username_))
565 .WillOnce(Return(true)) 564 .WillOnce(Return(true))
566 .RetiresOnSaturation(); 565 .RetiresOnSaturation();
567 auth->set_user_manager(user_manager_.get()); 566 auth->set_user_manager(user_manager_.get());
568 auth->AuthenticateToLogin( 567 auth->AuthenticateToLogin(
569 &profile, username_, password_, std::string(), std::string()); 568 &profile, username_, password_, std::string(), std::string());
570 569
571 URLFetcher::set_factory(NULL);
572 message_loop_ui_.RunAllPending(); 570 message_loop_ui_.RunAllPending();
573 } 571 }
574 572
575 TEST_F(GoogleAuthenticatorTest, FullHostedLoginFailure) { 573 TEST_F(GoogleAuthenticatorTest, FullHostedLoginFailure) {
576 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_)); 574 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_));
577 575
578 LoginFailure failure_details = 576 LoginFailure failure_details =
579 LoginFailure::FromNetworkAuthFailure( 577 LoginFailure::FromNetworkAuthFailure(
580 GoogleServiceAuthError( 578 GoogleServiceAuthError(
581 GoogleServiceAuthError::HOSTED_NOT_ALLOWED)); 579 GoogleServiceAuthError::HOSTED_NOT_ALLOWED));
582 580
583 MockConsumer consumer; 581 MockConsumer consumer;
584 EXPECT_CALL(consumer, OnLoginFailure(failure_details)) 582 EXPECT_CALL(consumer, OnLoginFailure(failure_details))
585 .WillOnce(Invoke(MockConsumer::OnFailQuit)) 583 .WillOnce(Invoke(MockConsumer::OnFailQuit))
586 .RetiresOnSaturation(); 584 .RetiresOnSaturation();
587 // A failure case, but we still want the test to finish gracefully. 585 // A failure case, but we still want the test to finish gracefully.
588 ON_CALL(consumer, OnLoginSuccess(username_, password_, _, _)) 586 ON_CALL(consumer, OnLoginSuccess(username_, password_, _, _))
589 .WillByDefault(Invoke(MockConsumer::OnSuccessQuitAndFail)); 587 .WillByDefault(Invoke(MockConsumer::OnSuccessQuitAndFail));
590 588
591 EXPECT_CALL(*mock_library_, GetSystemSalt()) 589 EXPECT_CALL(*mock_library_, GetSystemSalt())
592 .WillOnce(Return(salt_v)) 590 .WillOnce(Return(salt_v))
593 .RetiresOnSaturation(); 591 .RetiresOnSaturation();
594 592
595 TestingProfile profile; 593 TestingProfile profile;
596 594
597 MockFactory<HostedFetcher> factory_invalid; 595 MockFactory<HostedFetcher> factory_invalid;
598 URLFetcher::set_factory(&factory_invalid);
599 596
600 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); 597 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer));
601 auth->set_user_manager(user_manager_.get()); 598 auth->set_user_manager(user_manager_.get());
602 EXPECT_CALL(*user_manager_.get(), IsKnownUser(username_)) 599 EXPECT_CALL(*user_manager_.get(), IsKnownUser(username_))
603 .WillOnce(Return(false)) 600 .WillOnce(Return(false))
604 .WillOnce(Return(false)) 601 .WillOnce(Return(false))
605 .RetiresOnSaturation(); 602 .RetiresOnSaturation();
606 auth->AuthenticateToLogin( 603 auth->AuthenticateToLogin(
607 &profile, username_, hash_ascii_, std::string(), std::string()); 604 &profile, username_, hash_ascii_, std::string(), std::string());
608 605
609 // For when |auth| tries to load the localaccount file. 606 // For when |auth| tries to load the localaccount file.
610 BrowserThread file_thread(BrowserThread::FILE); 607 BrowserThread file_thread(BrowserThread::FILE);
611 file_thread.Start(); 608 file_thread.Start();
612 609
613 // Run the UI thread until we exit it gracefully. 610 // Run the UI thread until we exit it gracefully.
614 message_loop_ui_.Run(); 611 message_loop_ui_.Run();
615 URLFetcher::set_factory(NULL);
616 } 612 }
617 613
618 TEST_F(GoogleAuthenticatorTest, CancelLogin) { 614 TEST_F(GoogleAuthenticatorTest, CancelLogin) {
619 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_)); 615 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_));
620 616
621 MockConsumer consumer; 617 MockConsumer consumer;
622 // The expected case. 618 // The expected case.
623 EXPECT_CALL(consumer, OnLoginFailure(_)) 619 EXPECT_CALL(consumer, OnLoginFailure(_))
624 .WillOnce(Invoke(MockConsumer::OnFailQuit)) 620 .WillOnce(Invoke(MockConsumer::OnFailQuit))
625 .RetiresOnSaturation(); 621 .RetiresOnSaturation();
(...skipping 10 matching lines...) Expand all
636 .WillOnce(Return(false)) 632 .WillOnce(Return(false))
637 .RetiresOnSaturation(); 633 .RetiresOnSaturation();
638 634
639 TestingProfile profile; 635 TestingProfile profile;
640 636
641 // This is how we inject fake URLFetcher objects, with a factory. 637 // This is how we inject fake URLFetcher objects, with a factory.
642 // This factory creates fake URLFetchers that Start() a fake fetch attempt 638 // This factory creates fake URLFetchers that Start() a fake fetch attempt
643 // and then come back on the UI thread after a small delay. They expect to 639 // and then come back on the UI thread after a small delay. They expect to
644 // be canceled before they come back, and the test will fail if they are not. 640 // be canceled before they come back, and the test will fail if they are not.
645 MockFactory<ExpectCanceledFetcher> factory; 641 MockFactory<ExpectCanceledFetcher> factory;
646 URLFetcher::set_factory(&factory);
647 642
648 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); 643 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer));
649 // For when |auth| tries to load the localaccount file. 644 // For when |auth| tries to load the localaccount file.
650 BrowserThread file_thread(BrowserThread::FILE); 645 BrowserThread file_thread(BrowserThread::FILE);
651 file_thread.Start(); 646 file_thread.Start();
652 647
653 // Start an authentication attempt, which will kick off a URL "fetch" that 648 // Start an authentication attempt, which will kick off a URL "fetch" that
654 // we expect to cancel before it completes. 649 // we expect to cancel before it completes.
655 auth->AuthenticateToLogin( 650 auth->AuthenticateToLogin(
656 &profile, username_, hash_ascii_, std::string(), std::string()); 651 &profile, username_, hash_ascii_, std::string(), std::string());
657 652
658 // Post a task to cancel the login attempt. 653 // Post a task to cancel the login attempt.
659 CancelLogin(auth.get()); 654 CancelLogin(auth.get());
660 655
661 URLFetcher::set_factory(NULL);
662
663 // Run the UI thread until we exit it gracefully. 656 // Run the UI thread until we exit it gracefully.
664 message_loop_ui_.Run(); 657 message_loop_ui_.Run();
665 } 658 }
666 659
667 TEST_F(GoogleAuthenticatorTest, CancelLoginAlreadyGotLocalaccount) { 660 TEST_F(GoogleAuthenticatorTest, CancelLoginAlreadyGotLocalaccount) {
668 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_)); 661 chromeos::CryptohomeBlob salt_v(fake_hash_, fake_hash_ + sizeof(fake_hash_));
669 662
670 MockConsumer consumer; 663 MockConsumer consumer;
671 // The expected case. 664 // The expected case.
672 EXPECT_CALL(consumer, OnLoginFailure(_)) 665 EXPECT_CALL(consumer, OnLoginFailure(_))
(...skipping 12 matching lines...) Expand all
685 .WillOnce(Return(false)) 678 .WillOnce(Return(false))
686 .RetiresOnSaturation(); 679 .RetiresOnSaturation();
687 680
688 TestingProfile profile; 681 TestingProfile profile;
689 682
690 // This is how we inject fake URLFetcher objects, with a factory. 683 // This is how we inject fake URLFetcher objects, with a factory.
691 // This factory creates fake URLFetchers that Start() a fake fetch attempt 684 // This factory creates fake URLFetchers that Start() a fake fetch attempt
692 // and then come back on the UI thread after a small delay. They expect to 685 // and then come back on the UI thread after a small delay. They expect to
693 // be canceled before they come back, and the test will fail if they are not. 686 // be canceled before they come back, and the test will fail if they are not.
694 MockFactory<ExpectCanceledFetcher> factory; 687 MockFactory<ExpectCanceledFetcher> factory;
695 URLFetcher::set_factory(&factory);
696 688
697 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); 689 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer));
698 // This time, instead of allowing |auth| to go get the localaccount file 690 // This time, instead of allowing |auth| to go get the localaccount file
699 // itself, we simulate the case where the file is already loaded, which 691 // itself, we simulate the case where the file is already loaded, which
700 // happens when this isn't the first login since chrome started. 692 // happens when this isn't the first login since chrome started.
701 ReadLocalaccountFile(auth.get(), ""); 693 ReadLocalaccountFile(auth.get(), "");
702 694
703 // Start an authentication attempt, which will kick off a URL "fetch" that 695 // Start an authentication attempt, which will kick off a URL "fetch" that
704 // we expect to cancel before it completes. 696 // we expect to cancel before it completes.
705 auth->AuthenticateToLogin( 697 auth->AuthenticateToLogin(
706 &profile, username_, hash_ascii_, std::string(), std::string()); 698 &profile, username_, hash_ascii_, std::string(), std::string());
707 699
708 // Post a task to cancel the login attempt. 700 // Post a task to cancel the login attempt.
709 CancelLogin(auth.get()); 701 CancelLogin(auth.get());
710 702
711 URLFetcher::set_factory(NULL);
712
713 // Run the UI thread until we exit it gracefully. 703 // Run the UI thread until we exit it gracefully.
714 message_loop_ui_.Run(); 704 message_loop_ui_.Run();
715 } 705 }
716 706
717 } // namespace chromeos 707 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_download_unittest.cc ('k') | chrome/browser/chromeos/login/online_attempt_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698