OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "base/file_path.h" | 8 #include "base/file_path.h" |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 // canceled, and fails the test if it is not | 54 // canceled, and fails the test if it is not |
55 class ExpectCanceledFetcher : public URLFetcher { | 55 class ExpectCanceledFetcher : public URLFetcher { |
56 public: | 56 public: |
57 ExpectCanceledFetcher(bool success, | 57 ExpectCanceledFetcher(bool success, |
58 const GURL& url, | 58 const GURL& url, |
59 URLFetcher::RequestType request_type, | 59 URLFetcher::RequestType request_type, |
60 URLFetcher::Delegate* d) | 60 URLFetcher::Delegate* d) |
61 : URLFetcher(url, request_type, d) { | 61 : URLFetcher(url, request_type, d) { |
62 } | 62 } |
63 | 63 |
64 ~ExpectCanceledFetcher() { | 64 virtual ~ExpectCanceledFetcher() { |
65 task_->Cancel(); | 65 task_->Cancel(); |
66 } | 66 } |
67 | 67 |
68 static void CompleteFetch() { | 68 static void CompleteFetch() { |
69 ADD_FAILURE() << "Fetch completed in ExpectCanceledFetcher!"; | 69 ADD_FAILURE() << "Fetch completed in ExpectCanceledFetcher!"; |
70 MessageLoop::current()->Quit(); // Allow exiting even if we mess up. | 70 MessageLoop::current()->Quit(); // Allow exiting even if we mess up. |
71 } | 71 } |
72 | 72 |
73 void Start() { | 73 void Start() { |
74 LOG(INFO) << "Delaying fetch completion in mock"; | 74 LOG(INFO) << "Delaying fetch completion in mock"; |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 .WillOnce(Return(true)) | 511 .WillOnce(Return(true)) |
512 .RetiresOnSaturation(); | 512 .RetiresOnSaturation(); |
513 | 513 |
514 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); | 514 scoped_refptr<GoogleAuthenticator> auth(new GoogleAuthenticator(&consumer)); |
515 PrepForLogin(auth.get()); | 515 PrepForLogin(auth.get()); |
516 auth->SetLocalaccount(username_); | 516 auth->SetLocalaccount(username_); |
517 | 517 |
518 auth->CheckLocalaccount(std::string()); | 518 auth->CheckLocalaccount(std::string()); |
519 } | 519 } |
520 | 520 |
| 521 namespace { |
| 522 |
521 // Compatible with LoginStatusConsumer::OnLoginSuccess() | 523 // Compatible with LoginStatusConsumer::OnLoginSuccess() |
522 static void OnSuccessQuit( | 524 static void OnSuccessQuit( |
523 const std::string& username, | 525 const std::string& username, |
524 const GaiaAuthConsumer::ClientLoginResult& credentials) { | 526 const GaiaAuthConsumer::ClientLoginResult& credentials) { |
525 MessageLoop::current()->Quit(); | 527 MessageLoop::current()->Quit(); |
526 } | 528 } |
527 | 529 |
528 static void OnSuccessQuitAndFail( | 530 static void OnSuccessQuitAndFail( |
529 const std::string& username, | 531 const std::string& username, |
530 const GaiaAuthConsumer::ClientLoginResult& credentials) { | 532 const GaiaAuthConsumer::ClientLoginResult& credentials) { |
531 ADD_FAILURE() << "Login should NOT have succeeded!"; | 533 ADD_FAILURE() << "Login should NOT have succeeded!"; |
532 MessageLoop::current()->Quit(); | 534 MessageLoop::current()->Quit(); |
533 } | 535 } |
534 | 536 |
535 // Compatible with LoginStatusConsumer::OnLoginFailure() | 537 // Compatible with LoginStatusConsumer::OnLoginFailure() |
536 static void OnFailQuit(const std::string& error) { | 538 static void OnFailQuit(const std::string& error) { |
537 MessageLoop::current()->Quit(); | 539 MessageLoop::current()->Quit(); |
538 } | 540 } |
539 | 541 |
540 static void OnFailQuitAndFail(const std::string& error) { | 542 static void OnFailQuitAndFail(const std::string& error) { |
541 ADD_FAILURE() << "Login should have succeeded!"; | 543 ADD_FAILURE() << "Login should have succeeded!"; |
542 MessageLoop::current()->Quit(); | 544 MessageLoop::current()->Quit(); |
543 } | 545 } |
544 | 546 |
| 547 } // anonymous namespace |
| 548 |
545 TEST_F(GoogleAuthenticatorTest, LocalaccountLogin) { | 549 TEST_F(GoogleAuthenticatorTest, LocalaccountLogin) { |
546 // This test checks the logic that governs asynchronously reading the | 550 // This test checks the logic that governs asynchronously reading the |
547 // localaccount name off disk and trying to authenticate against it | 551 // localaccount name off disk and trying to authenticate against it |
548 // simultaneously. | 552 // simultaneously. |
549 MessageLoop message_loop(MessageLoop::TYPE_UI); | 553 MessageLoop message_loop(MessageLoop::TYPE_UI); |
550 ChromeThread ui_thread(ChromeThread::UI, &message_loop); | 554 ChromeThread ui_thread(ChromeThread::UI, &message_loop); |
551 | 555 |
552 MockConsumer consumer; | 556 MockConsumer consumer; |
553 EXPECT_CALL(consumer, OnLoginSuccess(username_, _)) | 557 EXPECT_CALL(consumer, OnLoginSuccess(username_, _)) |
554 .WillOnce(Invoke(OnSuccessQuit)) | 558 .WillOnce(Invoke(OnSuccessQuit)) |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 // Post a task to cancel the login attempt. | 720 // Post a task to cancel the login attempt. |
717 CancelLogin(auth.get()); | 721 CancelLogin(auth.get()); |
718 | 722 |
719 URLFetcher::set_factory(NULL); | 723 URLFetcher::set_factory(NULL); |
720 | 724 |
721 // Run the UI thread until we exit it gracefully. | 725 // Run the UI thread until we exit it gracefully. |
722 message_loop.Run(); | 726 message_loop.Run(); |
723 } | 727 } |
724 | 728 |
725 } // namespace chromeos | 729 } // namespace chromeos |
OLD | NEW |