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 ee9efa108d4931e06cbb871f6efd0487db0968c7..58e1b2bf619234d0e81179a6d3dbcf7a1ab2895d 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 (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 |