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

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

Issue 2874413004: [Autofill] Enable Autofill UKM by default. (Closed)
Patch Set: Fixed all but one test 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
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 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 DCHECK(autofill_manager_->full_card_request_); 1063 DCHECK(autofill_manager_->full_card_request_);
1064 return static_cast<CardUnmaskDelegate*>( 1064 return static_cast<CardUnmaskDelegate*>(
1065 autofill_manager_->full_card_request_.get()); 1065 autofill_manager_->full_card_request_.get());
1066 } 1066 }
1067 1067
1068 void SetHttpWarningEnabled() { 1068 void SetHttpWarningEnabled() {
1069 scoped_feature_list_.InitAndEnableFeature( 1069 scoped_feature_list_.InitAndEnableFeature(
1070 security_state::kHttpFormWarningFeature); 1070 security_state::kHttpFormWarningFeature);
1071 } 1071 }
1072 1072
1073 void EnableUkmLogging() {
1074 scoped_feature_list_.InitAndEnableFeature(kAutofillUkmLogging);
1075 }
1076
1077 void EnableAutofillUpstreamRequestCvcIfMissingExperimentAndUkmLogging() { 1073 void EnableAutofillUpstreamRequestCvcIfMissingExperimentAndUkmLogging() {
csashi 2017/05/15 23:46:33 Update function name?
sebsg 2017/05/16 01:06:25 Done.
1078 scoped_feature_list_.InitWithFeatures( 1074 scoped_feature_list_.InitWithFeatures(
1079 {kAutofillUpstreamRequestCvcIfMissing, kAutofillUkmLogging}, {}); 1075 {kAutofillUpstreamRequestCvcIfMissing}, {});
1080 } 1076 }
1081 1077
1082 void DisableAutofillUpstreamUseAutofillProfileComparatorForName() { 1078 void DisableAutofillUpstreamUseAutofillProfileComparatorForName() {
1083 scoped_feature_list_.InitAndDisableFeature( 1079 scoped_feature_list_.InitAndDisableFeature(
1084 kAutofillUpstreamUseAutofillProfileComparatorForName); 1080 kAutofillUpstreamUseAutofillProfileComparatorForName);
1085 } 1081 }
1086 1082
1087 void ExpectUniqueFillableFormParsedUkm() { 1083 void ExpectUniqueFillableFormParsedUkm() {
1088 ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService(); 1084 ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
1089 1085
(...skipping 2582 matching lines...) Expand 10 before | Expand all | Expand 10 after
3672 // Verify that FormStructure::ParseQueryResponse was NOT called. 3668 // Verify that FormStructure::ParseQueryResponse was NOT called.
3673 histogram_tester.ExpectTotalCount("Autofill.ServerQueryResponse", 0); 3669 histogram_tester.ExpectTotalCount("Autofill.ServerQueryResponse", 0);
3674 } 3670 }
3675 3671
3676 // Test that we are able to save form data when forms are submitted and we only 3672 // Test that we are able to save form data when forms are submitted and we only
3677 // have server data for the field types. 3673 // have server data for the field types.
3678 TEST_F(AutofillManagerTest, FormSubmittedServerTypes) { 3674 TEST_F(AutofillManagerTest, FormSubmittedServerTypes) {
3679 // Set up our form data. 3675 // Set up our form data.
3680 FormData form; 3676 FormData form;
3681 test::CreateTestAddressFormData(&form); 3677 test::CreateTestAddressFormData(&form);
3678 FormsSeen(std::vector<FormData>(1, form));
3682 3679
3683 // Simulate having seen this form on page load. 3680 // Simulate having seen this form on page load.
3684 // |form_structure| will be owned by |autofill_manager_|. 3681 // |form_structure| will be owned by |autofill_manager_|.
3685 TestFormStructure* form_structure = new TestFormStructure(form); 3682 TestFormStructure* form_structure = new TestFormStructure(form);
3686 form_structure->DetermineHeuristicTypes(nullptr /* ukm_service */); 3683 form_structure->DetermineHeuristicTypes(nullptr /* ukm_service */);
3687 3684
3688 // Clear the heuristic types, and instead set the appropriate server types. 3685 // Clear the heuristic types, and instead set the appropriate server types.
3689 std::vector<ServerFieldType> heuristic_types, server_types; 3686 std::vector<ServerFieldType> heuristic_types, server_types;
3690 for (size_t i = 0; i < form.fields.size(); ++i) { 3687 for (size_t i = 0; i < form.fields.size(); ++i) {
3691 heuristic_types.push_back(UNKNOWN_TYPE); 3688 heuristic_types.push_back(UNKNOWN_TYPE);
(...skipping 19 matching lines...) Expand all
3711 } 3708 }
3712 3709
3713 // Test that we are able to save form data after the possible types have been 3710 // Test that we are able to save form data after the possible types have been
3714 // determined. We do two submissions and verify that only at the second 3711 // determined. We do two submissions and verify that only at the second
3715 // submission are the possible types able to be inferred. 3712 // submission are the possible types able to be inferred.
3716 TEST_F(AutofillManagerTest, FormSubmittedPossibleTypesTwoSubmissions) { 3713 TEST_F(AutofillManagerTest, FormSubmittedPossibleTypesTwoSubmissions) {
3717 // Set up our form data. 3714 // Set up our form data.
3718 FormData form; 3715 FormData form;
3719 std::vector<ServerFieldTypeSet> expected_types; 3716 std::vector<ServerFieldTypeSet> expected_types;
3720 test::CreateTestAddressFormData(&form, &expected_types); 3717 test::CreateTestAddressFormData(&form, &expected_types);
3718 FormsSeen(std::vector<FormData>(1, form));
3721 3719
3722 // Fill the form. 3720 // Fill the form.
3723 const char guid[] = "00000000-0000-0000-0000-000000000001"; 3721 const char guid[] = "00000000-0000-0000-0000-000000000001";
3724 int response_page_id = 0; 3722 int response_page_id = 0;
3725 FormData response_data; 3723 FormData response_data;
3726 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[0], 3724 FillAutofillFormDataAndSaveResults(kDefaultPageID, form, form.fields[0],
3727 MakeFrontendID(std::string(), guid), 3725 MakeFrontendID(std::string(), guid),
3728 &response_page_id, &response_data); 3726 &response_page_id, &response_data);
3729 ExpectFilledAddressFormElvis(response_page_id, response_data, kDefaultPageID, 3727 ExpectFilledAddressFormElvis(response_page_id, response_data, kDefaultPageID,
3730 false); 3728 false);
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after
4631 response.should_store_pan = false; 4629 response.should_store_pan = false;
4632 response.cvc = ASCIIToUTF16("123"); 4630 response.cvc = ASCIIToUTF16("123");
4633 response.exp_month = ASCIIToUTF16("02"); 4631 response.exp_month = ASCIIToUTF16("02");
4634 response.exp_year = ASCIIToUTF16("2018"); 4632 response.exp_year = ASCIIToUTF16("2018");
4635 full_card_unmask_delegate()->OnUnmaskResponse(response); 4633 full_card_unmask_delegate()->OnUnmaskResponse(response);
4636 autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS, 4634 autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS,
4637 "4012888888881881"); 4635 "4012888888881881");
4638 } 4636 }
4639 4637
4640 TEST_F(AutofillManagerTest, UploadCreditCard) { 4638 TEST_F(AutofillManagerTest, UploadCreditCard) {
4641 EnableUkmLogging();
4642 personal_data_.ClearCreditCards(); 4639 personal_data_.ClearCreditCards();
4643 personal_data_.ClearAutofillProfiles(); 4640 personal_data_.ClearAutofillProfiles();
4644 autofill_manager_->set_credit_card_upload_enabled(true); 4641 autofill_manager_->set_credit_card_upload_enabled(true);
4645 4642
4646 // 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
4647 // profile which can be selected for the upload request. 4644 // profile which can be selected for the upload request.
4648 FormData address_form; 4645 FormData address_form;
4649 test::CreateTestAddressFormData(&address_form); 4646 test::CreateTestAddressFormData(&address_form);
4650 FormsSeen(std::vector<FormData>(1, address_form)); 4647 FormsSeen(std::vector<FormData>(1, address_form));
4651 ExpectUniqueFillableFormParsedUkm(); 4648 ExpectUniqueFillableFormParsedUkm();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
4763 // The save prompt should be shown instead of doing an upload. 4760 // The save prompt should be shown instead of doing an upload.
4764 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)); 4761 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _));
4765 FormSubmitted(credit_card_form); 4762 FormSubmitted(credit_card_form);
4766 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 4763 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
4767 4764
4768 // Verify that no histogram entry was logged. 4765 // Verify that no histogram entry was logged.
4769 histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0); 4766 histogram_tester.ExpectTotalCount("Autofill.CardUploadDecisionMetric", 0);
4770 } 4767 }
4771 4768
4772 TEST_F(AutofillManagerTest, UploadCreditCard_CvcUnavailable) { 4769 TEST_F(AutofillManagerTest, UploadCreditCard_CvcUnavailable) {
4773 EnableUkmLogging();
4774 personal_data_.ClearAutofillProfiles(); 4770 personal_data_.ClearAutofillProfiles();
4775 autofill_manager_->set_credit_card_upload_enabled(true); 4771 autofill_manager_->set_credit_card_upload_enabled(true);
4776 4772
4777 // Create, fill and submit an address form in order to establish a recent 4773 // Create, fill and submit an address form in order to establish a recent
4778 // profile which can be selected for the upload request. 4774 // profile which can be selected for the upload request.
4779 FormData address_form; 4775 FormData address_form;
4780 test::CreateTestAddressFormData(&address_form); 4776 test::CreateTestAddressFormData(&address_form);
4781 FormsSeen(std::vector<FormData>(1, address_form)); 4777 FormsSeen(std::vector<FormData>(1, address_form));
4782 ExpectUniqueFillableFormParsedUkm(); 4778 ExpectUniqueFillableFormParsedUkm();
4783 4779
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
4815 EXPECT_EQ(1, rappor_service->GetReportsCount()); 4811 EXPECT_EQ(1, rappor_service->GetReportsCount());
4816 std::string sample; 4812 std::string sample;
4817 rappor::RapporType type; 4813 rappor::RapporType type;
4818 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 4814 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
4819 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 4815 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
4820 EXPECT_EQ("myform.com", sample); 4816 EXPECT_EQ("myform.com", sample);
4821 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 4817 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
4822 } 4818 }
4823 4819
4824 TEST_F(AutofillManagerTest, UploadCreditCard_CvcInvalidLength) { 4820 TEST_F(AutofillManagerTest, UploadCreditCard_CvcInvalidLength) {
4825 EnableUkmLogging();
4826 personal_data_.ClearAutofillProfiles(); 4821 personal_data_.ClearAutofillProfiles();
4827 autofill_manager_->set_credit_card_upload_enabled(true); 4822 autofill_manager_->set_credit_card_upload_enabled(true);
4828 4823
4829 // Create, fill and submit an address form in order to establish a recent 4824 // Create, fill and submit an address form in order to establish a recent
4830 // profile which can be selected for the upload request. 4825 // profile which can be selected for the upload request.
4831 FormData address_form; 4826 FormData address_form;
4832 test::CreateTestAddressFormData(&address_form); 4827 test::CreateTestAddressFormData(&address_form);
4833 FormsSeen(std::vector<FormData>(1, address_form)); 4828 FormsSeen(std::vector<FormData>(1, address_form));
4834 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form); 4829 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
4835 FormSubmitted(address_form); 4830 FormSubmitted(address_form);
(...skipping 28 matching lines...) Expand all
4864 EXPECT_EQ(1, rappor_service->GetReportsCount()); 4859 EXPECT_EQ(1, rappor_service->GetReportsCount());
4865 std::string sample; 4860 std::string sample;
4866 rappor::RapporType type; 4861 rappor::RapporType type;
4867 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 4862 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
4868 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 4863 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
4869 EXPECT_EQ("myform.com", sample); 4864 EXPECT_EQ("myform.com", sample);
4870 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 4865 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
4871 } 4866 }
4872 4867
4873 TEST_F(AutofillManagerTest, UploadCreditCard_MultipleCvcFields) { 4868 TEST_F(AutofillManagerTest, UploadCreditCard_MultipleCvcFields) {
4874 EnableUkmLogging();
4875 autofill_manager_->set_credit_card_upload_enabled(true); 4869 autofill_manager_->set_credit_card_upload_enabled(true);
4876 4870
4877 // Remove the profiles that were created in the TestPersonalDataManager 4871 // Remove the profiles that were created in the TestPersonalDataManager
4878 // constructor because they would result in conflicting names that would 4872 // constructor because they would result in conflicting names that would
4879 // prevent the upload. 4873 // prevent the upload.
4880 personal_data_.ClearAutofillProfiles(); 4874 personal_data_.ClearAutofillProfiles();
4881 4875
4882 // Create, fill and submit an address form in order to establish a recent 4876 // Create, fill and submit an address form in order to establish a recent
4883 // profile which can be selected for the upload request. 4877 // profile which can be selected for the upload request.
4884 FormData address_form; 4878 FormData address_form;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
4925 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 4919 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
4926 4920
4927 // Verify that the correct histogram entry (and only that) was logged. 4921 // Verify that the correct histogram entry (and only that) was logged.
4928 ExpectUniqueCardUploadDecision(histogram_tester, 4922 ExpectUniqueCardUploadDecision(histogram_tester,
4929 AutofillMetrics::UPLOAD_OFFERED); 4923 AutofillMetrics::UPLOAD_OFFERED);
4930 // Verify that the correct UKM was logged. 4924 // Verify that the correct UKM was logged.
4931 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 4925 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
4932 } 4926 }
4933 4927
4934 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnForm) { 4928 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnForm) {
4935 EnableUkmLogging();
4936 autofill_manager_->set_credit_card_upload_enabled(true); 4929 autofill_manager_->set_credit_card_upload_enabled(true);
4937 4930
4938 // Remove the profiles that were created in the TestPersonalDataManager 4931 // Remove the profiles that were created in the TestPersonalDataManager
4939 // constructor because they would result in conflicting names that would 4932 // constructor because they would result in conflicting names that would
4940 // prevent the upload. 4933 // prevent the upload.
4941 personal_data_.ClearAutofillProfiles(); 4934 personal_data_.ClearAutofillProfiles();
4942 4935
4943 // Create, fill and submit an address form in order to establish a recent 4936 // Create, fill and submit an address form in order to establish a recent
4944 // profile which can be selected for the upload request. 4937 // profile which can be selected for the upload request.
4945 FormData address_form; 4938 FormData address_form;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
4988 4981
4989 #if defined(OS_ANDROID) 4982 #if defined(OS_ANDROID)
4990 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField \ 4983 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField \
4991 DISABLED_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField 4984 DISABLED_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField
4992 #else 4985 #else
4993 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField \ 4986 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField \
4994 UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField 4987 UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField
4995 #endif 4988 #endif
4996 TEST_F(AutofillManagerTest, 4989 TEST_F(AutofillManagerTest,
4997 MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField) { 4990 MAYBE_UploadCreditCard_NoCvcFieldOnForm_InvalidCvcInNonCvcField) {
4998 EnableUkmLogging();
4999 autofill_manager_->set_credit_card_upload_enabled(true); 4991 autofill_manager_->set_credit_card_upload_enabled(true);
5000 4992
5001 // Remove the profiles that were created in the TestPersonalDataManager 4993 // Remove the profiles that were created in the TestPersonalDataManager
5002 // constructor because they would result in conflicting names that would 4994 // constructor because they would result in conflicting names that would
5003 // prevent the upload. 4995 // prevent the upload.
5004 personal_data_.ClearAutofillProfiles(); 4996 personal_data_.ClearAutofillProfiles();
5005 4997
5006 // Create, fill and submit an address form in order to establish a recent 4998 // Create, fill and submit an address form in order to establish a recent
5007 // profile which can be selected for the upload request. 4999 // profile which can be selected for the upload request.
5008 FormData address_form; 5000 FormData address_form;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
5054 5046
5055 #if defined(OS_ANDROID) 5047 #if defined(OS_ANDROID)
5056 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField \ 5048 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField \
5057 DISABLED_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField 5049 DISABLED_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField
5058 #else 5050 #else
5059 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField \ 5051 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField \
5060 UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField 5052 UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField
5061 #endif 5053 #endif
5062 TEST_F(AutofillManagerTest, 5054 TEST_F(AutofillManagerTest,
5063 MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField) { 5055 MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInNonCvcField) {
5064 EnableUkmLogging();
5065 autofill_manager_->set_credit_card_upload_enabled(true); 5056 autofill_manager_->set_credit_card_upload_enabled(true);
5066 5057
5067 // Remove the profiles that were created in the TestPersonalDataManager 5058 // Remove the profiles that were created in the TestPersonalDataManager
5068 // constructor because they would result in conflicting names that would 5059 // constructor because they would result in conflicting names that would
5069 // prevent the upload. 5060 // prevent the upload.
5070 personal_data_.ClearAutofillProfiles(); 5061 personal_data_.ClearAutofillProfiles();
5071 5062
5072 // Create, fill and submit an address form in order to establish a recent 5063 // Create, fill and submit an address form in order to establish a recent
5073 // profile which can be selected for the upload request. 5064 // profile which can be selected for the upload request.
5074 FormData address_form; 5065 FormData address_form;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
5122 5113
5123 #if defined(OS_ANDROID) 5114 #if defined(OS_ANDROID)
5124 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField \ 5115 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField \
5125 DISABLED_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField 5116 DISABLED_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField
5126 #else 5117 #else
5127 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField \ 5118 #define MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField \
5128 UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField 5119 UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField
5129 #endif 5120 #endif
5130 TEST_F(AutofillManagerTest, 5121 TEST_F(AutofillManagerTest,
5131 MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField) { 5122 MAYBE_UploadCreditCard_NoCvcFieldOnForm_CvcInAddressField) {
5132 EnableUkmLogging();
5133 autofill_manager_->set_credit_card_upload_enabled(true); 5123 autofill_manager_->set_credit_card_upload_enabled(true);
5134 5124
5135 // Remove the profiles that were created in the TestPersonalDataManager 5125 // Remove the profiles that were created in the TestPersonalDataManager
5136 // constructor because they would result in conflicting names that would 5126 // constructor because they would result in conflicting names that would
5137 // prevent the upload. 5127 // prevent the upload.
5138 personal_data_.ClearAutofillProfiles(); 5128 personal_data_.ClearAutofillProfiles();
5139 5129
5140 // Create, fill and submit an address form in order to establish a recent 5130 // Create, fill and submit an address form in order to establish a recent
5141 // profile which can be selected for the upload request. 5131 // profile which can be selected for the upload request.
5142 FormData address_form; 5132 FormData address_form;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
5249 AutofillMetrics::CVC_FIELD_NOT_FOUND); 5239 AutofillMetrics::CVC_FIELD_NOT_FOUND);
5250 // Verify that the correct UKM was logged. 5240 // Verify that the correct UKM was logged.
5251 ExpectMetric( 5241 ExpectMetric(
5252 internal::kUKMCardUploadDecisionMetricName, 5242 internal::kUKMCardUploadDecisionMetricName,
5253 internal::kUKMCardUploadDecisionEntryName, 5243 internal::kUKMCardUploadDecisionEntryName,
5254 AutofillMetrics::UPLOAD_OFFERED | AutofillMetrics::CVC_FIELD_NOT_FOUND, 5244 AutofillMetrics::UPLOAD_OFFERED | AutofillMetrics::CVC_FIELD_NOT_FOUND,
5255 1 /* expected_num_matching_entries */); 5245 1 /* expected_num_matching_entries */);
5256 } 5246 }
5257 5247
5258 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) { 5248 TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) {
5259 EnableUkmLogging();
5260 autofill_manager_->set_credit_card_upload_enabled(true); 5249 autofill_manager_->set_credit_card_upload_enabled(true);
5261 5250
5262 // Remove the profiles that were created in the TestPersonalDataManager 5251 // Remove the profiles that were created in the TestPersonalDataManager
5263 // constructor because they would result in conflicting names that would 5252 // constructor because they would result in conflicting names that would
5264 // prevent the upload. 5253 // prevent the upload.
5265 personal_data_.ClearAutofillProfiles(); 5254 personal_data_.ClearAutofillProfiles();
5266 5255
5267 // Create, fill and submit an address form in order to establish a recent 5256 // Create, fill and submit an address form in order to establish a recent
5268 // profile which can be selected for the upload request. 5257 // profile which can be selected for the upload request.
5269 FormData address_form; 5258 FormData address_form;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
5314 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5303 EXPECT_EQ(1, rappor_service->GetReportsCount());
5315 std::string sample; 5304 std::string sample;
5316 rappor::RapporType type; 5305 rappor::RapporType type;
5317 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5306 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5318 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 5307 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
5319 EXPECT_EQ("myform.com", sample); 5308 EXPECT_EQ("myform.com", sample);
5320 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5309 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5321 } 5310 }
5322 5311
5323 TEST_F(AutofillManagerTest, UploadCreditCard_NoProfileAvailable) { 5312 TEST_F(AutofillManagerTest, UploadCreditCard_NoProfileAvailable) {
5324 EnableUkmLogging();
5325 personal_data_.ClearAutofillProfiles(); 5313 personal_data_.ClearAutofillProfiles();
5326 autofill_manager_->set_credit_card_upload_enabled(true); 5314 autofill_manager_->set_credit_card_upload_enabled(true);
5327 5315
5328 // Don't fill or submit an address form. 5316 // Don't fill or submit an address form.
5329 5317
5330 // Set up our credit card form data. 5318 // Set up our credit card form data.
5331 FormData credit_card_form; 5319 FormData credit_card_form;
5332 CreateTestCreditCardFormData(&credit_card_form, true, false); 5320 CreateTestCreditCardFormData(&credit_card_form, true, false);
5333 FormsSeen(std::vector<FormData>(1, credit_card_form)); 5321 FormsSeen(std::vector<FormData>(1, credit_card_form));
5334 5322
(...skipping 27 matching lines...) Expand all
5362 "Autofill.CardUploadNotOfferedNoAddress", &sample, &type)); 5350 "Autofill.CardUploadNotOfferedNoAddress", &sample, &type));
5363 EXPECT_EQ("myform.com", sample); 5351 EXPECT_EQ("myform.com", sample);
5364 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5352 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5365 } 5353 }
5366 5354
5367 TEST_F(AutofillManagerTest, UploadCreditCard_NoRecentlyUsedProfile) { 5355 TEST_F(AutofillManagerTest, UploadCreditCard_NoRecentlyUsedProfile) {
5368 // Create the test clock and set the time to a specific value. 5356 // Create the test clock and set the time to a specific value.
5369 TestAutofillClock test_clock; 5357 TestAutofillClock test_clock;
5370 test_clock.SetNow(kArbitraryTime); 5358 test_clock.SetNow(kArbitraryTime);
5371 5359
5372 EnableUkmLogging();
5373 personal_data_.ClearAutofillProfiles(); 5360 personal_data_.ClearAutofillProfiles();
5374 autofill_manager_->set_credit_card_upload_enabled(true); 5361 autofill_manager_->set_credit_card_upload_enabled(true);
5375 5362
5376 // Create, fill and submit an address form in order to establish a profile. 5363 // Create, fill and submit an address form in order to establish a profile.
5377 FormData address_form; 5364 FormData address_form;
5378 test::CreateTestAddressFormData(&address_form); 5365 test::CreateTestAddressFormData(&address_form);
5379 FormsSeen({address_form}); 5366 FormsSeen({address_form});
5380 5367
5381 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form); 5368 ManuallyFillAddressForm("Flo", "Master", "77401", "US", &address_form);
5382 FormSubmitted(address_form); 5369 FormSubmitted(address_form);
(...skipping 27 matching lines...) Expand all
5410 // Verify that the correct UKM was logged. 5397 // Verify that the correct UKM was logged.
5411 ExpectCardUploadDecisionUkm( 5398 ExpectCardUploadDecisionUkm(
5412 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS); 5399 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_RECENTLY_USED_ADDRESS);
5413 // Verify the histogram entry for recent profile modification. 5400 // Verify the histogram entry for recent profile modification.
5414 histogram_tester.ExpectUniqueSample( 5401 histogram_tester.ExpectUniqueSample(
5415 "Autofill.HasModifiedProfile.CreditCardFormSubmission", false, 1); 5402 "Autofill.HasModifiedProfile.CreditCardFormSubmission", false, 1);
5416 } 5403 }
5417 5404
5418 TEST_F(AutofillManagerTest, 5405 TEST_F(AutofillManagerTest,
5419 UploadCreditCard_CvcUnavailableAndNoProfileAvailable) { 5406 UploadCreditCard_CvcUnavailableAndNoProfileAvailable) {
5420 EnableUkmLogging();
5421 personal_data_.ClearAutofillProfiles(); 5407 personal_data_.ClearAutofillProfiles();
5422 autofill_manager_->set_credit_card_upload_enabled(true); 5408 autofill_manager_->set_credit_card_upload_enabled(true);
5423 5409
5424 // Don't fill or submit an address form. 5410 // Don't fill or submit an address form.
5425 5411
5426 // Set up our credit card form data. 5412 // Set up our credit card form data.
5427 FormData credit_card_form; 5413 FormData credit_card_form;
5428 CreateTestCreditCardFormData(&credit_card_form, true, false); 5414 CreateTestCreditCardFormData(&credit_card_form, true, false);
5429 FormsSeen(std::vector<FormData>(1, credit_card_form)); 5415 FormsSeen(std::vector<FormData>(1, credit_card_form));
5430 5416
(...skipping 30 matching lines...) Expand all
5461 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5447 EXPECT_EQ(1, rappor_service->GetReportsCount());
5462 std::string sample; 5448 std::string sample;
5463 rappor::RapporType type; 5449 rappor::RapporType type;
5464 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5450 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5465 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type)); 5451 "Autofill.CardUploadNotOfferedNoCvc", &sample, &type));
5466 EXPECT_EQ("myform.com", sample); 5452 EXPECT_EQ("myform.com", sample);
5467 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5453 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5468 } 5454 }
5469 5455
5470 TEST_F(AutofillManagerTest, UploadCreditCard_NoNameAvailable) { 5456 TEST_F(AutofillManagerTest, UploadCreditCard_NoNameAvailable) {
5471 EnableUkmLogging();
5472 personal_data_.ClearAutofillProfiles(); 5457 personal_data_.ClearAutofillProfiles();
5473 autofill_manager_->set_credit_card_upload_enabled(true); 5458 autofill_manager_->set_credit_card_upload_enabled(true);
5474 5459
5475 // Create, fill and submit an address form in order to establish a recent 5460 // Create, fill and submit an address form in order to establish a recent
5476 // profile which can be selected for the upload request. 5461 // profile which can be selected for the upload request.
5477 FormData address_form; 5462 FormData address_form;
5478 test::CreateTestAddressFormData(&address_form); 5463 test::CreateTestAddressFormData(&address_form);
5479 FormsSeen(std::vector<FormData>(1, address_form)); 5464 FormsSeen(std::vector<FormData>(1, address_form));
5480 // But omit the name: 5465 // But omit the name:
5481 ManuallyFillAddressForm("", "", "77401", "US", &address_form); 5466 ManuallyFillAddressForm("", "", "77401", "US", &address_form);
(...skipping 28 matching lines...) Expand all
5510 EXPECT_EQ(1, rappor_service->GetReportsCount()); 5495 EXPECT_EQ(1, rappor_service->GetReportsCount());
5511 std::string sample; 5496 std::string sample;
5512 rappor::RapporType type; 5497 rappor::RapporType type;
5513 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric( 5498 EXPECT_TRUE(rappor_service->GetRecordedSampleForMetric(
5514 "Autofill.CardUploadNotOfferedNoName", &sample, &type)); 5499 "Autofill.CardUploadNotOfferedNoName", &sample, &type));
5515 EXPECT_EQ("myform.com", sample); 5500 EXPECT_EQ("myform.com", sample);
5516 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type); 5501 EXPECT_EQ(rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, type);
5517 } 5502 }
5518 5503
5519 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesConflict) { 5504 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesConflict) {
5520 EnableUkmLogging();
5521 personal_data_.ClearAutofillProfiles(); 5505 personal_data_.ClearAutofillProfiles();
5522 autofill_manager_->set_credit_card_upload_enabled(true); 5506 autofill_manager_->set_credit_card_upload_enabled(true);
5523 5507
5524 // Create, fill and submit two address forms with different zip codes. 5508 // Create, fill and submit two address forms with different zip codes.
5525 FormData address_form1, address_form2; 5509 FormData address_form1, address_form2;
5526 test::CreateTestAddressFormData(&address_form1); 5510 test::CreateTestAddressFormData(&address_form1);
5527 test::CreateTestAddressFormData(&address_form2); 5511 test::CreateTestAddressFormData(&address_form2);
5528 5512
5529 std::vector<FormData> address_forms; 5513 std::vector<FormData> address_forms;
5530 address_forms.push_back(address_form1); 5514 address_forms.push_back(address_form1);
(...skipping 29 matching lines...) Expand all
5560 5544
5561 // Verify that the correct histogram entry (and only that) was logged. 5545 // Verify that the correct histogram entry (and only that) was logged.
5562 ExpectUniqueCardUploadDecision( 5546 ExpectUniqueCardUploadDecision(
5563 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); 5547 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS);
5564 // Verify that the correct UKM was logged. 5548 // Verify that the correct UKM was logged.
5565 ExpectCardUploadDecisionUkm( 5549 ExpectCardUploadDecisionUkm(
5566 AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS); 5550 AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_ZIPS);
5567 } 5551 }
5568 5552
5569 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) { 5553 TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) {
5570 EnableUkmLogging();
5571 personal_data_.ClearAutofillProfiles(); 5554 personal_data_.ClearAutofillProfiles();
5572 autofill_manager_->set_credit_card_upload_enabled(true); 5555 autofill_manager_->set_credit_card_upload_enabled(true);
5573 5556
5574 // Create, fill and submit two address forms with different zip codes. 5557 // Create, fill and submit two address forms with different zip codes.
5575 FormData address_form1, address_form2; 5558 FormData address_form1, address_form2;
5576 test::CreateTestAddressFormData(&address_form1); 5559 test::CreateTestAddressFormData(&address_form1);
5577 test::CreateTestAddressFormData(&address_form2); 5560 test::CreateTestAddressFormData(&address_form2);
5578 5561
5579 std::vector<FormData> address_forms; 5562 std::vector<FormData> address_forms;
5580 address_forms.push_back(address_form1); 5563 address_forms.push_back(address_form1);
(...skipping 26 matching lines...) Expand all
5607 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5590 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5608 5591
5609 // Verify that the correct histogram entry (and only that) was logged. 5592 // Verify that the correct histogram entry (and only that) was logged.
5610 ExpectUniqueCardUploadDecision(histogram_tester, 5593 ExpectUniqueCardUploadDecision(histogram_tester,
5611 AutofillMetrics::UPLOAD_OFFERED); 5594 AutofillMetrics::UPLOAD_OFFERED);
5612 // Verify that the correct UKM was logged. 5595 // Verify that the correct UKM was logged.
5613 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5596 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5614 } 5597 }
5615 5598
5616 TEST_F(AutofillManagerTest, UploadCreditCard_NoZipCodeAvailable) { 5599 TEST_F(AutofillManagerTest, UploadCreditCard_NoZipCodeAvailable) {
5617 EnableUkmLogging();
5618 personal_data_.ClearAutofillProfiles(); 5600 personal_data_.ClearAutofillProfiles();
5619 autofill_manager_->set_credit_card_upload_enabled(true); 5601 autofill_manager_->set_credit_card_upload_enabled(true);
5620 5602
5621 // Create, fill and submit an address form in order to establish a recent 5603 // Create, fill and submit an address form in order to establish a recent
5622 // profile which can be selected for the upload request. 5604 // profile which can be selected for the upload request.
5623 FormData address_form; 5605 FormData address_form;
5624 test::CreateTestAddressFormData(&address_form); 5606 test::CreateTestAddressFormData(&address_form);
5625 FormsSeen(std::vector<FormData>(1, address_form)); 5607 FormsSeen(std::vector<FormData>(1, address_form));
5626 // Autofill's validation requirements for Venezuala ("VE", see 5608 // Autofill's validation requirements for Venezuala ("VE", see
5627 // src/components/autofill/core/browser/country_data.cc) do not require zip 5609 // src/components/autofill/core/browser/country_data.cc) do not require zip
(...skipping 25 matching lines...) Expand all
5653 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 5635 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5654 5636
5655 // Verify that the correct histogram entry (and only that) was logged. 5637 // Verify that the correct histogram entry (and only that) was logged.
5656 ExpectUniqueCardUploadDecision( 5638 ExpectUniqueCardUploadDecision(
5657 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); 5639 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE);
5658 // Verify that the correct UKM was logged. 5640 // Verify that the correct UKM was logged.
5659 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); 5641 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE);
5660 } 5642 }
5661 5643
5662 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleInitial) { 5644 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleInitial) {
5663 EnableUkmLogging();
5664 personal_data_.ClearAutofillProfiles(); 5645 personal_data_.ClearAutofillProfiles();
5665 autofill_manager_->set_credit_card_upload_enabled(true); 5646 autofill_manager_->set_credit_card_upload_enabled(true);
5666 5647
5667 // Create, fill and submit two address forms with different names. 5648 // Create, fill and submit two address forms with different names.
5668 FormData address_form1, address_form2; 5649 FormData address_form1, address_form2;
5669 test::CreateTestAddressFormData(&address_form1); 5650 test::CreateTestAddressFormData(&address_form1);
5670 test::CreateTestAddressFormData(&address_form2); 5651 test::CreateTestAddressFormData(&address_form2);
5671 FormsSeen({address_form1, address_form2}); 5652 FormsSeen({address_form1, address_form2});
5672 5653
5673 // Names can be different case. 5654 // Names can be different case.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
5744 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0); 5725 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5745 FormSubmitted(credit_card_form); 5726 FormSubmitted(credit_card_form);
5746 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5727 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5747 5728
5748 // Verify that the correct histogram entry (and only that) was logged. 5729 // Verify that the correct histogram entry (and only that) was logged.
5749 ExpectUniqueCardUploadDecision(histogram_tester, 5730 ExpectUniqueCardUploadDecision(histogram_tester,
5750 AutofillMetrics::UPLOAD_OFFERED); 5731 AutofillMetrics::UPLOAD_OFFERED);
5751 } 5732 }
5752 5733
5753 TEST_F(AutofillManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) { 5734 TEST_F(AutofillManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) {
5754 EnableUkmLogging();
5755 personal_data_.ClearAutofillProfiles(); 5735 personal_data_.ClearAutofillProfiles();
5756 autofill_manager_->set_credit_card_upload_enabled(true); 5736 autofill_manager_->set_credit_card_upload_enabled(true);
5757 5737
5758 // Create, fill and submit two address forms with different names. 5738 // Create, fill and submit two address forms with different names.
5759 FormData address_form1, address_form2; 5739 FormData address_form1, address_form2;
5760 test::CreateTestAddressFormData(&address_form1); 5740 test::CreateTestAddressFormData(&address_form1);
5761 test::CreateTestAddressFormData(&address_form2); 5741 test::CreateTestAddressFormData(&address_form2);
5762 FormsSeen({address_form1, address_form2}); 5742 FormsSeen({address_form1, address_form2});
5763 5743
5764 // Names can have different variations of middle initials. 5744 // Names can have different variations of middle initials.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
5829 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0); 5809 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5830 FormSubmitted(credit_card_form); 5810 FormSubmitted(credit_card_form);
5831 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5811 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5832 5812
5833 // Verify that the correct histogram entry (and only that) was logged. 5813 // Verify that the correct histogram entry (and only that) was logged.
5834 ExpectUniqueCardUploadDecision(histogram_tester, 5814 ExpectUniqueCardUploadDecision(histogram_tester,
5835 AutofillMetrics::UPLOAD_OFFERED); 5815 AutofillMetrics::UPLOAD_OFFERED);
5836 } 5816 }
5837 5817
5838 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleName) { 5818 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleName) {
5839 EnableUkmLogging();
5840 personal_data_.ClearAutofillProfiles(); 5819 personal_data_.ClearAutofillProfiles();
5841 autofill_manager_->set_credit_card_upload_enabled(true); 5820 autofill_manager_->set_credit_card_upload_enabled(true);
5842 5821
5843 // Create, fill and submit address form without middle name. 5822 // Create, fill and submit address form without middle name.
5844 FormData address_form; 5823 FormData address_form;
5845 test::CreateTestAddressFormData(&address_form); 5824 test::CreateTestAddressFormData(&address_form);
5846 FormsSeen({address_form}); 5825 FormsSeen({address_form});
5847 ManuallyFillAddressForm("John", "Adams", "77401", "US", &address_form); 5826 ManuallyFillAddressForm("John", "Adams", "77401", "US", &address_form);
5848 FormSubmitted(address_form); 5827 FormSubmitted(address_form);
5849 5828
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
5905 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0); 5884 EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
5906 FormSubmitted(credit_card_form); 5885 FormSubmitted(credit_card_form);
5907 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded()); 5886 EXPECT_FALSE(autofill_manager_->credit_card_was_uploaded());
5908 5887
5909 // Verify that the correct histogram entry (and only that) was logged. 5888 // Verify that the correct histogram entry (and only that) was logged.
5910 ExpectUniqueCardUploadDecision( 5889 ExpectUniqueCardUploadDecision(
5911 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES); 5890 histogram_tester, AutofillMetrics::UPLOAD_NOT_OFFERED_CONFLICTING_NAMES);
5912 } 5891 }
5913 5892
5914 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormRemovesMiddleName) { 5893 TEST_F(AutofillManagerTest, UploadCreditCard_CCFormRemovesMiddleName) {
5915 EnableUkmLogging();
5916 personal_data_.ClearAutofillProfiles(); 5894 personal_data_.ClearAutofillProfiles();
5917 autofill_manager_->set_credit_card_upload_enabled(true); 5895 autofill_manager_->set_credit_card_upload_enabled(true);
5918 5896
5919 // Create, fill and submit address form with middle name. 5897 // Create, fill and submit address form with middle name.
5920 FormData address_form; 5898 FormData address_form;
5921 test::CreateTestAddressFormData(&address_form); 5899 test::CreateTestAddressFormData(&address_form);
5922 FormsSeen({address_form}); 5900 FormsSeen({address_form});
5923 ManuallyFillAddressForm("John Quincy", "Adams", "77401", "US", &address_form); 5901 ManuallyFillAddressForm("John Quincy", "Adams", "77401", "US", &address_form);
5924 FormSubmitted(address_form); 5902 FormSubmitted(address_form);
5925 5903
(...skipping 17 matching lines...) Expand all
5943 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 5921 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
5944 5922
5945 // Verify that the correct histogram entry (and only that) was logged. 5923 // Verify that the correct histogram entry (and only that) was logged.
5946 ExpectUniqueCardUploadDecision(histogram_tester, 5924 ExpectUniqueCardUploadDecision(histogram_tester,
5947 AutofillMetrics::UPLOAD_OFFERED); 5925 AutofillMetrics::UPLOAD_OFFERED);
5948 // Verify that the correct UKM was logged. 5926 // Verify that the correct UKM was logged.
5949 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED); 5927 ExpectCardUploadDecisionUkm(AutofillMetrics::UPLOAD_OFFERED);
5950 } 5928 }
5951 5929
5952 TEST_F(AutofillManagerTest, UploadCreditCard_NamesHaveToMatch) { 5930 TEST_F(AutofillManagerTest, UploadCreditCard_NamesHaveToMatch) {
5953 EnableUkmLogging();
5954 personal_data_.ClearAutofillProfiles(); 5931 personal_data_.ClearAutofillProfiles();
5955 autofill_manager_->set_credit_card_upload_enabled(true); 5932 autofill_manager_->set_credit_card_upload_enabled(true);
5956 5933
5957 // Create, fill and submit two address forms with different names. 5934 // Create, fill and submit two address forms with different names.
5958 FormData address_form1, address_form2; 5935 FormData address_form1, address_form2;
5959 test::CreateTestAddressFormData(&address_form1); 5936 test::CreateTestAddressFormData(&address_form1);
5960 test::CreateTestAddressFormData(&address_form2); 5937 test::CreateTestAddressFormData(&address_form2);
5961 5938
5962 std::vector<FormData> address_forms; 5939 std::vector<FormData> address_forms;
5963 address_forms.push_back(address_form1); 5940 address_forms.push_back(address_form1);
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
6147 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded()); 6124 EXPECT_TRUE(autofill_manager_->credit_card_was_uploaded());
6148 6125
6149 // Verify that UMA for "DaysSincePreviousUse" is logged. 6126 // Verify that UMA for "DaysSincePreviousUse" is logged.
6150 histogram_tester.ExpectUniqueSample( 6127 histogram_tester.ExpectUniqueSample(
6151 "Autofill.DaysSincePreviousUseAtSubmission.Profile", 6128 "Autofill.DaysSincePreviousUseAtSubmission.Profile",
6152 (kMuchLaterTime - kArbitraryTime).InDays(), 6129 (kMuchLaterTime - kArbitraryTime).InDays(),
6153 /*expected_count=*/1); 6130 /*expected_count=*/1);
6154 } 6131 }
6155 6132
6156 TEST_F(AutofillManagerTest, UploadCreditCard_UploadDetailsFails) { 6133 TEST_F(AutofillManagerTest, UploadCreditCard_UploadDetailsFails) {
6157 EnableUkmLogging();
6158 personal_data_.ClearAutofillProfiles(); 6134 personal_data_.ClearAutofillProfiles();
6159 autofill_manager_->set_credit_card_upload_enabled(true); 6135 autofill_manager_->set_credit_card_upload_enabled(true);
6160 6136
6161 // Anything other than "en-US" will cause GetUploadDetails to return a failure 6137 // Anything other than "en-US" will cause GetUploadDetails to return a failure
6162 // response. 6138 // response.
6163 autofill_manager_->set_app_locale("pt-BR"); 6139 autofill_manager_->set_app_locale("pt-BR");
6164 6140
6165 // Create, fill and submit an address form in order to establish a recent 6141 // Create, fill and submit an address form in order to establish a recent
6166 // profile which can be selected for the upload request. 6142 // profile which can be selected for the upload request.
6167 FormData address_form; 6143 FormData address_form;
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
6813 6789
6814 FormFieldData field; 6790 FormFieldData field;
6815 test::CreateTestFormField("Email", "email", "theking@gmail.com", "text", 6791 test::CreateTestFormField("Email", "email", "theking@gmail.com", "text",
6816 &field); 6792 &field);
6817 form.fields.push_back(field); 6793 form.fields.push_back(field);
6818 types.insert(EMAIL_ADDRESS); 6794 types.insert(EMAIL_ADDRESS);
6819 expected_types.push_back(types); 6795 expected_types.push_back(types);
6820 6796
6821 test::CreateTestFormField("Password", "pw", "secret", "password", &field); 6797 test::CreateTestFormField("Password", "pw", "secret", "password", &field);
6822 form.fields.push_back(field); 6798 form.fields.push_back(field);
6799 FormsSeen(std::vector<FormData>(1, form));
6823 types.clear(); 6800 types.clear();
6824 types.insert(PASSWORD); 6801 types.insert(PASSWORD);
6825 expected_types.push_back(types); 6802 expected_types.push_back(types);
6826 6803
6827 // We will expect these types in the upload and no observed submission. (the 6804 // We will expect these types in the upload and no observed submission. (the
6828 // callback initiated by WaitForAsyncUploadProcess checks these expectations.) 6805 // callback initiated by WaitForAsyncUploadProcess checks these expectations.)
6829 autofill_manager_->set_expected_submitted_field_types(expected_types); 6806 autofill_manager_->set_expected_submitted_field_types(expected_types);
6830 autofill_manager_->set_expected_observed_submission(true); 6807 autofill_manager_->set_expected_observed_submission(true);
6831 autofill_manager_->set_call_parent_upload_form_data(true); 6808 autofill_manager_->set_call_parent_upload_form_data(true);
6832 autofill_manager_->ResetRunLoop(); 6809 autofill_manager_->ResetRunLoop();
(...skipping 13 matching lines...) Expand all
6846 6823
6847 // Wait for upload to complete (will check expected types as well). 6824 // Wait for upload to complete (will check expected types as well).
6848 autofill_manager_->WaitForAsyncUploadProcess(); 6825 autofill_manager_->WaitForAsyncUploadProcess();
6849 6826
6850 EXPECT_EQ(signature, autofill_manager_->GetSubmittedFormSignature()); 6827 EXPECT_EQ(signature, autofill_manager_->GetSubmittedFormSignature());
6851 EXPECT_NE(uploaded_available_types.end(), 6828 EXPECT_NE(uploaded_available_types.end(),
6852 uploaded_available_types.find(autofill::PASSWORD)); 6829 uploaded_available_types.find(autofill::PASSWORD));
6853 } 6830 }
6854 6831
6855 } // namespace autofill 6832 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_experiments.cc ('k') | components/autofill/core/browser/autofill_metrics.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698