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

Side by Side Diff: components/autofill/core/browser/autofill_manager_unittest.cc

Issue 2864873002: Adds feature flag to disable AutofillProfileComparator for card name. (Closed)
Patch Set: Restores TODO(crbug.com/666704) for OS_ANDROID for UploadCreditCard_NoCvcFieldOnForm_UserEntersCvc Created 3 years, 7 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
« no previous file with comments | « components/autofill/core/browser/autofill_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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/autofill/core/browser/autofill_manager.h" 5 #include "components/autofill/core/browser/autofill_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 1059 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 1070
1071 void EnableUkmLogging() { 1071 void EnableUkmLogging() {
1072 scoped_feature_list_.InitAndEnableFeature(kAutofillUkmLogging); 1072 scoped_feature_list_.InitAndEnableFeature(kAutofillUkmLogging);
1073 } 1073 }
1074 1074
1075 void EnableAutofillUpstreamRequestCvcIfMissingExperimentAndUkmLogging() { 1075 void EnableAutofillUpstreamRequestCvcIfMissingExperimentAndUkmLogging() {
1076 scoped_feature_list_.InitWithFeatures( 1076 scoped_feature_list_.InitWithFeatures(
1077 {kAutofillUpstreamRequestCvcIfMissing, kAutofillUkmLogging}, {}); 1077 {kAutofillUpstreamRequestCvcIfMissing, kAutofillUkmLogging}, {});
1078 } 1078 }
1079 1079
1080 void DisableAutofillUpstreamUseAutofillProfileComparatorForName() {
1081 scoped_feature_list_.InitAndDisableFeature(
1082 kAutofillUpstreamUseAutofillProfileComparatorForName);
1083 }
1084
1080 void ExpectUniqueFillableFormParsedUkm() { 1085 void ExpectUniqueFillableFormParsedUkm() {
1081 ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService(); 1086 ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
1082 1087
1083 // Check that one source is logged. 1088 // Check that one source is logged.
1084 ASSERT_EQ(1U, ukm_service->sources_count()); 1089 ASSERT_EQ(1U, ukm_service->sources_count());
1085 const ukm::UkmSource* source = GetUkmSources(ukm_service)[0]; 1090 const ukm::UkmSource* source = GetUkmSources(ukm_service)[0];
1086 1091
1087 // Check that one entry is logged. 1092 // Check that one entry is logged.
1088 EXPECT_EQ(1U, ukm_service->entries_count()); 1093 EXPECT_EQ(1U, ukm_service->entries_count());
1089 const ukm::UkmEntry* entry = ukm_service->GetEntry(0); 1094 const ukm::UkmEntry* entry = ukm_service->GetEntry(0);
(...skipping 3532 matching lines...) Expand 10 before | Expand all | Expand 10 after
4622 CardUnmaskDelegate::UnmaskResponse response; 4627 CardUnmaskDelegate::UnmaskResponse response;
4623 response.should_store_pan = false; 4628 response.should_store_pan = false;
4624 response.cvc = ASCIIToUTF16("123"); 4629 response.cvc = ASCIIToUTF16("123");
4625 response.exp_month = ASCIIToUTF16("02"); 4630 response.exp_month = ASCIIToUTF16("02");
4626 response.exp_year = ASCIIToUTF16("2018"); 4631 response.exp_year = ASCIIToUTF16("2018");
4627 full_card_unmask_delegate()->OnUnmaskResponse(response); 4632 full_card_unmask_delegate()->OnUnmaskResponse(response);
4628 autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS, 4633 autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS,
4629 "4012888888881881"); 4634 "4012888888881881");
4630 } 4635 }
4631 4636
4632 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4637 TEST_F(AutofillManagerTest, UploadCreditCard) {
4633 #if defined(OS_ANDROID)
4634 #define MAYBE_UploadCreditCard DISABLED_UploadCreditCard
4635 #else
4636 #define MAYBE_UploadCreditCard UploadCreditCard
4637 #endif
4638 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard) {
4639 EnableUkmLogging(); 4638 EnableUkmLogging();
4640 personal_data_.ClearCreditCards(); 4639 personal_data_.ClearCreditCards();
4641 personal_data_.ClearAutofillProfiles(); 4640 personal_data_.ClearAutofillProfiles();
4642 autofill_manager_->set_credit_card_upload_enabled(true); 4641 autofill_manager_->set_credit_card_upload_enabled(true);
4643 4642
4644 // Create, fill and submit an address form in order to establish a recent 4643 // Create, fill and submit an address form in order to establish a recent
4645 // profile which can be selected for the upload request. 4644 // profile which can be selected for the upload request.
4646 FormData address_form; 4645 FormData address_form;
4647 test::CreateTestAddressFormData(&address_form); 4646 test::CreateTestAddressFormData(&address_form);
4648 FormsSeen(std::vector<FormData>(1, address_form)); 4647 FormsSeen(std::vector<FormData>(1, address_form));
(...skipping 24 matching lines...) Expand all
4673 // Server did not send a server_id, expect copy of card is not stored. 4672 // Server did not send a server_id, expect copy of card is not stored.
4674 EXPECT_TRUE(autofill_manager_->GetCreditCards().empty()); 4673 EXPECT_TRUE(autofill_manager_->GetCreditCards().empty());
4675 4674
4676 // Verify that the correct histogram entry (and only that) was logged. 4675 // Verify that the correct histogram entry (and only that) was logged.
4677 ExpectUniqueCardUploadDecision(histogram_tester, 4676 ExpectUniqueCardUploadDecision(histogram_tester,
4678 AutofillMetrics::UPLOAD_OFFERED); 4677 AutofillMetrics::UPLOAD_OFFERED);
4679 // Verify that the correct UKM was logged. 4678 // Verify that the correct UKM was logged.
4680 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 4679 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
4681 } 4680 }
4682 4681
4683 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4682 TEST_F(AutofillManagerTest, UploadCreditCardAndSaveCopy) {
4684 #if defined(OS_ANDROID)
4685 #define MAYBE_UploadCreditCardAndSaveCopy DISABLED_UploadCreditCardAndSaveCopy
4686 #else
4687 #define MAYBE_UploadCreditCardAndSaveCopy UploadCreditCardAndSaveCopy
4688 #endif
4689 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCardAndSaveCopy) {
4690 personal_data_.ClearCreditCards(); 4683 personal_data_.ClearCreditCards();
4691 personal_data_.ClearAutofillProfiles(); 4684 personal_data_.ClearAutofillProfiles();
4692 autofill_manager_->set_credit_card_upload_enabled(true); 4685 autofill_manager_->set_credit_card_upload_enabled(true);
4693 4686
4694 const char* const server_id = "InstrumentData:1234"; 4687 const char* const server_id = "InstrumentData:1234";
4695 autofill_manager_->ResetPaymentsClientForCardUpload(server_id); 4688 autofill_manager_->ResetPaymentsClientForCardUpload(server_id);
4696 4689
4697 // Create, fill and submit an address form in order to establish a recent 4690 // Create, fill and submit an address form in order to establish a recent
4698 // profile which can be selected for the upload request. 4691 // profile which can be selected for the upload request.
4699 FormData address_form; 4692 FormData address_form;
(...skipping 25 matching lines...) Expand all
4725 EXPECT_EQ(CreditCard::OK, saved_card->GetServerStatus()); 4718 EXPECT_EQ(CreditCard::OK, saved_card->GetServerStatus());
4726 EXPECT_EQ(base::ASCIIToUTF16("1111"), saved_card->LastFourDigits()); 4719 EXPECT_EQ(base::ASCIIToUTF16("1111"), saved_card->LastFourDigits());
4727 EXPECT_EQ(kVisaCard, saved_card->network()); 4720 EXPECT_EQ(kVisaCard, saved_card->network());
4728 EXPECT_EQ(11, saved_card->expiration_month()); 4721 EXPECT_EQ(11, saved_card->expiration_month());
4729 EXPECT_EQ(2017, saved_card->expiration_year()); 4722 EXPECT_EQ(2017, saved_card->expiration_year());
4730 EXPECT_EQ(server_id, saved_card->server_id()); 4723 EXPECT_EQ(server_id, saved_card->server_id());
4731 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, saved_card->record_type()); 4724 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, saved_card->record_type());
4732 EXPECT_EQ(base::ASCIIToUTF16(card_number), saved_card->number()); 4725 EXPECT_EQ(base::ASCIIToUTF16(card_number), saved_card->number());
4733 } 4726 }
4734 4727
4735 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4728 TEST_F(AutofillManagerTest, UploadCreditCard_FeatureNotEnabled) {
4736 #if defined(OS_ANDROID)
4737 #define MAYBE_UploadCreditCard_FeatureNotEnabled \
4738 DISABLED_UploadCreditCard_FeatureNotEnabled
4739 #else
4740 #define MAYBE_UploadCreditCard_FeatureNotEnabled \
4741 UploadCreditCard_FeatureNotEnabled
4742 #endif
4743 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_FeatureNotEnabled) {
4744 personal_data_.ClearAutofillProfiles(); 4729 personal_data_.ClearAutofillProfiles();
4745 autofill_manager_->set_credit_card_upload_enabled(false); 4730 autofill_manager_->set_credit_card_upload_enabled(false);
4746 4731
4747 // Create, fill and submit an address form in order to establish a recent 4732 // Create, fill and submit an address form in order to establish a recent
4748 // profile which can be selected for the upload request. 4733 // profile which can be selected for the upload request.
4749 FormData address_form; 4734 FormData address_form;
4750 test::CreateTestAddressFormData(&address_form); 4735 test::CreateTestAddressFormData(&address_form);
4751 FormsSeen(std::vector<FormData>(1, address_form)); 4736 FormsSeen(std::vector<FormData>(1, address_form));
4752 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form); 4737 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
4753 FormSubmitted(address_form); 4738 FormSubmitted(address_form);
(...skipping 14 matching lines...) Expand all
4768 4753
4769 // The save prompt should be shown instead of doing an upload. 4754 // The save prompt should be shown instead of doing an upload.
4770 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)); 4755 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _));
4771 FormSubmitted(credit_card_form); 4756 FormSubmitted(credit_card_form);
4772 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 4757 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
4773 4758
4774 // Verify that no histogram entry was logged. 4759 // Verify that no histogram entry was logged.
4775 histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0); 4760 histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0);
4776 } 4761 }
4777 4762
4778 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4763 TEST_F(AutofillManagerTest, UploadCreditCard_CvcUnavailable) {
4779 #if defined(OS_ANDROID)
4780 #define MAYBE_UploadCreditCard_CvcUnavailable \
4781 DISABLED_UploadCreditCard_CvcUnavailable
4782 #else
4783 #define MAYBE_UploadCreditCard_CvcUnavailable UploadCreditCard_CvcUnavailable
4784 #endif
4785 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_CvcUnavailable) {
4786 EnableUkmLogging(); 4764 EnableUkmLogging();
4787 personal_data_.ClearAutofillProfiles(); 4765 personal_data_.ClearAutofillProfiles();
4788 autofill_manager_->set_credit_card_upload_enabled(true); 4766 autofill_manager_->set_credit_card_upload_enabled(true);
4789 4767
4790 // Create, fill and submit an address form in order to establish a recent 4768 // Create, fill and submit an address form in order to establish a recent
4791 // profile which can be selected for the upload request. 4769 // profile which can be selected for the upload request.
4792 FormData address_form; 4770 FormData address_form;
4793 test::CreateTestAddressFormData(&address_form); 4771 test::CreateTestAddressFormData(&address_form);
4794 FormsSeen(std::vector<FormData>(1, address_form)); 4772 FormsSeen(std::vector<FormData>(1, address_form));
4795 ExpectUniqueFillableFormParsedUkm(); 4773 ExpectUniqueFillableFormParsedUkm();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
4827 autofill_client_.test_rappor_service(); 4805 autofill_client_.test_rappor_service();
4828 EXPECT_EQ(1, rappor_service->GetReportsCount()); 4806 EXPECT_EQ(1, rappor_service->GetReportsCount());
4829 std::string sample; 4807 std::string sample;
4830 rappor::RapporType type; 4808 rappor::RapporType type;
4831 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 4809 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
4832 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 4810 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
4833 EXPECT_EQ("myform.com", sample); 4811 EXPECT_EQ("myform.com", sample);
4834 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 4812 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
4835 } 4813 }
4836 4814
4837 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4815 TEST_F(AutofillManagerTest, UploadCreditCard_CvcInvalidLength) {
4838 #if defined(OS_ANDROID)
4839 #define MAYBE_UploadCreditCard_CvcInvalidLength \
4840 DISABLED_UploadCreditCard_CvcInvalidLength
4841 #else
4842 #define MAYBE_UploadCreditCard_CvcInvalidLength \
4843 UploadCreditCard_CvcInvalidLength
4844 #endif
4845 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_CvcInvalidLength) {
4846 EnableUkmLogging(); 4816 EnableUkmLogging();
4847 personal_data_.ClearAutofillProfiles(); 4817 personal_data_.ClearAutofillProfiles();
4848 autofill_manager_->set_credit_card_upload_enabled(true); 4818 autofill_manager_->set_credit_card_upload_enabled(true);
4849 4819
4850 // Create, fill and submit an address form in order to establish a recent 4820 // Create, fill and submit an address form in order to establish a recent
4851 // profile which can be selected for the upload request. 4821 // profile which can be selected for the upload request.
4852 FormData address_form; 4822 FormData address_form;
4853 test::CreateTestAddressFormData(&address_form); 4823 test::CreateTestAddressFormData(&address_form);
4854 FormsSeen(std::vector<FormData>(1, address_form)); 4824 FormsSeen(std::vector<FormData>(1, address_form));
4855 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form); 4825 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
(...skipping 28 matching lines...) Expand all
4884 autofill_client_.test_rappor_service(); 4854 autofill_client_.test_rappor_service();
4885 EXPECT_EQ(1, rappor_service->GetReportsCount()); 4855 EXPECT_EQ(1, rappor_service->GetReportsCount());
4886 std::string sample; 4856 std::string sample;
4887 rappor::RapporType type; 4857 rappor::RapporType type;
4888 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 4858 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
4889 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 4859 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
4890 EXPECT_EQ("myform.com", sample); 4860 EXPECT_EQ("myform.com", sample);
4891 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 4861 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
4892 } 4862 }
4893 4863
4894 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4864 TEST_F(AutofillManagerTest, UploadCreditCard_MultipleCvcFields) {
4895 #if defined(OS_ANDROID)
4896 #define MAYBE_UploadCreditCard_MultipleCvcFields \
4897 DISABLED_UploadCreditCard_MultipleCvcFields
4898 #else
4899 #define MAYBE_UploadCreditCard_MultipleCvcFields \
4900 UploadCreditCard_MultipleCvcFields
4901 #endif
4902 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_MultipleCvcFields) {
4903 EnableUkmLogging(); 4865 EnableUkmLogging();
4904 autofill_manager_->set_credit_card_upload_enabled(true); 4866 autofill_manager_->set_credit_card_upload_enabled(true);
4905 4867
4906 // Remove the profiles that were created in the TestPersonalDataManager 4868 // Remove the profiles that were created in the TestPersonalDataManager
4907 // constructor because they would result in conflicting names that would 4869 // constructor because they would result in conflicting names that would
4908 // prevent the upload. 4870 // prevent the upload.
4909 personal_data_.ClearAutofillProfiles(); 4871 personal_data_.ClearAutofillProfiles();
4910 4872
4911 // Create, fill and submit an address form in order to establish a recent 4873 // Create, fill and submit an address form in order to establish a recent
4912 // profile which can be selected for the upload request. 4874 // profile which can be selected for the upload request.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
4953 FormSubmitted(credit_card_form); 4915 FormSubmitted(credit_card_form);
4954 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 4916 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
4955 4917
4956 // Verify that the correct histogram entry (and only that) was logged. 4918 // Verify that the correct histogram entry (and only that) was logged.
4957 ExpectUniqueCardUploadDecision(histogram_tester, 4919 ExpectUniqueCardUploadDecision(histogram_tester,
4958 AutofillMetrics::UPLOAD_OFFERED); 4920 AutofillMetrics::UPLOAD_OFFERED);
4959 // Verify that the correct UKM was logged. 4921 // Verify that the correct UKM was logged.
4960 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 4922 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
4961 } 4923 }
4962 4924
4963 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 4925 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnForm) {
4964 #if defined(OS_ANDROID)
4965 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm \
4966 DISABLED_UploadCreditCard_NoCvcFieldOnForm
4967 #else
4968 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm \
4969 UploadCreditCard_NoCvcFieldOnForm
4970 #endif
4971 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NoCvcFieldOnForm) {
4972 EnableUkmLogging(); 4926 EnableUkmLogging();
4973 autofill_manager_->set_credit_card_upload_enabled(true); 4927 autofill_manager_->set_credit_card_upload_enabled(true);
4974 4928
4975 // Remove the profiles that were created in the TestPersonalDataManager 4929 // Remove the profiles that were created in the TestPersonalDataManager
4976 // constructor because they would result in conflicting names that would 4930 // constructor because they would result in conflicting names that would
4977 // prevent the upload. 4931 // prevent the upload.
4978 personal_data_.ClearAutofillProfiles(); 4932 personal_data_.ClearAutofillProfiles();
4979 4933
4980 // Create, fill and submit an address form in order to establish a recent 4934 // Create, fill and submit an address form in order to establish a recent
4981 // profile which can be selected for the upload request. 4935 // profile which can be selected for the upload request.
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
5085 ExpectCardUploadDecision(histogram_tester, 5039 ExpectCardUploadDecision(histogram_tester,
5086 AutofillMetrics::CVC_FIELD_NOT_FOUND); 5040 AutofillMetrics::CVC_FIELD_NOT_FOUND);
5087 // Verify that the correct UKM was logged. 5041 // Verify that the correct UKM was logged.
5088 ExpectMetric( 5042 ExpectMetric(
5089 internal::kUKMCardUploadDecisionMetricName, 5043 internal::kUKMCardUploadDecisionMetricName,
5090 internal::kUKMCardUploadDecisionEntryName, 5044 internal::kUKMCardUploadDecisionEntryName,
5091 AutofillMetrics::UPLOAD_OFFERED | AutofillMetrics::CVC_FIELD_NOT_FOUND, 5045 AutofillMetrics::UPLOAD_OFFERED | AutofillMetrics::CVC_FIELD_NOT_FOUND,
5092 1 /* expected_num_matching_entries */); 5046 1 /* expected_num_matching_entries */);
5093 } 5047 }
5094 5048
5095 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5049 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) {
5096 #if defined(OS_ANDROID)
5097 #define MAYBE_UploadCreditCard_NoCvcFieldOnFormExperimentOff \
5098 DISABLED_UploadCreditCard_NoCvcFieldOnFormExperimentOff
5099 #else
5100 #define MAYBE_UploadCreditCard_NoCvcFieldOnFormExperimentOff \
5101 UploadCreditCard_NoCvcFieldOnFormExperimentOff
5102 #endif
5103 TEST_F(AutofillManagerTest,
5104 MAYBE_UploadCreditCard_NoCvcFieldOnFormExperimentOff) {
5105 EnableUkmLogging(); 5050 EnableUkmLogging();
5106 autofill_manager_->set_credit_card_upload_enabled(true); 5051 autofill_manager_->set_credit_card_upload_enabled(true);
5107 5052
5108 // Remove the profiles that were created in the TestPersonalDataManager 5053 // Remove the profiles that were created in the TestPersonalDataManager
5109 // constructor because they would result in conflicting names that would 5054 // constructor because they would result in conflicting names that would
5110 // prevent the upload. 5055 // prevent the upload.
5111 personal_data_.ClearAutofillProfiles(); 5056 personal_data_.ClearAutofillProfiles();
5112 5057
5113 // Create, fill and submit an address form in order to establish a recent 5058 // Create, fill and submit an address form in order to establish a recent
5114 // profile which can be selected for the upload request. 5059 // profile which can be selected for the upload request.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
5159 autofill_client_.test_rappor_service(); 5104 autofill_client_.test_rappor_service();
5160 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5105 EXPECT_EQ(1, rappor_service->GetReportsCount());
5161 std::string sample; 5106 std::string sample;
5162 rappor::RapporType type; 5107 rappor::RapporType type;
5163 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5108 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5164 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 5109 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
5165 EXPECT_EQ("myform.com", sample); 5110 EXPECT_EQ("myform.com", sample);
5166 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5111 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5167 } 5112 }
5168 5113
5169 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5114 TEST_F(AutofillManagerTest, UploadCreditCard_NoProfileAvailable) {
5170 #if defined(OS_ANDROID)
5171 #define MAYBE_UploadCreditCard_NoProfileAvailable \
5172 DISABLED_UploadCreditCard_NoProfileAvailable
5173 #else
5174 #define MAYBE_UploadCreditCard_NoProfileAvailable \
5175 UploadCreditCard_NoProfileAvailable
5176 #endif
5177 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NoProfileAvailable) {
5178 EnableUkmLogging(); 5115 EnableUkmLogging();
5179 personal_data_.ClearAutofillProfiles(); 5116 personal_data_.ClearAutofillProfiles();
5180 autofill_manager_->set_credit_card_upload_enabled(true); 5117 autofill_manager_->set_credit_card_upload_enabled(true);
5181 5118
5182 // Don't fill or submit an address form. 5119 // Don't fill or submit an address form.
5183 5120
5184 // Set up our credit card form data. 5121 // Set up our credit card form data.
5185 FormData credit_card_form; 5122 FormData credit_card_form;
5186 CreateTestCreditCardFormData(&credit_card_form, true, false); 5123 CreateTestCreditCardFormData(&credit_card_form, true, false);
5187 FormsSeen(std::vector<FormData>(1, credit_card_form)); 5124 FormsSeen(std::vector<FormData>(1, credit_card_form));
(...skipping 23 matching lines...) Expand all
5211 autofill_client_.test_rappor_service(); 5148 autofill_client_.test_rappor_service();
5212 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5149 EXPECT_EQ(1, rappor_service->GetReportsCount());
5213 std::string sample; 5150 std::string sample;
5214 rappor::RapporType type; 5151 rappor::RapporType type;
5215 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5152 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5216 "Autofill.CardUploadNotOfferedNoAddress", &sample, &type)); 5153 "Autofill.CardUploadNotOfferedNoAddress", &sample, &type));
5217 EXPECT_EQ("myform.com", sample); 5154 EXPECT_EQ("myform.com", sample);
5218 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5155 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5219 } 5156 }
5220 5157
5221 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5158 TEST_F(AutofillManagerTest, UploadCreditCard_NoRecentlyUsedProfile) {
5222 #if defined(OS_ANDROID)
5223 #define MAYBE_UploadCreditCard_NoRecentlyUsedProfile \
5224 DISABLED_UploadCreditCard_NoRecentlyUsedProfile
5225 #else
5226 #define MAYBE_UploadCreditCard_NoRecentlyUsedProfile \
5227 UploadCreditCard_NoRecentlyUsedProfile
5228 #endif
5229 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NoRecentlyUsedProfile) {
5230 // Create the test clock and set the time to a specific value. 5159 // Create the test clock and set the time to a specific value.
5231 TestAutofillClock test_clock; 5160 TestAutofillClock test_clock;
5232 test_clock.SetNow(kArbitraryTime); 5161 test_clock.SetNow(kArbitraryTime);
5233 5162
5234 EnableUkmLogging(); 5163 EnableUkmLogging();
5235 personal_data_.ClearAutofillProfiles(); 5164 personal_data_.ClearAutofillProfiles();
5236 autofill_manager_->set_credit_card_upload_enabled(true); 5165 autofill_manager_->set_credit_card_upload_enabled(true);
5237 5166
5238 // Create, fill and submit an address form in order to establish a profile. 5167 // Create, fill and submit an address form in order to establish a profile.
5239 FormData address_form; 5168 FormData address_form;
(...skipping 27 matching lines...) Expand all
5267 5196
5268 // Verify that the correct histogram entry (and only that) was logged. 5197 // Verify that the correct histogram entry (and only that) was logged.
5269 ExpectUniqueCardUploadDecision( 5198 ExpectUniqueCardUploadDecision(
5270 histogram_tester, 5199 histogram_tester,
5271 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS); 5200 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS);
5272 // Verify that the correct UKM was logged. 5201 // Verify that the correct UKM was logged.
5273 ExpectCardUploadDecisionUkm( 5202 ExpectCardUploadDecisionUkm(
5274 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS); 5203 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS);
5275 } 5204 }
5276 5205
5277 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot.
5278 #if defined(OS_ANDROID)
5279 #define MAYBE_UploadCreditCard_CvcUnavailableAndNoProfileAvailable \
5280 DISABLED_UploadCreditCard_CvcUnavailableAndNoProfileAvailable
5281 #else
5282 #define MAYBE_UploadCreditCard_CvcUnavailableAndNoProfileAvailable \
5283 UploadCreditCard_CvcUnavailableAndNoProfileAvailable
5284 #endif
5285 TEST_F(AutofillManagerTest, 5206 TEST_F(AutofillManagerTest,
5286 MAYBE_UploadCreditCard_CvcUnavailableAndNoProfileAvailable) { 5207 UploadCreditCard_CvcUnavailableAndNoProfileAvailable) {
5287 EnableUkmLogging(); 5208 EnableUkmLogging();
5288 personal_data_.ClearAutofillProfiles(); 5209 personal_data_.ClearAutofillProfiles();
5289 autofill_manager_->set_credit_card_upload_enabled(true); 5210 autofill_manager_->set_credit_card_upload_enabled(true);
5290 5211
5291 // Don't fill or submit an address form. 5212 // Don't fill or submit an address form.
5292 5213
5293 // Set up our credit card form data. 5214 // Set up our credit card form data.
5294 FormData credit_card_form; 5215 FormData credit_card_form;
5295 CreateTestCreditCardFormData(&credit_card_form, true, false); 5216 CreateTestCreditCardFormData(&credit_card_form, true, false);
5296 FormsSeen(std::vector<FormData>(1, credit_card_form)); 5217 FormsSeen(std::vector<FormData>(1, credit_card_form));
(...skipping 30 matching lines...) Expand all
5327 autofill_client_.test_rappor_service(); 5248 autofill_client_.test_rappor_service();
5328 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5249 EXPECT_EQ(1, rappor_service->GetReportsCount());
5329 std::string sample; 5250 std::string sample;
5330 rappor::RapporType type; 5251 rappor::RapporType type;
5331 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5252 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5332 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 5253 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
5333 EXPECT_EQ("myform.com", sample); 5254 EXPECT_EQ("myform.com", sample);
5334 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5255 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5335 } 5256 }
5336 5257
5337 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5258 TEST_F(AutofillManagerTest, UploadCreditCard_NoNameAvailable) {
5338 #if defined(OS_ANDROID)
5339 #define MAYBE_UploadCreditCard_NoNameAvailable \
5340 DISABLED_UploadCreditCard_NoNameAvailable
5341 #else
5342 #define MAYBE_UploadCreditCard_NoNameAvailable UploadCreditCard_NoNameAvailable
5343 #endif
5344 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NoNameAvailable) {
5345 EnableUkmLogging(); 5259 EnableUkmLogging();
5346 personal_data_.ClearAutofillProfiles(); 5260 personal_data_.ClearAutofillProfiles();
5347 autofill_manager_->set_credit_card_upload_enabled(true); 5261 autofill_manager_->set_credit_card_upload_enabled(true);
5348 5262
5349 // Create, fill and submit an address form in order to establish a recent 5263 // Create, fill and submit an address form in order to establish a recent
5350 // profile which can be selected for the upload request. 5264 // profile which can be selected for the upload request.
5351 FormData address_form; 5265 FormData address_form;
5352 test::CreateTestAddressFormData(&address_form); 5266 test::CreateTestAddressFormData(&address_form);
5353 FormsSeen(std::vector<FormData>(1, address_form)); 5267 FormsSeen(std::vector<FormData>(1, address_form));
5354 // But omit the name: 5268 // But omit the name:
(...skipping 28 matching lines...) Expand all
5383 autofill_client_.test_rappor_service(); 5297 autofill_client_.test_rappor_service();
5384 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5298 EXPECT_EQ(1, rappor_service->GetReportsCount());
5385 std::string sample; 5299 std::string sample;
5386 rappor::RapporType type; 5300 rappor::RapporType type;
5387 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5301 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5388 "Autofill.CardUploadNotOfferedNoName", &sample, &type)); 5302 "Autofill.CardUploadNotOfferedNoName", &sample, &type));
5389 EXPECT_EQ("myform.com", sample); 5303 EXPECT_EQ("myform.com", sample);
5390 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5304 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5391 } 5305 }
5392 5306
5393 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5307 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesConflict) {
5394 #if defined(OS_ANDROID)
5395 #define MAYBE_UploadCreditCard_ZipCodesConflict \
5396 DISABLED_UploadCreditCard_ZipCodesConflict
5397 #else
5398 #define MAYBE_UploadCreditCard_ZipCodesConflict \
5399 UploadCreditCard_ZipCodesConflict
5400 #endif
5401 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_ZipCodesConflict) {
5402 EnableUkmLogging(); 5308 EnableUkmLogging();
5403 personal_data_.ClearAutofillProfiles(); 5309 personal_data_.ClearAutofillProfiles();
5404 autofill_manager_->set_credit_card_upload_enabled(true); 5310 autofill_manager_->set_credit_card_upload_enabled(true);
5405 5311
5406 // Create, fill and submit two address forms with different zip codes. 5312 // Create, fill and submit two address forms with different zip codes.
5407 FormData address_form1, address_form2; 5313 FormData address_form1, address_form2;
5408 test::CreateTestAddressFormData(&address_form1); 5314 test::CreateTestAddressFormData(&address_form1);
5409 test::CreateTestAddressFormData(&address_form2); 5315 test::CreateTestAddressFormData(&address_form2);
5410 5316
5411 std::vector<FormData> address_forms; 5317 std::vector<FormData> address_forms;
(...skipping 29 matching lines...) Expand all
5441 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 5347 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5442 5348
5443 // Verify that the correct histogram entry (and only that) was logged. 5349 // Verify that the correct histogram entry (and only that) was logged.
5444 ExpectUniqueCardUploadDecision( 5350 ExpectUniqueCardUploadDecision(
5445 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); 5351 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS);
5446 // Verify that the correct UKM was logged. 5352 // Verify that the correct UKM was logged.
5447 ExpectCardUploadDecisionUkm( 5353 ExpectCardUploadDecisionUkm(
5448 AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); 5354 AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS);
5449 } 5355 }
5450 5356
5451 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5357 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) {
5452 #if defined(OS_ANDROID)
5453 #define MAYBE_UploadCreditCard_ZipCodesHavePrefixMatch \
5454 DISABLED_UploadCreditCard_ZipCodesHavePrefixMatch
5455 #else
5456 #define MAYBE_UploadCreditCard_ZipCodesHavePrefixMatch \
5457 UploadCreditCard_ZipCodesHavePrefixMatch
5458 #endif
5459 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_ZipCodesHavePrefixMatch) {
5460 EnableUkmLogging(); 5358 EnableUkmLogging();
5461 personal_data_.ClearAutofillProfiles(); 5359 personal_data_.ClearAutofillProfiles();
5462 autofill_manager_->set_credit_card_upload_enabled(true); 5360 autofill_manager_->set_credit_card_upload_enabled(true);
5463 5361
5464 // Create, fill and submit two address forms with different zip codes. 5362 // Create, fill and submit two address forms with different zip codes.
5465 FormData address_form1, address_form2; 5363 FormData address_form1, address_form2;
5466 test::CreateTestAddressFormData(&address_form1); 5364 test::CreateTestAddressFormData(&address_form1);
5467 test::CreateTestAddressFormData(&address_form2); 5365 test::CreateTestAddressFormData(&address_form2);
5468 5366
5469 std::vector<FormData> address_forms; 5367 std::vector<FormData> address_forms;
(...skipping 26 matching lines...) Expand all
5496 FormSubmitted(credit_card_form); 5394 FormSubmitted(credit_card_form);
5497 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5395 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5498 5396
5499 // Verify that the correct histogram entry (and only that) was logged. 5397 // Verify that the correct histogram entry (and only that) was logged.
5500 ExpectUniqueCardUploadDecision(histogram_tester, 5398 ExpectUniqueCardUploadDecision(histogram_tester,
5501 AutofillMetrics::UPLOAD_OFFERED); 5399 AutofillMetrics::UPLOAD_OFFERED);
5502 // Verify that the correct UKM was logged. 5400 // Verify that the correct UKM was logged.
5503 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5401 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5504 } 5402 }
5505 5403
5506 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5404 TEST_F(AutofillManagerTest, UploadCreditCard_NoZipCodeAvailable) {
5507 #if defined(OS_ANDROID)
5508 #define MAYBE_UploadCreditCard_NoZipCodeAvailable \
5509 DISABLED_UploadCreditCard_NoZipCodeAvailable
5510 #else
5511 #define MAYBE_UploadCreditCard_NoZipCodeAvailable \
5512 UploadCreditCard_NoZipCodeAvailable
5513 #endif
5514 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NoZipCodeAvailable) {
5515 EnableUkmLogging(); 5405 EnableUkmLogging();
5516 personal_data_.ClearAutofillProfiles(); 5406 personal_data_.ClearAutofillProfiles();
5517 autofill_manager_->set_credit_card_upload_enabled(true); 5407 autofill_manager_->set_credit_card_upload_enabled(true);
5518 5408
5519 // Create, fill and submit an address form in order to establish a recent 5409 // Create, fill and submit an address form in order to establish a recent
5520 // profile which can be selected for the upload request. 5410 // profile which can be selected for the upload request.
5521 FormData address_form; 5411 FormData address_form;
5522 test::CreateTestAddressFormData(&address_form); 5412 test::CreateTestAddressFormData(&address_form);
5523 FormsSeen(std::vector<FormData>(1, address_form)); 5413 FormsSeen(std::vector<FormData>(1, address_form));
5524 // Autofill's validation requirements for Venezuala ("VE", see 5414 // Autofill's validation requirements for Venezuala ("VE", see
(...skipping 25 matching lines...) Expand all
5550 FormSubmitted(credit_card_form); 5440 FormSubmitted(credit_card_form);
5551 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 5441 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5552 5442
5553 // Verify that the correct histogram entry (and only that) was logged. 5443 // Verify that the correct histogram entry (and only that) was logged.
5554 ExpectUniqueCardUploadDecision( 5444 ExpectUniqueCardUploadDecision(
5555 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); 5445 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE);
5556 // Verify that the correct UKM was logged. 5446 // Verify that the correct UKM was logged.
5557 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); 5447 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE);
5558 } 5448 }
5559 5449
5560 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5450 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleInitial) {
5561 #if defined(OS_ANDROID)
5562 #define MAYBE_UploadCreditCard_CreditCardFormHasMiddleInitial \
5563 DISABLED_UploadCreditCard_CreditCardFormHasMiddleInitial
5564 #else
5565 #define MAYBE_UploadCreditCard_CreditCardFormHasMiddleInitial \
5566 UploadCreditCard_CreditCardFormHasMiddleInitial
5567 #endif
5568 TEST_F(AutofillManagerTest,
5569 MAYBE_UploadCreditCard_CreditCardFormHasMiddleInitial) {
5570 EnableUkmLogging(); 5451 EnableUkmLogging();
5571 personal_data_.ClearAutofillProfiles(); 5452 personal_data_.ClearAutofillProfiles();
5572 autofill_manager_->set_credit_card_upload_enabled(true); 5453 autofill_manager_->set_credit_card_upload_enabled(true);
5573 5454
5574 // Create, fill and submit two address forms with different names. 5455 // Create, fill and submit two address forms with different names.
5575 FormData address_form1, address_form2; 5456 FormData address_form1, address_form2;
5576 test::CreateTestAddressFormData(&address_form1); 5457 test::CreateTestAddressFormData(&address_form1);
5577 test::CreateTestAddressFormData(&address_form2); 5458 test::CreateTestAddressFormData(&address_form2);
5578 FormsSeen({address_form1, address_form2}); 5459 FormsSeen({address_form1, address_form2});
5579 5460
(...skipping 25 matching lines...) Expand all
5605 FormSubmitted(credit_card_form); 5486 FormSubmitted(credit_card_form);
5606 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5487 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5607 5488
5608 // Verify that the correct histogram entry (and only that) was logged. 5489 // Verify that the correct histogram entry (and only that) was logged.
5609 ExpectUniqueCardUploadDecision(histogram_tester, 5490 ExpectUniqueCardUploadDecision(histogram_tester,
5610 AutofillMetrics::UPLOAD_OFFERED); 5491 AutofillMetrics::UPLOAD_OFFERED);
5611 // Verify that the correct UKM was logged. 5492 // Verify that the correct UKM was logged.
5612 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5493 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5613 } 5494 }
5614 5495
5615 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot.
5616 #if defined(OS_ANDROID)
5617 #define MAYBE_UploadCreditCard_CreditCardFormDoesNotHaveMiddleInitial \
5618 DISABLED_UploadCreditCard_CreditCardFormDoesNotHaveMiddleInitial
5619 #else
5620 #define MAYBE_UploadCreditCard_CreditCardFormDoesNotHaveMiddleInitial \
5621 UploadCreditCard_CreditCardFormDoesNotHaveMiddleInitial
5622 #endif
5623 TEST_F(AutofillManagerTest, 5496 TEST_F(AutofillManagerTest,
5624 MAYBE_UploadCreditCard_CreditCardFormDoesNotHaveMiddleInitial) { 5497 UploadCreditCard_CCFormHasMiddleInitial_DisableComparator) {
5498 DisableAutofillUpstreamUseAutofillProfileComparatorForName();
5499 personal_data_.ClearAutofillProfiles();
5500 autofill_manager_->set_credit_card_upload_enabled(true);
5501
5502 // Create, fill and submit two address forms with different names.
5503 FormData address_form1, address_form2;
5504 test::CreateTestAddressFormData(&address_form1);
5505 test::CreateTestAddressFormData(&address_form2);
5506 FormsSeen({address_form1, address_form2});
5507
5508 // Names can be different case.
5509 ManuallyFillAddressForm("flo", "master", "77401", "US", &address_form1);
5510 FormSubmitted(address_form1);
5511
5512 // And they can have a middle initial even if the other names don't.
5513 ManuallyFillAddressForm("Flo W", "Master", "77401", "US", &address_form2);
5514 FormSubmitted(address_form2);
5515
5516 // Set up our credit card form data.
5517 FormData credit_card_form;
5518 CreateTestCreditCardFormData(&credit_card_form, true, false);
5519 FormsSeen({credit_card_form});
5520
5521 // Edit the data, but use the name with a middle initial *and* period, and
5522 // submit.
5523 credit_card_form.fields[0].value = ASCIIToUTF16("Flo W. Master");
5524 credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
5525 credit_card_form.fields[2].value = ASCIIToUTF16("11");
5526 credit_card_form.fields[3].value = ASCIIToUTF16("2017");
5527 credit_card_form.fields[4].value = ASCIIToUTF16("123");
5528
5529 base::HistogramTester histogram_tester;
5530
5531 // Names match loosely, upload should happen.
5532 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5533 FormSubmitted(credit_card_form);
5534 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5535
5536 // Verify that the correct histogram entry (and only that) was logged.
5537 ExpectUniqueCardUploadDecision(histogram_tester,
5538 AutofillMetrics::UPLOAD_OFFERED);
5539 }
5540
5541 TEST_F(AutofillManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) {
5625 EnableUkmLogging(); 5542 EnableUkmLogging();
5626 personal_data_.ClearAutofillProfiles(); 5543 personal_data_.ClearAutofillProfiles();
5627 autofill_manager_->set_credit_card_upload_enabled(true); 5544 autofill_manager_->set_credit_card_upload_enabled(true);
5628 5545
5629 // Create, fill and submit two address forms with different names. 5546 // Create, fill and submit two address forms with different names.
5630 FormData address_form1, address_form2; 5547 FormData address_form1, address_form2;
5631 test::CreateTestAddressFormData(&address_form1); 5548 test::CreateTestAddressFormData(&address_form1);
5632 test::CreateTestAddressFormData(&address_form2); 5549 test::CreateTestAddressFormData(&address_form2);
5633 FormsSeen({address_form1, address_form2}); 5550 FormsSeen({address_form1, address_form2});
5634 5551
(...skipping 22 matching lines...) Expand all
5657 FormSubmitted(credit_card_form); 5574 FormSubmitted(credit_card_form);
5658 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5575 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5659 5576
5660 // Verify that the correct histogram entry (and only that) was logged. 5577 // Verify that the correct histogram entry (and only that) was logged.
5661 ExpectUniqueCardUploadDecision(histogram_tester, 5578 ExpectUniqueCardUploadDecision(histogram_tester,
5662 AutofillMetrics::UPLOAD_OFFERED); 5579 AutofillMetrics::UPLOAD_OFFERED);
5663 // Verify that the correct UKM was logged. 5580 // Verify that the correct UKM was logged.
5664 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5581 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5665 } 5582 }
5666 5583
5667 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot.
5668 #if defined(OS_ANDROID)
5669 #define MAYBE_UploadCreditCard_CreditCardFormHasMiddleName \
5670 DISABLED_UploadCreditCard_CreditCardFormHasMiddleName
5671 #else
5672 #define MAYBE_UploadCreditCard_CreditCardFormHasMiddleName \
5673 UploadCreditCard_CreditCardFormHasMiddleName
5674 #endif
5675 TEST_F(AutofillManagerTest, 5584 TEST_F(AutofillManagerTest,
5676 MAYBE_UploadCreditCard_CreditCardFormHasMiddleName) { 5585 UploadCreditCard_NoMiddleInitialInCCForm_DisableComparator) {
5586 DisableAutofillUpstreamUseAutofillProfileComparatorForName();
5587 personal_data_.ClearAutofillProfiles();
5588 autofill_manager_->set_credit_card_upload_enabled(true);
5589
5590 // Create, fill and submit two address forms with different names.
5591 FormData address_form1, address_form2;
5592 test::CreateTestAddressFormData(&address_form1);
5593 test::CreateTestAddressFormData(&address_form2);
5594 FormsSeen({address_form1, address_form2});
5595
5596 // Names can have different variations of middle initials.
5597 ManuallyFillAddressForm("flo w.", "master", "77401", "US", &address_form1);
5598 FormSubmitted(address_form1);
5599 ManuallyFillAddressForm("Flo W", "Master", "77401", "US", &address_form2);
5600 FormSubmitted(address_form2);
5601
5602 // Set up our credit card form data.
5603 FormData credit_card_form;
5604 CreateTestCreditCardFormData(&credit_card_form, true, false);
5605 FormsSeen({credit_card_form});
5606
5607 // Edit the data, but do not use middle initial.
5608 credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
5609 credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
5610 credit_card_form.fields[2].value = ASCIIToUTF16("11");
5611 credit_card_form.fields[3].value = ASCIIToUTF16("2017");
5612 credit_card_form.fields[4].value = ASCIIToUTF16("123");
5613
5614 base::HistogramTester histogram_tester;
5615
5616 // Names match loosely, upload should happen.
5617 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5618 FormSubmitted(credit_card_form);
5619 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5620
5621 // Verify that the correct histogram entry (and only that) was logged.
5622 ExpectUniqueCardUploadDecision(histogram_tester,
5623 AutofillMetrics::UPLOAD_OFFERED);
5624 }
5625
5626 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleName) {
5677 EnableUkmLogging(); 5627 EnableUkmLogging();
5678 personal_data_.ClearAutofillProfiles(); 5628 personal_data_.ClearAutofillProfiles();
5679 autofill_manager_->set_credit_card_upload_enabled(true); 5629 autofill_manager_->set_credit_card_upload_enabled(true);
5680 5630
5681 // Create, fill and submit address form without middle name. 5631 // Create, fill and submit address form without middle name.
5682 FormData address_form; 5632 FormData address_form;
5683 test::CreateTestAddressFormData(&address_form); 5633 test::CreateTestAddressFormData(&address_form);
5684 FormsSeen({address_form}); 5634 FormsSeen({address_form});
5685 ManuallyFillAddressForm("John", "Adams", "77401", "US", &address_form); 5635 ManuallyFillAddressForm("John", "Adams", "77401", "US", &address_form);
5686 FormSubmitted(address_form); 5636 FormSubmitted(address_form);
(...skipping 17 matching lines...) Expand all
5704 FormSubmitted(credit_card_form); 5654 FormSubmitted(credit_card_form);
5705 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5655 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5706 5656
5707 // Verify that the correct histogram entry (and only that) was logged. 5657 // Verify that the correct histogram entry (and only that) was logged.
5708 ExpectUniqueCardUploadDecision(histogram_tester, 5658 ExpectUniqueCardUploadDecision(histogram_tester,
5709 AutofillMetrics::UPLOAD_OFFERED); 5659 AutofillMetrics::UPLOAD_OFFERED);
5710 // Verify that the correct UKM was logged. 5660 // Verify that the correct UKM was logged.
5711 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5661 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5712 } 5662 }
5713 5663
5714 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot.
5715 #if defined(OS_ANDROID)
5716 #define MAYBE_UploadCreditCard_CreditCardFormRemovesMiddleName \
5717 DISABLED_UploadCreditCard_CreditCardFormRemovesMiddleName
5718 #else
5719 #define MAYBE_UploadCreditCard_CreditCardFormRemovesMiddleName \
5720 UploadCreditCard_CreditCardFormRemovesMiddleName
5721 #endif
5722 TEST_F(AutofillManagerTest, 5664 TEST_F(AutofillManagerTest,
5723 MAYBE_UploadCreditCard_CreditCardFormRemovesMiddleName) { 5665 UploadCreditCard_CCFormHasMiddleName_DisableComparator) {
5666 DisableAutofillUpstreamUseAutofillProfileComparatorForName();
5667 personal_data_.ClearAutofillProfiles();
5668 autofill_manager_->set_credit_card_upload_enabled(true);
5669
5670 // Create, fill and submit address form without middle name.
5671 FormData address_form;
5672 test::CreateTestAddressFormData(&address_form);
5673 FormsSeen({address_form});
5674 ManuallyFillAddressForm("John", "Adams", "77401", "US", &address_form);
5675 FormSubmitted(address_form);
5676
5677 // Set up our credit card form data.
5678 FormData credit_card_form;
5679 CreateTestCreditCardFormData(&credit_card_form, true, false);
5680 FormsSeen({credit_card_form});
5681
5682 // Edit the name by adding a middle name.
5683 credit_card_form.fields[0].value = ASCIIToUTF16("John Quincy Adams");
5684 credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
5685 credit_card_form.fields[2].value = ASCIIToUTF16("11");
5686 credit_card_form.fields[3].value = ASCIIToUTF16("2017");
5687 credit_card_form.fields[4].value = ASCIIToUTF16("123");
5688
5689 base::HistogramTester histogram_tester;
5690
5691 // Names match loosely but we have disabled comparator. Upload should not
5692 // happen.
5693 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5694 FormSubmitted(credit_card_form);
5695 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5696
5697 // Verify that the correct histogram entry (and only that) was logged.
5698 ExpectUniqueCardUploadDecision(
5699 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES);
5700 }
5701
5702 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormRemovesMiddleName) {
5724 EnableUkmLogging(); 5703 EnableUkmLogging();
5725 personal_data_.ClearAutofillProfiles(); 5704 personal_data_.ClearAutofillProfiles();
5726 autofill_manager_->set_credit_card_upload_enabled(true); 5705 autofill_manager_->set_credit_card_upload_enabled(true);
5727 5706
5728 // Create, fill and submit address form with middle name. 5707 // Create, fill and submit address form with middle name.
5729 FormData address_form; 5708 FormData address_form;
5730 test::CreateTestAddressFormData(&address_form); 5709 test::CreateTestAddressFormData(&address_form);
5731 FormsSeen({address_form}); 5710 FormsSeen({address_form});
5732 ManuallyFillAddressForm("John Quincy", "Adams", "77401", "US", &address_form); 5711 ManuallyFillAddressForm("John Quincy", "Adams", "77401", "US", &address_form);
5733 FormSubmitted(address_form); 5712 FormSubmitted(address_form);
(...skipping 17 matching lines...) Expand all
5751 FormSubmitted(credit_card_form); 5730 FormSubmitted(credit_card_form);
5752 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5731 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5753 5732
5754 // Verify that the correct histogram entry (and only that) was logged. 5733 // Verify that the correct histogram entry (and only that) was logged.
5755 ExpectUniqueCardUploadDecision(histogram_tester, 5734 ExpectUniqueCardUploadDecision(histogram_tester,
5756 AutofillMetrics::UPLOAD_OFFERED); 5735 AutofillMetrics::UPLOAD_OFFERED);
5757 // Verify that the correct UKM was logged. 5736 // Verify that the correct UKM was logged.
5758 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5737 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5759 } 5738 }
5760 5739
5761 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5740 TEST_F(AutofillManagerTest, UploadCreditCard_NamesHaveToMatch) {
5762 #if defined(OS_ANDROID)
5763 #define MAYBE_UploadCreditCard_NamesHaveToMatch \
5764 DISABLED_UploadCreditCard_NamesHaveToMatch
5765 #else
5766 #define MAYBE_UploadCreditCard_NamesHaveToMatch \
5767 UploadCreditCard_NamesHaveToMatch
5768 #endif
5769 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_NamesHaveToMatch) {
5770 EnableUkmLogging(); 5741 EnableUkmLogging();
5771 personal_data_.ClearAutofillProfiles(); 5742 personal_data_.ClearAutofillProfiles();
5772 autofill_manager_->set_credit_card_upload_enabled(true); 5743 autofill_manager_->set_credit_card_upload_enabled(true);
5773 5744
5774 // Create, fill and submit two address forms with different names. 5745 // Create, fill and submit two address forms with different names.
5775 FormData address_form1, address_form2; 5746 FormData address_form1, address_form2;
5776 test::CreateTestAddressFormData(&address_form1); 5747 test::CreateTestAddressFormData(&address_form1);
5777 test::CreateTestAddressFormData(&address_form2); 5748 test::CreateTestAddressFormData(&address_form2);
5778 5749
5779 std::vector<FormData> address_forms; 5750 std::vector<FormData> address_forms;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
5865 // Name matches recently used profile, should offer upload. 5836 // Name matches recently used profile, should offer upload.
5866 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0); 5837 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5867 FormSubmitted(credit_card_form); 5838 FormSubmitted(credit_card_form);
5868 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5839 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5869 5840
5870 // Verify that the correct histogram entry (and only that) was logged. 5841 // Verify that the correct histogram entry (and only that) was logged.
5871 ExpectUniqueCardUploadDecision(histogram_tester, 5842 ExpectUniqueCardUploadDecision(histogram_tester,
5872 AutofillMetrics::UPLOAD_OFFERED); 5843 AutofillMetrics::UPLOAD_OFFERED);
5873 } 5844 }
5874 5845
5875 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5846 TEST_F(AutofillManagerTest,
5876 #if defined(OS_ANDROID) 5847 UploadCreditCard_NamesHaveToMatch_DisableComparator) {
5877 #define MAYBE_UploadCreditCard_UploadDetailsFails \ 5848 DisableAutofillUpstreamUseAutofillProfileComparatorForName();
5878 DISABLED_UploadCreditCard_UploadDetailsFails 5849 personal_data_.ClearAutofillProfiles();
5879 #else 5850 autofill_manager_->set_credit_card_upload_enabled(true);
5880 #define MAYBE_UploadCreditCard_UploadDetailsFails \ 5851
5881 UploadCreditCard_UploadDetailsFails 5852 // Create, fill and submit two address forms with different names.
5882 #endif 5853 FormData address_form1, address_form2;
5883 TEST_F(AutofillManagerTest, MAYBE_UploadCreditCard_UploadDetailsFails) { 5854 test::CreateTestAddressFormData(&address_form1);
5855 test::CreateTestAddressFormData(&address_form2);
5856
5857 std::vector<FormData> address_forms;
5858 address_forms.push_back(address_form1);
5859 address_forms.push_back(address_form2);
5860 FormsSeen(address_forms);
5861
5862 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form1);
5863 FormSubmitted(address_form1);
5864
5865 ManuallyFillAddressForm("Master", "Blaster", "77401", "US", &address_form2);
5866 FormSubmitted(address_form2);
5867
5868 // Set up our credit card form data.
5869 FormData credit_card_form;
5870 CreateTestCreditCardFormData(&credit_card_form, true, false);
5871 FormsSeen(std::vector<FormData>(1, credit_card_form));
5872
5873 // Edit the data, but use yet another name, and submit.
5874 credit_card_form.fields[0].value = ASCIIToUTF16("Bob Master");
5875 credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
5876 credit_card_form.fields[2].value = ASCIIToUTF16("11");
5877 credit_card_form.fields[3].value = ASCIIToUTF16("2017");
5878 credit_card_form.fields[4].value = ASCIIToUTF16("123");
5879
5880 base::HistogramTester histogram_tester;
5881
5882 // Names are required to match, upload should not happen.
5883 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5884 FormSubmitted(credit_card_form);
5885 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5886
5887 // Verify that the correct histogram entry (and only that) was logged.
5888 ExpectUniqueCardUploadDecision(
5889 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES);
5890 }
5891
5892 TEST_F(AutofillManagerTest, UploadCreditCard_UploadDetailsFails) {
5884 EnableUkmLogging(); 5893 EnableUkmLogging();
5885 personal_data_.ClearAutofillProfiles(); 5894 personal_data_.ClearAutofillProfiles();
5886 autofill_manager_->set_credit_card_upload_enabled(true); 5895 autofill_manager_->set_credit_card_upload_enabled(true);
5887 5896
5888 // Anything other than "en-US" will cause GetUploadDetails to return a failure 5897 // Anything other than "en-US" will cause GetUploadDetails to return a failure
5889 // response. 5898 // response.
5890 autofill_manager_->set_app_locale("pt-BR"); 5899 autofill_manager_->set_app_locale("pt-BR");
5891 5900
5892 // Create, fill and submit an address form in order to establish a recent 5901 // Create, fill and submit an address form in order to establish a recent
5893 // profile which can be selected for the upload request. 5902 // profile which can be selected for the upload request.
(...skipping 24 matching lines...) Expand all
5918 5927
5919 // Verify that the correct histogram entry (and only that) was logged. 5928 // Verify that the correct histogram entry (and only that) was logged.
5920 ExpectUniqueCardUploadDecision( 5929 ExpectUniqueCardUploadDecision(
5921 histogram_tester, 5930 histogram_tester,
5922 AutofillMetrics::UPLOAD_NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED); 5931 AutofillMetrics::UPLOAD_NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED);
5923 // Verify that the correct UKM was logged. 5932 // Verify that the correct UKM was logged.
5924 ExpectCardUploadDecisionUkm( 5933 ExpectCardUploadDecisionUkm(
5925 AutofillMetrics::UPLOAD_NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED); 5934 AutofillMetrics::UPLOAD_NOT_OFFERED_GET_UPLOAD_DETAILS_FAILED);
5926 } 5935 }
5927 5936
5928 // TODO(crbug.com/666704): Flaky on android_n5x_swarming_rel bot. 5937 TEST_F(AutofillManagerTest, DuplicateMaskedCreditCard) {
5929 #if defined(OS_ANDROID)
5930 #define MAYBE_DuplicateMaskedCreditCard DISABLED_DuplicatedMaskedCreditCard
5931 #else
5932 #define MAYBE_DuplicateMaskedCreditCard DuplicateMaskedCreditCard
5933 #endif
5934 TEST_F(AutofillManagerTest, MAYBE_DuplicateMaskedCreditCard) {
5935 personal_data_.ClearAutofillProfiles(); 5938 personal_data_.ClearAutofillProfiles();
5936 autofill_manager_->set_credit_card_upload_enabled(true); 5939 autofill_manager_->set_credit_card_upload_enabled(true);
5937 autofill_manager_->set_app_locale("en-US"); 5940 autofill_manager_->set_app_locale("en-US");
5938 5941
5939 // Create, fill and submit an address form in order to establish a recent 5942 // Create, fill and submit an address form in order to establish a recent
5940 // profile which can be selected for the upload request. 5943 // profile which can be selected for the upload request.
5941 FormData address_form; 5944 FormData address_form;
5942 test::CreateTestAddressFormData(&address_form); 5945 test::CreateTestAddressFormData(&address_form);
5943 FormsSeen(std::vector<FormData>(1, address_form)); 5946 FormsSeen(std::vector<FormData>(1, address_form));
5944 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form); 5947 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
6578 6581
6579 // Wait for upload to complete (will check expected types as well). 6582 // Wait for upload to complete (will check expected types as well).
6580 autofill_manager_->WaitForAsyncUploadProcess(); 6583 autofill_manager_->WaitForAsyncUploadProcess();
6581 6584
6582 EXPECT_EQ(signature, autofill_manager_->GetSubmittedFormSignature()); 6585 EXPECT_EQ(signature, autofill_manager_->GetSubmittedFormSignature());
6583 EXPECT_NE(uploaded_available_types.end(), 6586 EXPECT_NE(uploaded_available_types.end(),
6584 uploaded_available_types.find(autofill::PASSWORD)); 6587 uploaded_available_types.find(autofill::PASSWORD));
6585 } 6588 }
6586 6589
6587 } // namespace autofill 6590 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698