diff options
author | vabr <vabr@chromium.org> | 2015-07-28 02:47:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-28 09:47:57 +0000 |
commit | fc0d8c7bbf39d85952ef225ea8b7e114c7682e42 (patch) | |
tree | 7283eb73e6e5385e21963af525fdb5a9aaf76c84 /components | |
parent | 35c6f0bb3a385ef8edf01f24eca02f447ccb1355 (diff) | |
download | chromium_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.gyp | 1 | ||||
-rw-r--r-- | components/password_manager/core/browser/password_manager_metrics_util_unittest.cc | 80 |
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 |