| 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 375b4fb2eba304a544c9182a436f54b1993afd53..b9a4e6db8b37d32e293f4c1232540ad3beee3049 100644
|
| --- a/components/autofill/core/browser/autofill_metrics_unittest.cc
|
| +++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
|
| @@ -415,6 +415,7 @@
|
|
|
| protected:
|
| void EnableWalletSync();
|
| + void EnableUkmLogging();
|
|
|
| base::test::ScopedTaskEnvironment scoped_task_environment_;
|
| TestAutofillClient autofill_client_;
|
| @@ -481,6 +482,10 @@
|
|
|
| void AutofillMetricsTest::EnableWalletSync() {
|
| signin_manager_->SetAuthenticatedAccountInfo("12345", "syncuser@example.com");
|
| +}
|
| +
|
| +void AutofillMetricsTest::EnableUkmLogging() {
|
| + scoped_feature_list_.InitAndEnableFeature(kAutofillUkmLogging);
|
| }
|
|
|
| // Test that we log quality metrics appropriately.
|
| @@ -1624,6 +1629,11 @@
|
| // fields is logged.
|
| histogram_tester.ExpectUniqueSample(
|
| "Autofill.NumberOfEditedAutofilledFieldsAtSubmission", 2, 1);
|
| +
|
| + // UKM must not be logged unless enabled.
|
| + ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
| + EXPECT_EQ(0U, ukm_service->sources_count());
|
| + EXPECT_EQ(0U, ukm_service->entries_count());
|
| }
|
|
|
| // Verify that when resetting the autofill manager (such as during a
|
| @@ -1678,6 +1688,8 @@
|
|
|
| // Verify that we correctly log metrics regarding developer engagement.
|
| TEST_F(AutofillMetricsTest, DeveloperEngagement) {
|
| + ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
| +
|
| // Start with a non-fillable form.
|
| FormData form;
|
| form.name = ASCIIToUTF16("TestForm");
|
| @@ -1698,6 +1710,10 @@
|
| autofill_manager_->OnFormsSeen(forms, TimeTicks());
|
| autofill_manager_->Reset();
|
| histogram_tester.ExpectTotalCount("Autofill.DeveloperEngagement", 0);
|
| +
|
| + // UKM must not be logged unless enabled.
|
| + EXPECT_EQ(0U, ukm_service->sources_count());
|
| + EXPECT_EQ(0U, ukm_service->entries_count());
|
| }
|
|
|
| // Add another field to the form, so that it becomes fillable.
|
| @@ -1712,6 +1728,10 @@
|
| histogram_tester.ExpectUniqueSample(
|
| "Autofill.DeveloperEngagement",
|
| AutofillMetrics::FILLABLE_FORM_PARSED_WITHOUT_TYPE_HINTS, 1);
|
| +
|
| + // UKM must not be logged unless enabled.
|
| + EXPECT_EQ(0U, ukm_service->sources_count());
|
| + EXPECT_EQ(0U, ukm_service->entries_count());
|
| }
|
|
|
| // Add some fields with an author-specified field type to the form.
|
| @@ -1738,6 +1758,10 @@
|
| "Autofill.DeveloperEngagement",
|
| AutofillMetrics::FILLABLE_FORM_PARSED_WITH_TYPE_HINTS, 1);
|
|
|
| + // UKM must not be logged unless enabled.
|
| + EXPECT_EQ(0U, ukm_service->sources_count());
|
| + EXPECT_EQ(0U, ukm_service->entries_count());
|
| +
|
| histogram_tester.ExpectBucketCount(
|
| "Autofill.DeveloperEngagement",
|
| AutofillMetrics::FORM_CONTAINS_UPI_VPA_HINT, 0);
|
| @@ -1767,6 +1791,7 @@
|
| // developer engagement.
|
| TEST_F(AutofillMetricsTest,
|
| UkmDeveloperEngagement_LogFillableFormParsedWithoutTypeHints) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| // Start with a non-fillable form.
|
| @@ -1814,6 +1839,7 @@
|
| // developer engagement.
|
| TEST_F(AutofillMetricsTest,
|
| UkmDeveloperEngagement_LogFillableFormParsedWithTypeHints) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| FormData form;
|
| @@ -1865,6 +1891,7 @@
|
| // Verify that we correctly log UKM for form parsed with type hints regarding
|
| // developer engagement.
|
| TEST_F(AutofillMetricsTest, UkmDeveloperEngagement_LogUpiVpaTypeHint) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| FormData form;
|
| @@ -2091,6 +2118,7 @@
|
|
|
| // Test that the credit card checkout flow user actions are correctly logged.
|
| TEST_F(AutofillMetricsTest, CreditCardCheckoutFlowUserActions) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| personal_data_->RecreateCreditCards(
|
| @@ -2189,6 +2217,7 @@
|
|
|
| // Test that the profile checkout flow user actions are correctly logged.
|
| TEST_F(AutofillMetricsTest, ProfileCheckoutFlowUserActions) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| // Create a profile.
|
| @@ -2570,6 +2599,11 @@
|
| "Autofill.FormEvents.CreditCard",
|
| AutofillMetrics::FORM_EVENT_SUGGESTIONS_SHOWN_ONCE, 0);
|
| }
|
| +
|
| + // UKM must not be logged unless enabled.
|
| + ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
| + EXPECT_EQ(0U, ukm_service->sources_count());
|
| + EXPECT_EQ(0U, ukm_service->entries_count());
|
| }
|
|
|
| // Test that we log selected form event for credit cards.
|
| @@ -2836,6 +2870,7 @@
|
|
|
| // Test that we log submitted form events for credit cards.
|
| TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| EnableWalletSync();
|
| @@ -3552,6 +3587,7 @@
|
|
|
| // Test that we log submitted form events for address.
|
| TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| EnableWalletSync();
|
| @@ -4092,6 +4128,7 @@
|
|
|
| // Verify that we correctly log the submitted form's state.
|
| TEST_F(AutofillMetricsTest, AutofillFormSubmittedState) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| // Start with a form with insufficiently many fields.
|
| @@ -4298,6 +4335,7 @@
|
| // Verify that we correctly log user happiness metrics dealing with form
|
| // interaction.
|
| TEST_F(AutofillMetricsTest, UserHappinessFormInteraction) {
|
| + EnableUkmLogging();
|
| ukm::TestUkmService* ukm_service = autofill_client_.GetTestUkmService();
|
|
|
| // Load a fillable form.
|
| @@ -5016,6 +5054,7 @@
|
|
|
| // Tests that logging CardUploadDecision UKM works as expected.
|
| TEST_F(AutofillMetricsTest, RecordCardUploadDecisionMetric) {
|
| + EnableUkmLogging();
|
| ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| GURL url("https://www.google.com");
|
| int upload_decision = 1;
|
| @@ -5056,6 +5095,7 @@
|
|
|
| // Tests that logging DeveloperEngagement UKM works as expected.
|
| TEST_F(AutofillMetricsTest, RecordDeveloperEngagementMetric) {
|
| + EnableUkmLogging();
|
| ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| GURL url("https://www.google.com");
|
| int form_structure_metric = 1;
|
| @@ -5096,6 +5136,7 @@
|
|
|
| // Tests that no UKM is logged when the URL is not valid.
|
| TEST_F(AutofillMetricsTest, RecordCardUploadDecisionMetric_InvalidUrl) {
|
| + EnableUkmLogging();
|
| ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| GURL url("");
|
| std::vector<std::pair<const char*, int>> metrics = {{"metric", 1}};
|
| @@ -5107,6 +5148,7 @@
|
|
|
| // Tests that no UKM is logged when the metrics map is empty.
|
| TEST_F(AutofillMetricsTest, RecordCardUploadDecisionMetric_NoMetrics) {
|
| + EnableUkmLogging();
|
| ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| GURL url("https://www.google.com");
|
| std::vector<std::pair<const char*, int>> metrics;
|
| @@ -5118,6 +5160,7 @@
|
|
|
| // Tests that no UKM is logged when the ukm service is null.
|
| TEST_F(AutofillMetricsTest, RecordCardUploadDecisionMetric_NoUkmService) {
|
| + EnableUkmLogging();
|
| ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| GURL url("https://www.google.com");
|
| std::vector<std::pair<const char*, int>> metrics = {{"metric", 1}};
|
| @@ -5126,4 +5169,15 @@
|
| ASSERT_EQ(0U, ukm_service_test_harness.test_ukm_service()->sources_count());
|
| }
|
|
|
| +// Tests that no UKM is logged when the ukm logging feature is disabled.
|
| +TEST_F(AutofillMetricsTest, RecordCardUploadDecisionMetric_FeatureDisabled) {
|
| + ukm::UkmServiceTestingHarness ukm_service_test_harness;
|
| + GURL url("https://www.google.com");
|
| + std::vector<std::pair<const char*, int>> metrics = {{"metric", 1}};
|
| +
|
| + EXPECT_FALSE(AutofillMetrics::LogUkm(
|
| + ukm_service_test_harness.test_ukm_service(), url, "test_ukm", metrics));
|
| + EXPECT_EQ(0U, ukm_service_test_harness.test_ukm_service()->sources_count());
|
| +}
|
| +
|
| } // namespace autofill
|
|
|