OLD | NEW |
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 "components/password_manager/content/browser/credential_manager_impl.h" | 5 #include "components/password_manager/content/browser/credential_manager_impl.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 } | 349 } |
350 | 350 |
351 CredentialManagerImpl* cm_service_impl() { return cm_service_impl_.get(); } | 351 CredentialManagerImpl* cm_service_impl() { return cm_service_impl_.get(); } |
352 | 352 |
353 // Helpers for testing CredentialManagerImpl methods. | 353 // Helpers for testing CredentialManagerImpl methods. |
354 void CallStore(const CredentialInfo& info, | 354 void CallStore(const CredentialInfo& info, |
355 CredentialManagerImpl::StoreCallback callback) { | 355 CredentialManagerImpl::StoreCallback callback) { |
356 cm_service_impl_->Store(info, std::move(callback)); | 356 cm_service_impl_->Store(info, std::move(callback)); |
357 } | 357 } |
358 | 358 |
359 void CallRequireUserMediation( | 359 void CallPreventSilentAccess( |
360 CredentialManagerImpl::RequireUserMediationCallback callback) { | 360 CredentialManagerImpl::PreventSilentAccessCallback callback) { |
361 cm_service_impl_->RequireUserMediation(std::move(callback)); | 361 cm_service_impl_->PreventSilentAccess(std::move(callback)); |
362 } | 362 } |
363 | 363 |
364 void CallGet(CredentialMediationRequirement mediation, | 364 void CallGet(CredentialMediationRequirement mediation, |
365 bool include_passwords, | 365 bool include_passwords, |
366 const std::vector<GURL>& federations, | 366 const std::vector<GURL>& federations, |
367 CredentialManagerImpl::GetCallback callback) { | 367 CredentialManagerImpl::GetCallback callback) { |
368 cm_service_impl_->Get(mediation, include_passwords, federations, | 368 cm_service_impl_->Get(mediation, include_passwords, federations, |
369 std::move(callback)); | 369 std::move(callback)); |
370 } | 370 } |
371 | 371 |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
704 | 704 |
705 bool called = false; | 705 bool called = false; |
706 CallStore(info, base::Bind(&RespondCallback, &called)); | 706 CallStore(info, base::Bind(&RespondCallback, &called)); |
707 | 707 |
708 RunAllPendingTasks(); | 708 RunAllPendingTasks(); |
709 | 709 |
710 EXPECT_TRUE(called); | 710 EXPECT_TRUE(called); |
711 EXPECT_FALSE(client_->pending_manager()); | 711 EXPECT_FALSE(client_->pending_manager()); |
712 } | 712 } |
713 | 713 |
714 TEST_F(CredentialManagerImplTest, CredentialManagerOnRequireUserMediation) { | 714 TEST_F(CredentialManagerImplTest, CredentialManagerOnPreventSilentAccess) { |
715 store_->AddLogin(form_); | 715 store_->AddLogin(form_); |
716 store_->AddLogin(subdomain_form_); | 716 store_->AddLogin(subdomain_form_); |
717 store_->AddLogin(cross_origin_form_); | 717 store_->AddLogin(cross_origin_form_); |
718 RunAllPendingTasks(); | 718 RunAllPendingTasks(); |
719 | 719 |
720 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); | 720 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); |
721 EXPECT_EQ(3U, passwords.size()); | 721 EXPECT_EQ(3U, passwords.size()); |
722 EXPECT_EQ(1U, passwords[form_.signon_realm].size()); | 722 EXPECT_EQ(1U, passwords[form_.signon_realm].size()); |
723 EXPECT_EQ(1U, passwords[subdomain_form_.signon_realm].size()); | 723 EXPECT_EQ(1U, passwords[subdomain_form_.signon_realm].size()); |
724 EXPECT_EQ(1U, passwords[cross_origin_form_.signon_realm].size()); | 724 EXPECT_EQ(1U, passwords[cross_origin_form_.signon_realm].size()); |
725 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); | 725 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); |
726 EXPECT_FALSE(passwords[subdomain_form_.signon_realm][0].skip_zero_click); | 726 EXPECT_FALSE(passwords[subdomain_form_.signon_realm][0].skip_zero_click); |
727 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); | 727 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); |
728 | 728 |
729 bool called = false; | 729 bool called = false; |
730 CallRequireUserMediation(base::Bind(&RespondCallback, &called)); | 730 CallPreventSilentAccess(base::Bind(&RespondCallback, &called)); |
731 | 731 |
732 RunAllPendingTasks(); | 732 RunAllPendingTasks(); |
733 | 733 |
734 EXPECT_TRUE(called); | 734 EXPECT_TRUE(called); |
735 | 735 |
736 passwords = store_->stored_passwords(); | 736 passwords = store_->stored_passwords(); |
737 EXPECT_EQ(3U, passwords.size()); | 737 EXPECT_EQ(3U, passwords.size()); |
738 EXPECT_EQ(1U, passwords[form_.signon_realm].size()); | 738 EXPECT_EQ(1U, passwords[form_.signon_realm].size()); |
739 EXPECT_EQ(1U, passwords[subdomain_form_.signon_realm].size()); | 739 EXPECT_EQ(1U, passwords[subdomain_form_.signon_realm].size()); |
740 EXPECT_EQ(1U, passwords[cross_origin_form_.signon_realm].size()); | 740 EXPECT_EQ(1U, passwords[cross_origin_form_.signon_realm].size()); |
741 EXPECT_TRUE(passwords[form_.signon_realm][0].skip_zero_click); | 741 EXPECT_TRUE(passwords[form_.signon_realm][0].skip_zero_click); |
742 EXPECT_TRUE(passwords[subdomain_form_.signon_realm][0].skip_zero_click); | 742 EXPECT_TRUE(passwords[subdomain_form_.signon_realm][0].skip_zero_click); |
743 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); | 743 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); |
744 } | 744 } |
745 | 745 |
746 TEST_F(CredentialManagerImplTest, | 746 TEST_F(CredentialManagerImplTest, |
747 CredentialManagerOnRequireUserMediationIncognito) { | 747 CredentialManagerOnPreventSilentAccessIncognito) { |
748 EXPECT_CALL(*client_, IsSavingAndFillingEnabledForCurrentPage()) | 748 EXPECT_CALL(*client_, IsSavingAndFillingEnabledForCurrentPage()) |
749 .WillRepeatedly(testing::Return(false)); | 749 .WillRepeatedly(testing::Return(false)); |
750 store_->AddLogin(form_); | 750 store_->AddLogin(form_); |
751 RunAllPendingTasks(); | 751 RunAllPendingTasks(); |
752 | 752 |
753 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); | 753 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); |
754 ASSERT_EQ(1U, passwords.size()); | 754 ASSERT_EQ(1U, passwords.size()); |
755 ASSERT_EQ(1U, passwords[form_.signon_realm].size()); | 755 ASSERT_EQ(1U, passwords[form_.signon_realm].size()); |
756 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); | 756 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); |
757 | 757 |
758 bool called = false; | 758 bool called = false; |
759 CallRequireUserMediation(base::Bind(&RespondCallback, &called)); | 759 CallPreventSilentAccess(base::Bind(&RespondCallback, &called)); |
760 RunAllPendingTasks(); | 760 RunAllPendingTasks(); |
761 | 761 |
762 EXPECT_TRUE(called); | 762 EXPECT_TRUE(called); |
763 | 763 |
764 passwords = store_->stored_passwords(); | 764 passwords = store_->stored_passwords(); |
765 ASSERT_EQ(1U, passwords.size()); | 765 ASSERT_EQ(1U, passwords.size()); |
766 ASSERT_EQ(1U, passwords[form_.signon_realm].size()); | 766 ASSERT_EQ(1U, passwords[form_.signon_realm].size()); |
767 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); | 767 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); |
768 } | 768 } |
769 | 769 |
770 TEST_F(CredentialManagerImplTest, | 770 TEST_F(CredentialManagerImplTest, |
771 CredentialManagerOnRequireUserMediationWithAffiliation) { | 771 CredentialManagerOnPreventSilentAccessWithAffiliation) { |
772 store_->AddLogin(form_); | 772 store_->AddLogin(form_); |
773 store_->AddLogin(cross_origin_form_); | 773 store_->AddLogin(cross_origin_form_); |
774 store_->AddLogin(affiliated_form1_); | 774 store_->AddLogin(affiliated_form1_); |
775 store_->AddLogin(affiliated_form2_); | 775 store_->AddLogin(affiliated_form2_); |
776 | 776 |
777 auto mock_helper = base::WrapUnique(new MockAffiliatedMatchHelper); | 777 auto mock_helper = base::WrapUnique(new MockAffiliatedMatchHelper); |
778 store_->SetAffiliatedMatchHelper(std::move(mock_helper)); | 778 store_->SetAffiliatedMatchHelper(std::move(mock_helper)); |
779 | 779 |
780 std::vector<GURL> federations; | 780 std::vector<GURL> federations; |
781 std::vector<std::string> affiliated_realms; | 781 std::vector<std::string> affiliated_realms; |
782 affiliated_realms.push_back(kTestAndroidRealm1); | 782 affiliated_realms.push_back(kTestAndroidRealm1); |
783 static_cast<MockAffiliatedMatchHelper*>(store_->affiliated_match_helper()) | 783 static_cast<MockAffiliatedMatchHelper*>(store_->affiliated_match_helper()) |
784 ->ExpectCallToGetAffiliatedAndroidRealms( | 784 ->ExpectCallToGetAffiliatedAndroidRealms( |
785 cm_service_impl_->GetSynthesizedFormForOrigin(), affiliated_realms); | 785 cm_service_impl_->GetSynthesizedFormForOrigin(), affiliated_realms); |
786 RunAllPendingTasks(); | 786 RunAllPendingTasks(); |
787 | 787 |
788 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); | 788 TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); |
789 EXPECT_EQ(4U, passwords.size()); | 789 EXPECT_EQ(4U, passwords.size()); |
790 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); | 790 EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); |
791 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); | 791 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); |
792 EXPECT_FALSE(passwords[affiliated_form1_.signon_realm][0].skip_zero_click); | 792 EXPECT_FALSE(passwords[affiliated_form1_.signon_realm][0].skip_zero_click); |
793 EXPECT_FALSE(passwords[affiliated_form2_.signon_realm][0].skip_zero_click); | 793 EXPECT_FALSE(passwords[affiliated_form2_.signon_realm][0].skip_zero_click); |
794 | 794 |
795 bool called = false; | 795 bool called = false; |
796 CallRequireUserMediation(base::Bind(&RespondCallback, &called)); | 796 CallPreventSilentAccess(base::Bind(&RespondCallback, &called)); |
797 RunAllPendingTasks(); | 797 RunAllPendingTasks(); |
798 | 798 |
799 passwords = store_->stored_passwords(); | 799 passwords = store_->stored_passwords(); |
800 EXPECT_EQ(4U, passwords.size()); | 800 EXPECT_EQ(4U, passwords.size()); |
801 EXPECT_TRUE(passwords[form_.signon_realm][0].skip_zero_click); | 801 EXPECT_TRUE(passwords[form_.signon_realm][0].skip_zero_click); |
802 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); | 802 EXPECT_FALSE(passwords[cross_origin_form_.signon_realm][0].skip_zero_click); |
803 EXPECT_TRUE(passwords[affiliated_form1_.signon_realm][0].skip_zero_click); | 803 EXPECT_TRUE(passwords[affiliated_form1_.signon_realm][0].skip_zero_click); |
804 EXPECT_FALSE(passwords[affiliated_form2_.signon_realm][0].skip_zero_click); | 804 EXPECT_FALSE(passwords[affiliated_form2_.signon_realm][0].skip_zero_click); |
805 } | 805 } |
806 | 806 |
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1621 EXPECT_CALL(*client_, PromptUserToSavePasswordPtr(_)); | 1621 EXPECT_CALL(*client_, PromptUserToSavePasswordPtr(_)); |
1622 CallStore(info, base::Bind(&RespondCallback, &called)); | 1622 CallStore(info, base::Bind(&RespondCallback, &called)); |
1623 // Allow the PasswordFormManager to talk to the password store | 1623 // Allow the PasswordFormManager to talk to the password store |
1624 RunAllPendingTasks(); | 1624 RunAllPendingTasks(); |
1625 | 1625 |
1626 ASSERT_TRUE(client_->pending_manager()); | 1626 ASSERT_TRUE(client_->pending_manager()); |
1627 EXPECT_TRUE(client_->pending_manager()->IsBlacklisted()); | 1627 EXPECT_TRUE(client_->pending_manager()->IsBlacklisted()); |
1628 } | 1628 } |
1629 | 1629 |
1630 } // namespace password_manager | 1630 } // namespace password_manager |
OLD | NEW |