summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorvabr <vabr@chromium.org>2015-07-28 02:47:03 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-28 09:47:57 +0000
commitfc0d8c7bbf39d85952ef225ea8b7e114c7682e42 (patch)
tree7283eb73e6e5385e21963af525fdb5a9aaf76c84 /components
parent35c6f0bb3a385ef8edf01f24eca02f447ccb1355 (diff)
downloadchromium_src-fc0d8c7bbf39d85952ef225ea8b7e114c7682e42.zip
chromium_src-fc0d8c7bbf39d85952ef225ea8b7e114c7682e42.tar.gz
chromium_src-fc0d8c7bbf39d85952ef225ea8b7e114c7682e42.tar.bz2
Move password_manager_metrics_util_unittest.cc to its component
Also do a necessary reformatting to pass the presubmit test. BUG=514209 Review URL: https://codereview.chromium.org/1254273002 Cr-Commit-Position: refs/heads/master@{#340660}
Diffstat (limited to 'components')
-rw-r--r--components/components_tests.gyp1
-rw-r--r--components/password_manager/core/browser/password_manager_metrics_util_unittest.cc80
2 files changed, 81 insertions, 0 deletions
diff --git a/components/components_tests.gyp b/components/components_tests.gyp
index 246ff17..aa40d13 100644
--- a/components/components_tests.gyp
+++ b/components/components_tests.gyp
@@ -388,6 +388,7 @@
'password_manager/core/browser/password_autofill_manager_unittest.cc',
'password_manager/core/browser/password_form_manager_unittest.cc',
'password_manager/core/browser/password_generation_manager_unittest.cc',
+ 'password_manager/core/browser/password_manager_metrics_util_unittest.cc',
'password_manager/core/browser/password_manager_unittest.cc',
'password_manager/core/browser/password_store_default_unittest.cc',
'password_manager/core/browser/password_store_unittest.cc',
diff --git a/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
new file mode 100644
index 0000000..d71aa3d
--- /dev/null
+++ b/components/password_manager/core/browser/password_manager_metrics_util_unittest.cc
@@ -0,0 +1,80 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/password_manager_metrics_util.h"
+
+#include <map>
+
+#include "base/macros.h"
+#include "base/prefs/pref_registry_simple.h"
+#include "base/prefs/scoped_user_pref_update.h"
+#include "base/prefs/testing_pref_service.h"
+#include "base/values.h"
+#include "components/password_manager/core/common/password_manager_pref_names.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace password_manager {
+
+class PasswordManagerMetricsUtilTest : public testing::Test {
+ protected:
+ void SetUp() override {
+ testing::Test::SetUp();
+ prefs_.registry()->RegisterListPref(
+ prefs::kPasswordManagerGroupsForDomains);
+ }
+
+ bool IsMonitored(const char* url_host) {
+ size_t group_id = metrics_util::MonitoredDomainGroupId(url_host, &prefs_);
+ return group_id > 0;
+ }
+
+ TestingPrefServiceSimple prefs_;
+};
+
+TEST_F(PasswordManagerMetricsUtilTest, MonitoredDomainGroupAssigmentTest) {
+ const char* const kMonitoredWebsites[] = {
+ "https://www.google.com", "https://www.yahoo.com",
+ "https://www.baidu.com", "https://www.wikipedia.org",
+ "https://www.linkedin.com", "https://www.twitter.com",
+ "https://www.facebook.com", "https://www.amazon.com",
+ "https://www.ebay.com", "https://www.tumblr.com",
+ };
+ const size_t kMonitoredWebsitesLength = arraysize(kMonitoredWebsites);
+
+ // |groups| maps the group id to the number of times the group gets assigned.
+ std::map<size_t, size_t> groups;
+
+ // Provide all possible values of the group id parameter for each monitored
+ // website.
+ for (size_t i = 0; i < kMonitoredWebsitesLength; ++i) {
+ for (size_t j = 0; j < metrics_util::kGroupsPerDomain; ++j) {
+ { // Set the group index for domain |i| to |j|.
+ ListPrefUpdate group_indices(&prefs_,
+ prefs::kPasswordManagerGroupsForDomains);
+ group_indices->Set(i, new base::FundamentalValue(static_cast<int>(j)));
+ } // At the end of the scope the prefs get updated.
+
+ ++groups[metrics_util::MonitoredDomainGroupId(kMonitoredWebsites[i],
+ &prefs_)];
+ }
+ }
+ // None of the monitored websites should have been assigned group ID 0.
+ EXPECT_EQ(0u, groups.count(0));
+
+ // Check if all groups get assigned the same number of times.
+ size_t number_of_assigments = groups.begin()->second;
+ for (auto it = groups.begin(); it != groups.end(); ++it) {
+ EXPECT_EQ(it->second, number_of_assigments) << " group id = " << it->first;
+ }
+}
+
+TEST_F(PasswordManagerMetricsUtilTest, MonitoredDomainGroupTest) {
+ EXPECT_TRUE(IsMonitored("https://www.linkedin.com"));
+ EXPECT_TRUE(IsMonitored("https://www.amazon.com"));
+ EXPECT_TRUE(IsMonitored("https://www.facebook.com"));
+ EXPECT_TRUE(IsMonitored("http://wikipedia.org"));
+ EXPECT_FALSE(IsMonitored("http://thisisnotwikipedia.org"));
+}
+
+} // namespace password_manager