Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Unified Diff: components/password_manager/core/browser/password_store_unittest.cc

Issue 2585253002: Integration of PasswordReuseDetector into PasswordStore. (Closed)
Patch Set: more tests Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_store_unittest.cc
diff --git a/components/password_manager/core/browser/password_store_unittest.cc b/components/password_manager/core/browser/password_store_unittest.cc
index c811bb41de40710e4ef53827787da565a4fc2148..cbddc8441104e99b27a30541aa2d810bb45ff50c 100644
--- a/components/password_manager/core/browser/password_store_unittest.cc
+++ b/components/password_manager/core/browser/password_store_unittest.cc
@@ -840,4 +840,55 @@ TEST_F(PasswordStoreTest, GetLoginsWithAffiliatedRealms) {
}
}
+TEST_F(PasswordStoreTest, CheckPasswordReuse) {
+ static const PasswordFormData kTestCredentials[] = {
vabr (Chromium) 2016/12/20 18:11:45 Would constexpr instead of const work? But +1 to
dvadym 2016/12/21 12:15:36 Done.
+ {PasswordForm::SCHEME_HTML, "https://www.google.com",
+ "https://www.google.com", "", L"", L"", L"", L"", L"password", true, 1},
+ {PasswordForm::SCHEME_HTML, "https://facebook.com",
+ "https://facebook.com", "", L"", L"", L"", L"", L"topsecret", true, 1}};
+
+ scoped_refptr<PasswordStoreDefault> store(new PasswordStoreDefault(
+ base::ThreadTaskRunnerHandle::Get(), base::ThreadTaskRunnerHandle::Get(),
+ base::MakeUnique<LoginDatabase>(test_login_db_file_path())));
+ store->Init(syncer::SyncableService::StartSyncFlare());
+
+ for (size_t i = 0; i < arraysize(kTestCredentials); ++i) {
vabr (Chromium) 2016/12/20 18:11:45 nit: for (const auto& testcase : kTestCredentials)
dvadym 2016/12/21 12:15:36 Done.
+ auto credentials =
+ CreatePasswordFormFromDataForTesting(kTestCredentials[i]);
+ store->AddLogin(*credentials);
+ base::RunLoop().RunUntilIdle();
+ }
+
+ static const struct {
vabr (Chromium) 2016/12/20 18:11:45 static constexpr?
dvadym 2016/12/21 12:15:36 Done.
+ const wchar_t* input;
+ const char* domain;
+ const wchar_t* reused_password; // set to nullptr if no reuse is expected.
vabr (Chromium) 2016/12/20 18:11:45 nit: set -> Set
dvadym 2016/12/21 12:15:36 Done.
+ const char* reuse_domain;
+ } kReuseTestData[] = {
+ {L"12345password", "https://evil.com", L"password", "google.com"},
+ {L"1234567890", "https://evil.com", nullptr, nullptr},
+ {L"topsecret", "https://m.facebook.com", nullptr, nullptr},
+ };
+
+ for (size_t i = 0; i < arraysize(kReuseTestData); ++i) {
vabr (Chromium) 2016/12/20 18:11:45 for (const auto& test_data : kReuseTestData) { an
dvadym 2016/12/21 12:15:36 Done.
+ MockPasswordReuseDetectorConsumer mockConsumer;
vabr (Chromium) 2016/12/20 18:11:45 nit: mockConsumer -> mock_consumer
dvadym 2016/12/21 12:15:36 Done.
+ const auto& test_data = kReuseTestData[i];
+ bool is_reuse_expected = test_data.reused_password;
+ if (is_reuse_expected) {
vabr (Chromium) 2016/12/20 18:11:45 nit: Just inline test_data.reused_password here.
dvadym 2016/12/21 12:15:36 Done.
+ EXPECT_CALL(mockConsumer,
+ OnReuseFound(base::WideToUTF16(test_data.reused_password),
+ std::string(test_data.reuse_domain)));
+ } else {
+ EXPECT_CALL(mockConsumer, OnReuseFound(_, _)).Times(0);
+ }
+
+ store->CheckReuse(base::WideToUTF16(test_data.input), test_data.domain,
+ &mockConsumer);
+ base::RunLoop().RunUntilIdle();
+ }
+
+ store->ShutdownOnUIThread();
+ base::RunLoop().RunUntilIdle();
+}
+
} // namespace password_manager

Powered by Google App Engine
This is Rietveld 408576698