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 973a6d560b9a5f2c7bd6c377522889020e74bf75..374a53109f3aa9b2e412e78f3ded498293a9a846 100644 |
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc |
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc |
@@ -229,6 +229,7 @@ class TestAutofillManager : public AutofillManager { |
form_structures()->push_back(form_structure); |
} |
+ // Calls AutofillManager::OnWillSubmitForm and waits for it to complete. |
void WillSubmitForm(const FormData& form, const TimeTicks& timestamp) { |
run_loop_.reset(new base::RunLoop()); |
if (!OnWillSubmitForm(form, timestamp)) |
@@ -238,6 +239,13 @@ class TestAutofillManager : public AutofillManager { |
run_loop_->Run(); |
} |
+ // Calls both AutofillManager::OnWillSubmitForm and |
+ // AutofillManager::OnFormSubmitted. |
+ void SubmitForm(const FormData& form, const TimeTicks& timestamp) { |
+ WillSubmitForm(form, timestamp); |
+ OnFormSubmitted(form); |
+ } |
+ |
void UploadFormDataAsyncCallback( |
const FormStructure* submitted_form, |
const base::TimeTicks& load_time, |
@@ -377,7 +385,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics) { |
// Simulate form submission. |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// Heuristic predictions. |
// Unknown: |
@@ -499,7 +507,7 @@ TEST_F(AutofillMetricsTest, Rappor_LowMismatchRate_NoMetricsReported) { |
autofill_manager_->AddSeenForm(form, heuristic_types, server_types); |
// Simulate form submission. |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// The number of mismatches did not trigger the RAPPOR metric logging. |
EXPECT_EQ(0, autofill_client_.test_rappor_service()->GetReportsCount()); |
@@ -542,7 +550,7 @@ TEST_F(AutofillMetricsTest, Rappor_NoDataServerAndHeuristic_NoMetricsReported) { |
autofill_manager_->AddSeenForm(form, heuristic_types, server_types); |
// Simulate form submission. |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// No RAPPOR metrics are logged in the case of multiple UNKNOWN_TYPE and |
// NO_SERVER_DATA for heuristics and server predictions, respectively. |
@@ -585,7 +593,7 @@ TEST_F(AutofillMetricsTest, Rappor_HighServerMismatchRate_MetricsReported) { |
autofill_manager_->AddSeenForm(form, heuristic_types, server_types); |
// Simulate form submission. |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// The number of mismatches did trigger the RAPPOR metric logging for server |
// predictions. |
@@ -638,7 +646,7 @@ TEST_F(AutofillMetricsTest, Rappor_HighHeuristicMismatchRate_MetricsReported) { |
autofill_manager_->AddSeenForm(form, heuristic_types, server_types); |
// Simulate form submission. |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// The number of mismatches did trigger the RAPPOR metric logging for |
// heuristic predictions. |
@@ -691,7 +699,7 @@ TEST_F(AutofillMetricsTest, PredictedMetricsWithAutocomplete) { |
// match what is in the test profile. |
form.fields[1].value = base::ASCIIToUTF16("79401"); |
form.fields[2].value = base::ASCIIToUTF16("2345678901"); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// First verify that country was not predicted by client or server. |
histogram_tester.ExpectBucketCount( |
@@ -804,7 +812,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) { |
// Simulate form submission. |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// Heuristic predictions. |
// Unknown: |
@@ -914,7 +922,7 @@ TEST_F(AutofillMetricsTest, StoredProfileCountAutofillableFormSubmission) { |
// Simulate form submission. |
base::HistogramTester histogram_tester; |
autofill_manager_->OnFormsSeen(forms, TimeTicks()); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// An autofillable form was submitted, and the number of stored profiles is |
// logged. |
@@ -944,7 +952,7 @@ TEST_F(AutofillMetricsTest, StoredProfileCountNonAutofillableFormSubmission) { |
// Simulate form submission. |
base::HistogramTester histogram_tester; |
autofill_manager_->OnFormsSeen(forms, TimeTicks()); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
// A non-autofillable form was submitted, and number of stored profiles is NOT |
// logged. |
@@ -1490,7 +1498,10 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) { |
base::HistogramTester histogram_tester; |
autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
false); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1511,7 +1522,10 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) { |
AutofillDriver::FORM_DATA_ACTION_FILL, |
0, form, form.fields.front(), |
autofill_manager_->MakeFrontendID(guid, SuggestionBackendID())); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1532,7 +1546,10 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) { |
AutofillDriver::FORM_DATA_ACTION_FILL, |
0, form, form.fields.front(), |
autofill_manager_->MakeFrontendID(guid, SuggestionBackendID())); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1578,11 +1595,190 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) { |
base::HistogramTester histogram_tester; |
autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
false); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics:: |
+ FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_SUBMITTED_ONCE, |
+ 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission without previous interaction. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+} |
+ |
+// Test that we log "will submit" (but not submitted) form events for credit |
+// cards. Mirrors CreditCardSubmittedFormEvents test but does not expect any |
+// "submitted" metrics. |
+TEST_F(AutofillMetricsTest, CreditCardWillSubmitFormEvents) { |
+ EnableWalletSync(); |
+ // Creating all kinds of cards. |
+ personal_data_->RecreateCreditCards( |
+ true /* include_local_credit_card */, |
+ true /* include_masked_server_credit_card */, |
+ true /* 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"); |
+ form.user_submitted = true; |
+ |
+ FormFieldData field; |
+ std::vector<ServerFieldType> field_types; |
+ test::CreateTestFormField("Month", "card_month", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(CREDIT_CARD_EXP_MONTH); |
+ test::CreateTestFormField("Year", "card_year", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(CREDIT_CARD_EXP_2_DIGIT_YEAR); |
+ test::CreateTestFormField("Credit card", "card", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(CREDIT_CARD_NUMBER); |
+ |
+ // Simulate having seen this form on page load. |
+ // |form_structure| will be owned by |autofill_manager_|. |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with no filled data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with filled local data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ SuggestionBackendID guid("10000000-0000-0000-0000-000000000001", |
+ 0); // local card |
+ autofill_manager_->FillOrPreviewForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, 0, form, form.fields.front(), |
+ autofill_manager_->MakeFrontendID(guid, SuggestionBackendID())); |
autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
- AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with filled server data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ SuggestionBackendID guid("10000000-0000-0000-0000-000000000003", |
+ 0); // full server card |
+ autofill_manager_->FillOrPreviewForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, 0, form, form.fields.front(), |
+ autofill_manager_->MakeFrontendID(guid, SuggestionBackendID())); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with a masked card server suggestion. |
+ base::HistogramTester histogram_tester; |
+ SuggestionBackendID guid("10000000-0000-0000-0000-000000000002", |
+ 0); // masked server card |
+ autofill_manager_->FillOrPreviewForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, 0, form, form.fields.front(), |
+ autofill_manager_->MakeFrontendID(guid, SuggestionBackendID())); |
+ autofill_manager_->OnDidGetRealPan(AutofillClient::SUCCESS, |
+ "6011000990139424"); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_MASKED_SERVER_CARD_SUGGESTION_FILLED_ONCE, |
+ 1); |
+ } |
+ |
+ // Recreating cards as the previous test should have upgraded the masked |
+ // card to a full card. |
+ personal_data_->RecreateCreditCards( |
+ true /* include_local_credit_card */, |
+ true /* include_masked_server_credit_card */, |
+ true /* include_full_server_credit_card */); |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating multiple submissions. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
@@ -1606,6 +1802,9 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) { |
autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.CreditCard", |
AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.CreditCard", |
@@ -1871,7 +2070,10 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) { |
base::HistogramTester histogram_tester; |
autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
false); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1892,7 +2094,10 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) { |
AutofillDriver::FORM_DATA_ACTION_FILL, |
0, form, form.fields.front(), |
autofill_manager_->MakeFrontendID(SuggestionBackendID(), guid)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1913,7 +2118,10 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) { |
AutofillDriver::FORM_DATA_ACTION_FILL, |
0, form, form.fields.front(), |
autofill_manager_->MakeFrontendID(SuggestionBackendID(), guid)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1928,7 +2136,11 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) { |
base::HistogramTester histogram_tester; |
autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
false); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 1); |
@@ -1947,9 +2159,151 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) { |
{ |
// Simulating submission without previous interaction. |
base::HistogramTester histogram_tester; |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+} |
+ |
+// Test that we log "will submit" (but not submitted) form events for address. |
+// Mirrors AddressSubmittedFormEvents test but does not expect any "submitted" |
+// metrics. |
+TEST_F(AutofillMetricsTest, AddressWillSubmitFormEvents) { |
+ EnableWalletSync(); |
+ // Creating all kinds of profiles. |
+ personal_data_->RecreateProfiles(true /* include_local_profile */, |
+ true /* include_server_profile */); |
+ // 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"); |
+ form.user_submitted = true; |
+ |
+ FormFieldData field; |
+ std::vector<ServerFieldType> field_types; |
+ test::CreateTestFormField("State", "state", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(ADDRESS_HOME_STATE); |
+ test::CreateTestFormField("City", "city", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(ADDRESS_HOME_CITY); |
+ test::CreateTestFormField("Street", "street", "", "text", &field); |
+ form.fields.push_back(field); |
+ field_types.push_back(ADDRESS_HOME_STREET_ADDRESS); |
+ |
+ // Simulate having seen this form on page load. |
+ // |form_structure| will be owned by |autofill_manager_|. |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with no filled data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with filled local data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ SuggestionBackendID guid("00000000-0000-0000-0000-000000000001", |
+ 0); // local profile |
+ autofill_manager_->FillOrPreviewForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, 0, form, form.fields.front(), |
+ autofill_manager_->MakeFrontendID(SuggestionBackendID(), guid)); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission with filled server data. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ SuggestionBackendID guid("00000000-0000-0000-0000-000000000002", |
+ 0); // server profile |
+ autofill_manager_->FillOrPreviewForm( |
+ AutofillDriver::FORM_DATA_ACTION_FILL, 0, form, form.fields.front(), |
+ autofill_manager_->MakeFrontendID(SuggestionBackendID(), guid)); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating multiple submissions. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(), |
+ false); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 1); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_SERVER_SUGGESTION_SUBMITTED_ONCE, 0); |
+ } |
+ |
+ // Reset the autofill manager state. |
+ autofill_manager_->Reset(); |
+ autofill_manager_->AddSeenForm(form, field_types, field_types); |
+ |
+ { |
+ // Simulating submission without previous interaction. |
+ base::HistogramTester histogram_tester; |
+ autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
+ AutofillMetrics::FORM_EVENT_WILL_SUBMIT_ONCE, 0); |
+ histogram_tester.ExpectBucketCount( |
+ "Autofill.FormEvents.Address", |
AutofillMetrics::FORM_EVENT_NO_SUGGESTION_SUBMITTED_ONCE, 0); |
histogram_tester.ExpectBucketCount( |
"Autofill.FormEvents.Address", |
@@ -2208,7 +2562,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect no notifications when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectTotalCount("Autofill.UserHappiness", 0); |
} |
@@ -2230,7 +2584,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect a notification when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM, |
1); |
@@ -2244,7 +2598,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect a notification when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM, |
1); |
@@ -2257,7 +2611,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect notifications when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", |
AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_NONE, 1); |
@@ -2271,7 +2625,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect notifications when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", |
AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME, 1); |
@@ -2285,7 +2639,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect notifications when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", |
AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_ALL, 1); |
@@ -2298,7 +2652,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) { |
// Expect notifications when the form is submitted. |
{ |
base::HistogramTester histogram_tester; |
- autofill_manager_->WillSubmitForm(form, TimeTicks::Now()); |
+ autofill_manager_->SubmitForm(form, TimeTicks::Now()); |
histogram_tester.ExpectUniqueSample( |
"Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM, |
1); |
@@ -2454,7 +2808,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
{ |
base::HistogramTester histogram_tester; |
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(form, TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectTotalCount( |
"Autofill.FillDuration.FromLoad.WithAutofill", 0); |
@@ -2474,7 +2828,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), |
TimeTicks::FromInternalValue(3)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(form, TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectTotalCount( |
"Autofill.FillDuration.FromLoad.WithAutofill", 0); |
@@ -2495,7 +2849,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
autofill_manager_->OnDidFillAutofillFormData( |
TimeTicks::FromInternalValue(5)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(form, TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectUniqueSample( |
"Autofill.FillDuration.FromLoad.WithAutofill", 16, 1); |
@@ -2520,7 +2874,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
TimeTicks::FromInternalValue(5)); |
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), |
TimeTicks::FromInternalValue(3)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(form, TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectUniqueSample( |
"Autofill.FillDuration.FromLoad.WithAutofill", 16, 1); |
@@ -2545,7 +2899,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
TimeTicks::FromInternalValue(5)); |
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(), |
TimeTicks::FromInternalValue(3)); |
- autofill_manager_->WillSubmitForm(form, TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(form, TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectUniqueSample( |
"Autofill.FillDuration.FromLoad.WithAutofill", 16, 1); |
@@ -2566,8 +2920,8 @@ TEST_F(AutofillMetricsTest, FormFillDuration) { |
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1)); |
autofill_manager_->OnFormsSeen(second_forms, |
TimeTicks::FromInternalValue(5)); |
- autofill_manager_->WillSubmitForm(second_form, |
- TimeTicks::FromInternalValue(17)); |
+ autofill_manager_->SubmitForm(second_form, |
+ TimeTicks::FromInternalValue(17)); |
histogram_tester.ExpectTotalCount( |
"Autofill.FillDuration.FromLoad.WithAutofill", 0); |