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

Side by Side Diff: chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc

Issue 1610653002: Integrate the account chooser dialog on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 11 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 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 <utility> 5 #include <utility>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 scoped_ptr<password_manager::PasswordFormManager> test_form_manager( 446 scoped_ptr<password_manager::PasswordFormManager> test_form_manager(
447 CreateFormManager()); 447 CreateFormManager());
448 448
449 controller()->OnAutomaticPasswordSave(std::move(test_form_manager)); 449 controller()->OnAutomaticPasswordSave(std::move(test_form_manager));
450 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState()); 450 EXPECT_EQ(password_manager::ui::CONFIRMATION_STATE, controller()->GetState());
451 451
452 controller()->OnBubbleHidden(); 452 controller()->OnBubbleHidden();
453 ExpectIconStateIs(password_manager::ui::MANAGE_STATE); 453 ExpectIconStateIs(password_manager::ui::MANAGE_STATE);
454 } 454 }
455 455
456 #if defined(OS_MACOSX)
457 // TODO(vasilii): remove once Mac supports the account chooser dialog.
458 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) { 456 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
459 ScopedVector<autofill::PasswordForm> local_credentials; 457 ScopedVector<autofill::PasswordForm> local_credentials;
460 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 458 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
461 ScopedVector<autofill::PasswordForm> federated_credentials;
462 GURL origin("http://example.com");
463 EXPECT_TRUE(controller()->OnChooseCredentials(
464 std::move(local_credentials), std::move(federated_credentials), origin,
465 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
466 base::Unretained(this))));
467 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
468 controller()->GetState());
469 EXPECT_EQ(origin, controller()->GetOrigin());
470 EXPECT_THAT(controller()->GetCurrentForms(),
471 ElementsAre(Pointee(test_local_form())));
472
473 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
474
475 controller()->ManagePasswordsUIController::ChooseCredential(
476 test_local_form(),
477 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD);
478 controller()->OnBubbleHidden();
479 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
480 ASSERT_TRUE(credential_info());
481 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
482 EXPECT_EQ(test_local_form().password_value, credential_info()->password);
483 EXPECT_TRUE(credential_info()->federation.is_empty());
484 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD,
485 credential_info()->type);
486 }
487
488 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocalButFederated) {
489 ScopedVector<autofill::PasswordForm> local_credentials;
490 local_credentials.push_back(
491 new autofill::PasswordForm(test_federated_form()));
492 ScopedVector<autofill::PasswordForm> federated_credentials;
493 GURL origin("http://example.com");
494 EXPECT_TRUE(controller()->OnChooseCredentials(
495 std::move(local_credentials), std::move(federated_credentials), origin,
496 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
497 base::Unretained(this))));
498 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
499 controller()->GetState());
500 EXPECT_EQ(origin, controller()->GetOrigin());
501 EXPECT_THAT(controller()->GetCurrentForms(),
502 ElementsAre(Pointee(test_federated_form())));
503
504 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
505
506 controller()->ManagePasswordsUIController::ChooseCredential(
507 test_federated_form(),
508 password_manager::CredentialType::CREDENTIAL_TYPE_PASSWORD);
509 controller()->OnBubbleHidden();
510 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
511 ASSERT_TRUE(credential_info());
512 EXPECT_EQ(test_federated_form().username_value, credential_info()->id);
513 EXPECT_EQ(test_federated_form().federation_url,
514 credential_info()->federation);
515 EXPECT_TRUE(credential_info()->password.empty());
516 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
517 credential_info()->type);
518 }
519
520 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialFederated) {
521 ScopedVector<autofill::PasswordForm> local_credentials;
522 ScopedVector<autofill::PasswordForm> federated_credentials;
523 federated_credentials.push_back(
524 new autofill::PasswordForm(test_local_form()));
525 GURL origin("http://example.com");
526 EXPECT_TRUE(controller()->OnChooseCredentials(
527 std::move(local_credentials), std::move(federated_credentials), origin,
528 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
529 base::Unretained(this))));
530 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
531 controller()->GetState());
532 EXPECT_EQ(0u, controller()->GetCurrentForms().size());
533 EXPECT_EQ(origin, controller()->GetOrigin());
534
535 ExpectIconStateIs(password_manager::ui::CREDENTIAL_REQUEST_STATE);
536
537 controller()->ManagePasswordsUIController::ChooseCredential(
538 test_local_form(),
539 password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED);
540 controller()->OnBubbleHidden();
541 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
542 ASSERT_TRUE(credential_info());
543 EXPECT_EQ(test_local_form().username_value, credential_info()->id);
544 EXPECT_TRUE(credential_info()->password.empty());
545 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED,
546 credential_info()->type);
547 }
548
549 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialCancel) {
550 ScopedVector<autofill::PasswordForm> local_credentials;
551 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
552 ScopedVector<autofill::PasswordForm> federated_credentials;
553 GURL origin("http://example.com");
554 EXPECT_TRUE(controller()->OnChooseCredentials(
555 std::move(local_credentials), std::move(federated_credentials), origin,
556 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
557 base::Unretained(this))));
558 EXPECT_EQ(password_manager::ui::CREDENTIAL_REQUEST_STATE,
559 controller()->GetState());
560 EXPECT_EQ(origin, controller()->GetOrigin());
561 controller()->ManagePasswordsUIController::ChooseCredential(
562 test_local_form(),
563 password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY);
564 controller()->OnBubbleHidden();
565 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
566 ASSERT_TRUE(credential_info());
567 EXPECT_TRUE(credential_info()->federation.is_empty());
568 EXPECT_TRUE(credential_info()->password.empty());
569 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY,
570 credential_info()->type);
571 }
572 #else // defined(OS_MACOSX)
573 TEST_F(ManagePasswordsUIControllerTest, ChooseCredentialLocal) {
574 ScopedVector<autofill::PasswordForm> local_credentials;
575 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
576 ScopedVector<autofill::PasswordForm> federated_credentials; 459 ScopedVector<autofill::PasswordForm> federated_credentials;
577 GURL origin("http://example.com"); 460 GURL origin("http://example.com");
578 PasswordDialogController* dialog_controller = nullptr; 461 PasswordDialogController* dialog_controller = nullptr;
579 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce( 462 EXPECT_CALL(*controller(), CreateAccountChooser(_)).WillOnce(
580 DoAll(SaveArg<0>(&dialog_controller), Return(&account_chooser()))); 463 DoAll(SaveArg<0>(&dialog_controller), Return(&account_chooser())));
581 EXPECT_CALL(account_chooser(), Show()); 464 EXPECT_CALL(account_chooser(), Show());
582 EXPECT_TRUE(controller()->OnChooseCredentials( 465 EXPECT_TRUE(controller()->OnChooseCredentials(
583 std::move(local_credentials), std::move(federated_credentials), origin, 466 std::move(local_credentials), std::move(federated_credentials), origin,
584 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback, 467 base::Bind(&ManagePasswordsUIControllerTest::CredentialCallback,
585 base::Unretained(this)))); 468 base::Unretained(this))));
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 576
694 EXPECT_CALL(account_chooser(), ControllerGone()).Times(0); 577 EXPECT_CALL(account_chooser(), ControllerGone()).Times(0);
695 dialog_controller->OnCloseAccountChooser(); 578 dialog_controller->OnCloseAccountChooser();
696 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState()); 579 EXPECT_EQ(password_manager::ui::MANAGE_STATE, controller()->GetState());
697 ASSERT_TRUE(credential_info()); 580 ASSERT_TRUE(credential_info());
698 EXPECT_TRUE(credential_info()->federation.is_empty()); 581 EXPECT_TRUE(credential_info()->federation.is_empty());
699 EXPECT_TRUE(credential_info()->password.empty()); 582 EXPECT_TRUE(credential_info()->password.empty());
700 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY, 583 EXPECT_EQ(password_manager::CredentialType::CREDENTIAL_TYPE_EMPTY,
701 credential_info()->type); 584 credential_info()->type);
702 } 585 }
703 #endif // defined(OS_MACOSX)
704 586
705 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) { 587 TEST_F(ManagePasswordsUIControllerTest, AutoSignin) {
706 ScopedVector<autofill::PasswordForm> local_credentials; 588 ScopedVector<autofill::PasswordForm> local_credentials;
707 local_credentials.push_back(new autofill::PasswordForm(test_local_form())); 589 local_credentials.push_back(new autofill::PasswordForm(test_local_form()));
708 controller()->OnAutoSignin(std::move(local_credentials)); 590 controller()->OnAutoSignin(std::move(local_credentials));
709 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState()); 591 EXPECT_EQ(password_manager::ui::AUTO_SIGNIN_STATE, controller()->GetState());
710 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin()); 592 EXPECT_EQ(test_local_form().origin, controller()->GetOrigin());
711 ASSERT_FALSE(controller()->GetCurrentForms().empty()); 593 ASSERT_FALSE(controller()->GetCurrentForms().empty());
712 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]); 594 EXPECT_EQ(test_local_form(), *controller()->GetCurrentForms()[0]);
713 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE); 595 ExpectIconStateIs(password_manager::ui::AUTO_SIGNIN_STATE);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 CreateFormManager()); 652 CreateFormManager());
771 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager)); 653 controller()->OnUpdatePasswordSubmitted(std::move(test_form_manager));
772 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE, 654 EXPECT_EQ(password_manager::ui::PENDING_PASSWORD_UPDATE_STATE,
773 controller()->GetState()); 655 controller()->GetState());
774 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(), 656 controller()->DidNavigateMainFrame(content::LoadCommittedDetails(),
775 content::FrameNavigateParams()); 657 content::FrameNavigateParams());
776 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState()); 658 EXPECT_EQ(password_manager::ui::INACTIVE_STATE, controller()->GetState());
777 // The following line shouldn't crash browser. 659 // The following line shouldn't crash browser.
778 controller()->OnNoInteractionOnUpdate(); 660 controller()->OnNoInteractionOnUpdate();
779 } 661 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698