| Index: components/password_manager/core/browser/password_reuse_detector_unittest.cc
|
| diff --git a/components/password_manager/core/browser/password_reuse_detector_unittest.cc b/components/password_manager/core/browser/password_reuse_detector_unittest.cc
|
| index af8b7690ada2f93d76ca6aa1c5925a56353a6469..24e40f9e09656fb6dd3862f7915cb1cce5d39173 100644
|
| --- a/components/password_manager/core/browser/password_reuse_detector_unittest.cc
|
| +++ b/components/password_manager/core/browser/password_reuse_detector_unittest.cc
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "components/autofill/core/common/password_form.h"
|
| +#include "components/password_manager/core/browser/password_manager_test_utils.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -21,11 +22,6 @@ namespace password_manager {
|
|
|
| namespace {
|
|
|
| -class MockPasswordReuseDetectorConsumer : public PasswordReuseDetectorConsumer {
|
| - public:
|
| - MOCK_METHOD2(OnReuseFound, void(const base::string16&, const std::string&));
|
| -};
|
| -
|
| std::vector<std::unique_ptr<PasswordForm>> GetSavedForms() {
|
| std::vector<std::unique_ptr<PasswordForm>> result;
|
| std::vector<std::pair<std::string, std::string>> domains_passwords = {
|
| @@ -44,6 +40,16 @@ std::vector<std::unique_ptr<PasswordForm>> GetSavedForms() {
|
| return result;
|
| }
|
|
|
| +PasswordStoreChangeList GetChangeList(
|
| + PasswordStoreChange::Type type,
|
| + const std::vector<std::unique_ptr<PasswordForm>>& forms) {
|
| + PasswordStoreChangeList changes;
|
| + for (const auto& form : forms)
|
| + changes.push_back(PasswordStoreChange(type, *form));
|
| +
|
| + return changes;
|
| +}
|
| +
|
| TEST(PasswordReuseDetectorTest, TypingPasswordOnDifferentSite) {
|
| PasswordReuseDetector reuse_detector;
|
| reuse_detector.OnGetPasswordStoreResults(GetSavedForms());
|
| @@ -106,6 +112,26 @@ TEST(PasswordReuseDetectorTest, PasswordNotInputSuffixNoReuseEvent) {
|
| &mockConsumer);
|
| }
|
|
|
| +TEST(PasswordReuseDetectorTest, OnLoginsChanged) {
|
| + for (PasswordStoreChange::Type type :
|
| + {PasswordStoreChange::ADD, PasswordStoreChange::UPDATE,
|
| + PasswordStoreChange::REMOVE}) {
|
| + PasswordReuseDetector reuse_detector;
|
| + PasswordStoreChangeList changes = GetChangeList(type, GetSavedForms());
|
| + reuse_detector.OnLoginsChanged(changes);
|
| + MockPasswordReuseDetectorConsumer mockConsumer;
|
| +
|
| + if (type == PasswordStoreChange::REMOVE) {
|
| + EXPECT_CALL(mockConsumer, OnReuseFound(_, _)).Times(0);
|
| + } else {
|
| + EXPECT_CALL(mockConsumer,
|
| + OnReuseFound(ASCIIToUTF16("password"), "google.com"));
|
| + }
|
| + reuse_detector.CheckReuse(ASCIIToUTF16("123password"), "https://evil.com",
|
| + &mockConsumer);
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace password_manager
|
|
|