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

Unified Diff: components/autofill/core/browser/autofill_metrics_unittest.cc

Issue 714273003: [Autofill, Clean-up] Clean up the Autofill metrics tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: anonymouse -> anonymous Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/autofill/core/browser/autofill_metrics.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 64ca857085d29a1c1987a1fa86ac5581f8b5246d..89c99cec7cc8f0e392c3397cf4847cbbfdb3b77a 100644
--- a/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -6,12 +6,12 @@
#include <vector>
-#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/prefs/pref_service.h"
#include "base/run_loop.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/histogram_tester.h"
#include "base/time/time.h"
#include "components/autofill/core/browser/autofill_external_delegate.h"
#include "components/autofill/core/browser/autofill_manager.h"
@@ -23,62 +23,20 @@
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h"
#include "components/webdata/common/web_data_results.h"
-#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/rect.h"
#include "url/gurl.h"
using base::ASCIIToUTF16;
-using base::TimeDelta;
using base::TimeTicks;
-using testing::_;
-using testing::AnyNumber;
-using testing::Mock;
namespace autofill {
-
namespace {
-class MockAutofillMetrics : public AutofillMetrics {
- public:
- MockAutofillMetrics() {}
- MOCK_CONST_METHOD1(LogCreditCardInfoBarMetric, void(InfoBarMetric metric));
- MOCK_CONST_METHOD1(LogDeveloperEngagementMetric,
- void(DeveloperEngagementMetric metric));
- MOCK_CONST_METHOD2(LogHeuristicTypePrediction,
- void(FieldTypeQualityMetric metric,
- ServerFieldType field_type));
- MOCK_CONST_METHOD2(LogOverallTypePrediction,
- void(FieldTypeQualityMetric metric,
- ServerFieldType field_type));
- MOCK_CONST_METHOD2(LogServerTypePrediction,
- void(FieldTypeQualityMetric metric,
- ServerFieldType field_type));
- MOCK_CONST_METHOD1(LogServerQueryMetric, void(ServerQueryMetric metric));
- MOCK_CONST_METHOD1(LogUserHappinessMetric, void(UserHappinessMetric metric));
- MOCK_CONST_METHOD1(LogFormFillDurationFromLoadWithAutofill,
- void(const TimeDelta& duration));
- MOCK_CONST_METHOD1(LogFormFillDurationFromLoadWithoutAutofill,
- void(const TimeDelta& duration));
- MOCK_CONST_METHOD1(LogFormFillDurationFromInteractionWithAutofill,
- void(const TimeDelta& duration));
- MOCK_CONST_METHOD1(LogFormFillDurationFromInteractionWithoutAutofill,
- void(const TimeDelta& duration));
- MOCK_CONST_METHOD1(LogIsAutofillEnabledAtPageLoad, void(bool enabled));
- MOCK_CONST_METHOD1(LogIsAutofillEnabledAtStartup, void(bool enabled));
- MOCK_CONST_METHOD1(LogStoredProfileCount, void(size_t num_profiles));
- MOCK_CONST_METHOD1(LogAddressSuggestionsCount, void(size_t num_suggestions));
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MockAutofillMetrics);
-};
-
class TestPersonalDataManager : public PersonalDataManager {
public:
TestPersonalDataManager()
- : PersonalDataManager("en-US"),
- autofill_enabled_(true) {
- set_metric_logger(new testing::NiceMock<MockAutofillMetrics>());
+ : PersonalDataManager("en-US"), autofill_enabled_(true) {
CreateTestAutofillProfiles(&web_profiles_);
}
@@ -98,11 +56,6 @@ class TestPersonalDataManager : public PersonalDataManager {
// Overridden to avoid a trip to the database.
virtual void LoadCreditCards() override {}
- const MockAutofillMetrics* metric_logger() const {
- return static_cast<const MockAutofillMetrics*>(
- PersonalDataManager::metric_logger());
- }
-
void set_autofill_enabled(bool autofill_enabled) {
autofill_enabled_ = autofill_enabled;
}
@@ -111,9 +64,6 @@ class TestPersonalDataManager : public PersonalDataManager {
return autofill_enabled_;
}
- MOCK_METHOD1(SaveImportedCreditCard,
- std::string(const CreditCard& imported_credit_card));
-
private:
void CreateTestAutofillProfiles(ScopedVector<AutofillProfile>* profiles) {
AutofillProfile* profile = new AutofillProfile;
@@ -168,9 +118,7 @@ class TestAutofillManager : public AutofillManager {
AutofillClient* autofill_client,
TestPersonalDataManager* personal_manager)
: AutofillManager(driver, autofill_client, personal_manager),
- autofill_enabled_(true) {
- set_metric_logger(new testing::NiceMock<MockAutofillMetrics>);
- }
+ autofill_enabled_(true) {}
~TestAutofillManager() override {}
bool IsAutofillEnabled() const override { return autofill_enabled_; }
@@ -179,11 +127,6 @@ class TestAutofillManager : public AutofillManager {
autofill_enabled_ = autofill_enabled;
}
- MockAutofillMetrics* metric_logger() {
- return static_cast<MockAutofillMetrics*>(const_cast<AutofillMetrics*>(
- AutofillManager::metric_logger()));
- }
-
void AddSeenForm(const FormData& form,
const std::vector<ServerFieldType>& heuristic_types,
const std::vector<ServerFieldType>& server_types) {
@@ -229,6 +172,10 @@ class TestAutofillManager : public AutofillManager {
} // namespace
+// This is defined in the autofill_metrics.cc implementation file.
+int GetFieldTypeGroupMetric(ServerFieldType field_type,
+ AutofillMetrics::FieldTypeQualityMetric metric);
+
class AutofillMetricsTest : public testing::Test {
public:
~AutofillMetricsTest() override;
@@ -331,57 +278,91 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
// Simulate having seen this form on page load.
autofill_manager_->AddSeenForm(form, heuristic_types, server_types);
- // Establish our expectations.
- ::testing::InSequence dummy;
- // Autofilled field
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MATCH,
- NAME_FULL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- NAME_FULL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- NAME_FULL));
- // Non-autofilled field for which we had data
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- EMAIL_ADDRESS));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MATCH,
- EMAIL_ADDRESS));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MATCH,
- EMAIL_ADDRESS));
- // Empty field
- // Unknown field
- // <select> field
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_COUNTRY));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_COUNTRY));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_COUNTRY));
- // Phone field
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MATCH,
- PHONE_HOME_WHOLE_NUMBER));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MATCH,
- PHONE_HOME_WHOLE_NUMBER));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MATCH,
- PHONE_HOME_WHOLE_NUMBER));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME));
-
// Simulate form submission.
- EXPECT_NO_FATAL_FAILURE(autofill_manager_->FormSubmitted(form,
- TimeTicks::Now()));
+ base::HistogramTester histogram_tester;
+ autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+
+ // Heuristic predictions.
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_MATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
+ AutofillMetrics::TYPE_MATCH),
+ 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_MISMATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ 1);
+
+ // Server predictions:
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_MATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
+ AutofillMetrics::TYPE_MATCH),
+ 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_MISMATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
+
+ // Overall predictions:
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_COUNTRY,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_MATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MATCH), 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(PHONE_HOME_WHOLE_NUMBER,
+ AutofillMetrics::TYPE_MATCH),
+ 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_MISMATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MISMATCH), 1);
}
// Test that we behave sanely when the cached form differs from the submitted
@@ -437,53 +418,92 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
form.fields.push_back(cached_fields[3]);
form.fields.push_back(cached_fields[0]);
- // Establish our expectations.
- ::testing::InSequence dummy;
- // New field
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_STATE));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_STATE));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_UNKNOWN,
- ADDRESS_HOME_STATE));
- // Only heuristics match
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MATCH,
- ADDRESS_HOME_CITY));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- ADDRESS_HOME_CITY));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- ADDRESS_HOME_CITY));
- // Both mismatch
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- EMAIL_ADDRESS));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- EMAIL_ADDRESS));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MISMATCH,
- EMAIL_ADDRESS));
- // Unknown
- // Both match
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogHeuristicTypePrediction(AutofillMetrics::TYPE_MATCH,
- NAME_FULL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogServerTypePrediction(AutofillMetrics::TYPE_MATCH,
- NAME_FULL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogOverallTypePrediction(AutofillMetrics::TYPE_MATCH,
- NAME_FULL));
-
// Simulate form submission.
- EXPECT_NO_FATAL_FAILURE(autofill_manager_->FormSubmitted(form,
- TimeTicks::Now()));
+ base::HistogramTester histogram_tester;
+ autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+
+ // Heuristic predictions.
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_MATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_CITY, AutofillMetrics::TYPE_MATCH),
+ 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.HeuristicType",
+ AutofillMetrics::TYPE_MISMATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.HeuristicType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ 1);
+
+ // Server predictions:
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_MATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.ServerType",
+ AutofillMetrics::TYPE_MISMATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_CITY,
+ AutofillMetrics::TYPE_MISMATCH),
+ 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.ServerType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ 1);
+
+ // Overall predictions:
+ // Unknown:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_UNKNOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_STATE,
+ AutofillMetrics::TYPE_UNKNOWN),
+ 1);
+ // Match:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_MATCH, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(NAME_FULL, AutofillMetrics::TYPE_MATCH), 1);
+ // Mismatch:
+ histogram_tester.ExpectBucketCount("Autofill.Quality.PredictedType",
+ AutofillMetrics::TYPE_MISMATCH, 2);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(ADDRESS_HOME_CITY,
+ AutofillMetrics::TYPE_MISMATCH),
+ 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.Quality.PredictedType.ByFieldType",
+ GetFieldTypeGroupMetric(EMAIL_ADDRESS, AutofillMetrics::TYPE_MISMATCH),
+ 1);
}
// Verify that we correctly log metrics regarding developer engagement.
@@ -504,11 +524,10 @@ TEST_F(AutofillMetricsTest, DeveloperEngagement) {
// Ensure no metrics are logged when loading a non-fillable form.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogDeveloperEngagementMetric(_)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
+ histogram_tester.ExpectTotalCount("Autofill.DeveloperEngagement", 0);
}
// Add another field to the form, so that it becomes fillable.
@@ -518,17 +537,12 @@ TEST_F(AutofillMetricsTest, DeveloperEngagement) {
// Expect only the "form parsed" metric to be logged; no metrics about
// author-specified field type hints.
{
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogDeveloperEngagementMetric(
- AutofillMetrics::FILLABLE_FORM_PARSED)).Times(1);
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogDeveloperEngagementMetric(
- AutofillMetrics::FILLABLE_FORM_CONTAINS_TYPE_HINTS)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
+ histogram_tester.ExpectUniqueSample("Autofill.DeveloperEngagement",
+ AutofillMetrics::FILLABLE_FORM_PARSED,
+ 1);
}
// Add some fields with an author-specified field type to the form.
@@ -549,49 +563,51 @@ TEST_F(AutofillMetricsTest, DeveloperEngagement) {
// Expect both the "form parsed" metric and the author-specified field type
// hints metric to be logged.
{
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogDeveloperEngagementMetric(
- AutofillMetrics::FILLABLE_FORM_PARSED)).Times(1);
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogDeveloperEngagementMetric(
- AutofillMetrics::FILLABLE_FORM_CONTAINS_TYPE_HINTS)).Times(1);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
+ histogram_tester.ExpectBucketCount("Autofill.DeveloperEngagement",
+ AutofillMetrics::FILLABLE_FORM_PARSED,
+ 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.DeveloperEngagement",
+ AutofillMetrics::FILLABLE_FORM_CONTAINS_TYPE_HINTS, 1);
}
}
// Test that the profile count is logged correctly.
TEST_F(AutofillMetricsTest, StoredProfileCount) {
// The metric should be logged when the profiles are first loaded.
- EXPECT_CALL(*personal_data_->metric_logger(),
- LogStoredProfileCount(2)).Times(1);
- personal_data_->LoadProfiles();
+ {
+ base::HistogramTester histogram_tester;
+ personal_data_->LoadProfiles();
+ histogram_tester.ExpectUniqueSample("Autofill.StoredProfileCount", 2, 1);
+ }
// The metric should only be logged once.
- EXPECT_CALL(*personal_data_->metric_logger(),
- LogStoredProfileCount(::testing::_)).Times(0);
- personal_data_->LoadProfiles();
+ {
+ base::HistogramTester histogram_tester;
+ personal_data_->LoadProfiles();
+ histogram_tester.ExpectTotalCount("Autofill.StoredProfileCount", 0);
+ }
}
// Test that we correctly log when Autofill is enabled.
TEST_F(AutofillMetricsTest, AutofillIsEnabledAtStartup) {
+ base::HistogramTester histogram_tester;
personal_data_->set_autofill_enabled(true);
- EXPECT_CALL(*personal_data_->metric_logger(),
- LogIsAutofillEnabledAtStartup(true)).Times(1);
personal_data_->Init(
autofill_client_.GetDatabase(), autofill_client_.GetPrefs(), false);
+ histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", true, 1);
}
// Test that we correctly log when Autofill is disabled.
TEST_F(AutofillMetricsTest, AutofillIsDisabledAtStartup) {
+ base::HistogramTester histogram_tester;
personal_data_->set_autofill_enabled(false);
- EXPECT_CALL(*personal_data_->metric_logger(),
- LogIsAutofillEnabledAtStartup(false)).Times(1);
personal_data_->Init(
autofill_client_.GetDatabase(), autofill_client_.GetPrefs(), false);
+ histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.Startup", false, 1);
}
// Test that we log the number of Autofill suggestions when filling a form.
@@ -619,66 +635,66 @@ TEST_F(AutofillMetricsTest, AddressSuggestionsCount) {
// |form_structure| will be owned by |autofill_manager_|.
autofill_manager_->AddSeenForm(form, field_types, field_types);
- // Establish our expectations.
- ::testing::InSequence dummy;
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogAddressSuggestionsCount(2)).Times(1);
-
- // Simulate activating the autofill popup for the phone field.
- autofill_manager_->OnQueryFormFieldAutofill(
- 0, form, field, gfx::Rect(), false);
+ {
+ // Simulate activating the autofill popup for the phone field.
+ base::HistogramTester histogram_tester;
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(),
+ false);
+ histogram_tester.ExpectUniqueSample("Autofill.AddressSuggestionsCount", 2,
+ 1);
+ }
- // Simulate activating the autofill popup for the email field after typing.
- // No new metric should be logged, since we're still on the same page.
- test::CreateTestFormField("Email", "email", "b", "email", &field);
- autofill_manager_->OnQueryFormFieldAutofill(
- 0, form, field, gfx::Rect(), false);
+ {
+ // Simulate activating the autofill popup for the email field after typing.
+ // No new metric should be logged, since we're still on the same page.
+ test::CreateTestFormField("Email", "email", "b", "email", &field);
+ base::HistogramTester histogram_tester;
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(),
+ false);
+ histogram_tester.ExpectTotalCount("Autofill.AddressSuggestionsCount", 0);
+ }
// Reset the autofill manager state.
autofill_manager_->Reset();
autofill_manager_->AddSeenForm(form, field_types, field_types);
- // Establish our expectations.
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogAddressSuggestionsCount(1)).Times(1);
-
- // Simulate activating the autofill popup for the email field after typing.
- autofill_manager_->OnQueryFormFieldAutofill(
- 0, form, field, gfx::Rect(), false);
+ {
+ // Simulate activating the autofill popup for the email field after typing.
+ base::HistogramTester histogram_tester;
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(),
+ false);
+ histogram_tester.ExpectUniqueSample("Autofill.AddressSuggestionsCount", 1,
+ 1);
+ }
// Reset the autofill manager state again.
autofill_manager_->Reset();
autofill_manager_->AddSeenForm(form, field_types, field_types);
- // Establish our expectations.
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogAddressSuggestionsCount(::testing::_)).Times(0);
-
- // Simulate activating the autofill popup for the email field after typing.
- form.fields[0].is_autofilled = true;
- autofill_manager_->OnQueryFormFieldAutofill(
- 0, form, field, gfx::Rect(), false);
+ {
+ // Simulate activating the autofill popup for the email field after typing.
+ form.fields[0].is_autofilled = true;
+ base::HistogramTester histogram_tester;
+ autofill_manager_->OnQueryFormFieldAutofill(0, form, field, gfx::Rect(),
+ false);
+ histogram_tester.ExpectTotalCount("Autofill.AddressSuggestionsCount", 0);
+ }
}
-// Test that we log whether Autofill is enabled when filling a form.
+// Test that we log that Autofill is enabled when filling a form.
TEST_F(AutofillMetricsTest, AutofillIsEnabledAtPageLoad) {
- // Establish our expectations.
- ::testing::InSequence dummy;
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogIsAutofillEnabledAtPageLoad(true)).Times(1);
-
+ base::HistogramTester histogram_tester;
autofill_manager_->set_autofill_enabled(true);
autofill_manager_->OnFormsSeen(std::vector<FormData>(), TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.PageLoad", true, 1);
+}
- // Reset the autofill manager state.
- autofill_manager_->Reset();
-
- // Establish our expectations.
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogIsAutofillEnabledAtPageLoad(false)).Times(1);
-
+// Test that we log that Autofill is disabled when filling a form.
+TEST_F(AutofillMetricsTest, AutofillIsDisabledAtPageLoad) {
+ base::HistogramTester histogram_tester;
autofill_manager_->set_autofill_enabled(false);
autofill_manager_->OnFormsSeen(std::vector<FormData>(), TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.IsEnabled.PageLoad", false, 1);
}
// Verify that we correctly log user happiness metrics dealing with form loading
@@ -701,31 +717,17 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect no notifications when the form is first seen.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::FORMS_LOADED)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
+ histogram_tester.ExpectTotalCount("Autofill.UserHappiness", 0);
}
// Expect no notifications when the form is submitted.
{
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_ALL)).Times(0);
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME)).Times(0);
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_NONE)).Times(0);
- EXPECT_CALL(
- *autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectTotalCount("Autofill.UserHappiness", 0);
}
// Add more fields to the form.
@@ -737,17 +739,19 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect a notification when the form is first seen.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::FORMS_LOADED));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
+ AutofillMetrics::FORMS_LOADED, 1);
}
// Expect a notification when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM,
+ 1);
}
// Fill in two of the fields.
@@ -757,10 +761,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect a notification when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM,
+ 1);
}
// Fill in the third field.
@@ -769,10 +774,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect notifications when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_NONE));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness",
+ AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_NONE, 1);
}
@@ -782,10 +788,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect notifications when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness",
+ AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_SOME, 1);
}
// Mark all of the fillable fields as autofilled.
@@ -795,10 +802,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect notifications when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_ALL));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness",
+ AutofillMetrics::SUBMITTED_FILLABLE_FORM_AUTOFILLED_ALL, 1);
}
// Clear out the third field's value.
@@ -807,10 +815,11 @@ TEST_F(AutofillMetricsTest, UserHappinessFormLoadAndSubmission) {
// Expect notifications when the form is submitted.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM));
+ base::HistogramTester histogram_tester;
autofill_manager_->FormSubmitted(form, TimeTicks::Now());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness", AutofillMetrics::SUBMITTED_NON_FILLABLE_FORM,
+ 1);
}
}
@@ -836,60 +845,54 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction) {
// Expect a notification when the form is first seen.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::FORMS_LOADED));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
+ AutofillMetrics::FORMS_LOADED, 1);
}
// Simulate typing.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::USER_DID_TYPE));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_TYPE, 1);
}
// Simulate suggestions shown twice for a single edit (i.e. multiple
// keystrokes in a single field).
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUGGESTIONS_SHOWN)).Times(1);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUGGESTIONS_SHOWN_ONCE)).Times(1);
+ base::HistogramTester histogram_tester;
autofill_manager_->DidShowSuggestions(true);
autofill_manager_->DidShowSuggestions(false);
+ histogram_tester.ExpectBucketCount("Autofill.UserHappiness",
+ AutofillMetrics::SUGGESTIONS_SHOWN, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.UserHappiness", AutofillMetrics::SUGGESTIONS_SHOWN_ONCE, 1);
}
// Simulate suggestions shown for a different field.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::SUGGESTIONS_SHOWN));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::SUGGESTIONS_SHOWN_ONCE)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->DidShowSuggestions(true);
+ histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
+ AutofillMetrics::SUGGESTIONS_SHOWN, 1);
}
// Simulate invoking autofill.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::USER_DID_AUTOFILL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::USER_DID_AUTOFILL_ONCE));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnDidFillAutofillFormData(TimeTicks());
+ histogram_tester.ExpectBucketCount("Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_AUTOFILL, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.UserHappiness", AutofillMetrics::USER_DID_AUTOFILL_ONCE, 1);
}
// Simulate editing an autofilled field.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD_ONCE));
+ base::HistogramTester histogram_tester;
PersonalDataManager::GUIDPair guid(
"00000000-0000-0000-0000-000000000001", 0);
PersonalDataManager::GUIDPair empty(std::string(), 0);
@@ -902,22 +905,29 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction) {
// Simulate a second keystroke; make sure we don't log the metric twice.
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
TimeTicks());
+ histogram_tester.ExpectBucketCount(
+ "Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD, 1);
+ histogram_tester.ExpectBucketCount(
+ "Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD_ONCE, 1);
}
// Simulate invoking autofill again.
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(AutofillMetrics::USER_DID_AUTOFILL));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::USER_DID_AUTOFILL_ONCE)).Times(0);
- autofill_manager_->OnDidFillAutofillFormData(TimeTicks());
+ {
+ base::HistogramTester histogram_tester;
+ autofill_manager_->OnDidFillAutofillFormData(TimeTicks());
+ histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_AUTOFILL, 1);
+ }
// Simulate editing another autofilled field.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogUserHappinessMetric(
- AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnTextFieldDidChange(form, form.fields[1], TimeTicks());
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.UserHappiness",
+ AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD, 1);
}
}
@@ -961,99 +971,92 @@ TEST_F(AutofillMetricsTest, FormFillDuration) {
// Expect only form load metrics to be logged if the form is submitted without
// user interaction.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(
- TimeDelta::FromInternalValue(16)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(_)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 16, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 0);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
// Expect metric to be logged if the user manually edited a form field.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(
- TimeDelta::FromInternalValue(16)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(
- TimeDelta::FromInternalValue(14)));
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
TimeTicks::FromInternalValue(3));
autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 16, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 14, 1);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
// Expect metric to be logged if the user autofilled the form.
form.fields[0].is_autofilled = true;
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(
- TimeDelta::FromInternalValue(16)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(
- TimeDelta::FromInternalValue(12)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(_)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->OnDidFillAutofillFormData(
TimeTicks::FromInternalValue(5));
autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 16, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 12, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
// Expect metric to be logged if the user both manually filled some fields
// and autofilled others. Messages can arrive out of order, so make sure they
// take precedence appropriately.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(
- TimeDelta::FromInternalValue(16)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(
- TimeDelta::FromInternalValue(14)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(_)).Times(0);
+ base::HistogramTester histogram_tester;
+
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->OnDidFillAutofillFormData(
TimeTicks::FromInternalValue(5));
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
TimeTicks::FromInternalValue(3));
autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 16, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 14, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
// Make sure that loading another form doesn't affect metrics from the first
// form.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(
- TimeDelta::FromInternalValue(16)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(
- TimeDelta::FromInternalValue(14)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(_)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->OnFormsSeen(second_forms,
TimeTicks::FromInternalValue(3));
@@ -1062,29 +1065,39 @@ TEST_F(AutofillMetricsTest, FormFillDuration) {
autofill_manager_->OnTextFieldDidChange(form, form.fields.front(),
TimeTicks::FromInternalValue(3));
autofill_manager_->FormSubmitted(form, TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 16, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 14, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
// Make sure that submitting a form that was loaded later will report the
// later loading time.
{
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithoutAutofill(
- TimeDelta::FromInternalValue(12)));
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromLoadWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithAutofill(_)).Times(0);
- EXPECT_CALL(*autofill_manager_->metric_logger(),
- LogFormFillDurationFromInteractionWithoutAutofill(_)).Times(0);
+ base::HistogramTester histogram_tester;
autofill_manager_->OnFormsSeen(forms, TimeTicks::FromInternalValue(1));
autofill_manager_->OnFormsSeen(second_forms,
TimeTicks::FromInternalValue(5));
autofill_manager_->FormSubmitted(second_form,
TimeTicks::FromInternalValue(17));
+
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromLoad.WithAutofill", 0);
+ histogram_tester.ExpectUniqueSample(
+ "Autofill.FillDuration.FromLoad.WithoutAutofill", 12, 1);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithAutofill", 0);
+ histogram_tester.ExpectTotalCount(
+ "Autofill.FillDuration.FromInteraction.WithoutAutofill", 0);
+
autofill_manager_->Reset();
- Mock::VerifyAndClearExpectations(autofill_manager_->metric_logger());
}
}
« no previous file with comments | « components/autofill/core/browser/autofill_metrics.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698