Chromium Code Reviews| Index: components/autofill/core/browser/autofill_metrics_unittest.cc |
| diff --git a/components/autofill/core/browser/autofill_metrics_unittest.cc b/components/autofill/core/browser/autofill_metrics_unittest.cc |
| index cdf459ea4194b2ff672e5423f1966e9ed8a940ce..0f3cd8df2a049a6736a92d624f6b9390abbad147 100644 |
| --- a/components/autofill/core/browser/autofill_metrics_unittest.cc |
| +++ b/components/autofill/core/browser/autofill_metrics_unittest.cc |
| @@ -4223,7 +4223,108 @@ TEST_F(AutofillMetricsTest, ShowHttpNotSecureExplanationUserAction) { |
| external_delegate_->DidAcceptSuggestion( |
| ASCIIToUTF16("Test"), POPUP_ITEM_ID_HTTP_NOT_SECURE_WARNING_MESSAGE, 0); |
| EXPECT_EQ(1, user_action_tester.GetActionCount( |
| - "Autofill_ShowedHttpNotSecureExplanation")); |
| + "Autofill_ShowedHttpNotSecureExplanation")); |
| +} |
| + |
| +// Tests that credit card form submissions are logged specially when the form is |
| +// on a non-secure page. |
| +TEST_F(AutofillMetricsTest, NonsecureCreditCardForm) { |
| + personal_data_->RecreateCreditCards( |
| + true /* include_local_credit_card */, |
| + false /* include_masked_server_credit_card */, |
| + false /* include_full_server_credit_card */); |
| + |
| + // Set up our form data. |
| + FormData form; |
| + form.name = ASCIIToUTF16("TestForm"); |
| + form.origin = GURL("http://example.com/form.html"); |
| + form.action = GURL("http://example.com/submit.html"); |
| + |
| + FormFieldData field; |
| + std::vector<ServerFieldType> field_types; |
| + test::CreateTestFormField("Name on card", "cc-name", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_NAME_FULL); |
| + test::CreateTestFormField("Credit card", "card", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_NUMBER); |
| + test::CreateTestFormField("Month", "card_month", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_EXP_MONTH); |
| + |
| + // Simulate having seen this form on page load. |
| + // |form_structure| will be owned by |autofill_manager_|. |
| + autofill_manager_->AddSeenForm(form, field_types, field_types); |
| + |
| + // Simulate an Autofill query on a credit card field. |
| + { |
| + base::UserActionTester user_action_tester; |
| + autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::RectF()); |
| + EXPECT_EQ(1, user_action_tester.GetActionCount( |
| + "Autofill_PolledCreditCardSuggestions")); |
| + } |
| + |
| + // Simulate submitting the credit card form. |
| + { |
| + base::HistogramTester histograms; |
| + autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
| + histograms.ExpectBucketCount( |
| + "Autofill.FormEvents.CreditCard.OnNonsecurePage", |
| + AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
|
sebsg
2017/02/03 19:28:34
Can you also make sure that the normal histograms
estark
2017/02/04 02:16:13
Done.
|
| + } |
| +} |
| + |
| +// Tests that credit card form submissions are *not* logged specially when the |
| +// form is *not* on a non-secure page. |
| +TEST_F(AutofillMetricsTest, |
| + NonsecureCreditCardFormMetricsNotRecordedOnSecurePage) { |
| + autofill_client_.set_main_url_secure(); |
| + personal_data_->RecreateCreditCards( |
| + true /* include_local_credit_card */, |
| + false /* include_masked_server_credit_card */, |
| + false /* include_full_server_credit_card */); |
| + |
| + // Set up our form data. |
| + FormData form; |
| + form.name = ASCIIToUTF16("TestForm"); |
| + form.origin = GURL("https://example.com/form.html"); |
| + form.action = GURL("http://example.com/submit.html"); |
| + |
| + FormFieldData field; |
| + std::vector<ServerFieldType> field_types; |
| + test::CreateTestFormField("Name on card", "cc-name", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_NAME_FULL); |
| + test::CreateTestFormField("Credit card", "card", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_NUMBER); |
| + test::CreateTestFormField("Month", "card_month", "", "text", &field); |
| + form.fields.push_back(field); |
| + field_types.push_back(CREDIT_CARD_EXP_MONTH); |
| + |
| + // Simulate having seen this form on page load. |
| + // |form_structure| will be owned by |autofill_manager_|. |
| + autofill_manager_->AddSeenForm(form, field_types, field_types); |
| + |
| + // Simulate an Autofill query on a credit card field. |
| + { |
| + base::UserActionTester user_action_tester; |
| + autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::RectF()); |
| + EXPECT_EQ(1, user_action_tester.GetActionCount( |
| + "Autofill_PolledCreditCardSuggestions")); |
| + } |
| + |
| + // Simulate submitting the credit card form. |
| + { |
| + base::HistogramTester histograms; |
| + autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
| + histograms.ExpectBucketCount( |
| + "Autofill.FormEvents.CreditCard", |
| + AutofillMetrics::FORM_EVENT_NO_SUGGESTION_WILL_SUBMIT_ONCE, 1); |
| + histograms.ExpectBucketCount( |
| + "Autofill.FormEvents.CreditCard", |
| + AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
|
sebsg
2017/02/03 19:28:34
Can you add a check to make sure that nothing was
estark
2017/02/04 02:16:13
Done.
|
| + } |
| } |
| } // namespace autofill |