Index: components/password_manager/core/browser/login_database_unittest.cc |
diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc |
index 4faaa8c968354a04d8eec941341a5141702b763f..5ec0e2ed88c338f46238a41719119811fc78c9f6 100644 |
--- a/components/password_manager/core/browser/login_database_unittest.cc |
+++ b/components/password_manager/core/browser/login_database_unittest.cc |
@@ -11,6 +11,7 @@ |
#include "base/path_service.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/test/histogram_tester.h" |
#include "base/time/time.h" |
#include "components/autofill/core/common/password_form.h" |
#include "components/password_manager/core/browser/psl_matching_helper.h" |
@@ -951,6 +952,79 @@ TEST_F(LoginDatabaseTest, UpdateLogin) { |
EXPECT_EQ(form, *result[0]); |
} |
+TEST_F(LoginDatabaseTest, ReportMetricsTest) { |
+ PasswordForm password_form; |
+ password_form.origin = GURL("http://example.com"); |
+ password_form.username_value = ASCIIToUTF16("test1@gmail.com"); |
+ password_form.password_value = ASCIIToUTF16("test"); |
+ password_form.signon_realm = "http://example.com/"; |
+ password_form.times_used = 0; |
+ EXPECT_EQ(AddChangeForForm(password_form), db_.AddLogin(password_form)); |
+ |
+ password_form.username_value = ASCIIToUTF16("test2@gmail.com"); |
+ password_form.times_used = 1; |
+ EXPECT_EQ(AddChangeForForm(password_form), db_.AddLogin(password_form)); |
+ |
+ password_form.origin = GURL("http://second.example.com"); |
+ password_form.signon_realm = "http://second.example.com"; |
+ password_form.times_used = 3; |
+ EXPECT_EQ(AddChangeForForm(password_form), db_.AddLogin(password_form)); |
+ |
+ password_form.username_value = ASCIIToUTF16("test3@gmail.com"); |
+ password_form.type = PasswordForm::TYPE_GENERATED; |
+ password_form.times_used = 2; |
+ EXPECT_EQ(AddChangeForForm(password_form), db_.AddLogin(password_form)); |
+ |
+ password_form.origin = GURL("http://third.example.com/"); |
+ password_form.signon_realm = "http://third.example.com/"; |
+ password_form.times_used = 4; |
+ EXPECT_EQ(AddChangeForForm(password_form), db_.AddLogin(password_form)); |
+ |
+ base::HistogramTester histogram_tester; |
+ db_.ReportMetrics("", false); |
+ |
+ histogram_tester.ExpectUniqueSample( |
+ "PasswordManager.TotalAccounts.UserCreated.WithoutCustomPassphrase", |
+ 3, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.AccountsPerSite.UserCreated.WithoutCustomPassphrase", |
+ 1, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.AccountsPerSite.UserCreated.WithoutCustomPassphrase", |
+ 2, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase", |
+ 0, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase", |
+ 1, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase", |
+ 3, |
+ 1); |
+ histogram_tester.ExpectUniqueSample( |
+ "PasswordManager.TotalAccounts.AutoGenerated.WithoutCustomPassphrase", |
+ 2, |
+ 1); |
+ histogram_tester.ExpectUniqueSample( |
+ "PasswordManager.AccountsPerSite.AutoGenerated.WithoutCustomPassphrase", |
+ 1, |
+ 2); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.TimesPasswordUsed.AutoGenerated.WithoutCustomPassphrase", |
+ 2, |
+ 1); |
+ histogram_tester.ExpectBucketCount( |
+ "PasswordManager.TimesPasswordUsed.AutoGenerated.WithoutCustomPassphrase", |
+ 4, |
+ 1); |
+} |
+ |
#if defined(OS_POSIX) |
// Only the current user has permission to read the database. |
// |