Index: components/password_manager/sync/browser/sync_credentials_filter_unittest.cc |
diff --git a/components/password_manager/sync/browser/sync_credentials_filter_unittest.cc b/components/password_manager/sync/browser/sync_credentials_filter_unittest.cc |
index bb43bdc65df0a069cf707c43b52c9eb5a588cbce..a74a4711fb13899030dd0f41fb1419129220f006 100644 |
--- a/components/password_manager/sync/browser/sync_credentials_filter_unittest.cc |
+++ b/components/password_manager/sync/browser/sync_credentials_filter_unittest.cc |
@@ -16,10 +16,12 @@ |
#include "base/memory/ptr_util.h" |
#include "base/memory/scoped_vector.h" |
#include "base/message_loop/message_loop.h" |
+#include "base/strings/utf_string_conversions.h" |
#include "base/test/histogram_tester.h" |
#include "base/test/scoped_feature_list.h" |
#include "base/test/user_action_tester.h" |
#include "components/autofill/core/common/password_form.h" |
+#include "components/password_manager/core/browser/fake_form_fetcher.h" |
#include "components/password_manager/core/browser/mock_password_store.h" |
#include "components/password_manager/core/browser/password_manager.h" |
#include "components/password_manager/core/browser/password_manager_test_utils.h" |
@@ -94,21 +96,30 @@ class CredentialsFilterTest : public SyncUsernameTestBase { |
CredentialsFilterTest() |
: password_manager_(&client_), |
+ pending_(SimpleGaiaForm("user@gmail.com")), |
+ form_manager_(&password_manager_, |
+ &client_, |
+ driver_.AsWeakPtr(), |
+ pending_, |
+ base::MakeUnique<StubFormSaver>(), |
+ &fetcher_), |
filter_(&client_, |
base::Bind(&SyncUsernameTestBase::sync_service, |
base::Unretained(this)), |
base::Bind(&SyncUsernameTestBase::signin_manager, |
- base::Unretained(this))) {} |
+ base::Unretained(this))) { |
+ fetcher_.Fetch(); |
+ } |
void CheckFilterResultsTestCase(const TestCase& test_case) { |
SetSyncingPasswords(test_case.password_sync == TestCase::SYNCING_PASSWORDS); |
FakeSigninAs(test_case.fake_sync_username); |
- client()->set_last_committed_entry_url(test_case.last_committed_entry_url); |
+ client_.set_last_committed_entry_url(test_case.last_committed_entry_url); |
base::HistogramTester tester; |
const bool expected_is_form_filtered = |
test_case.is_form_filtered == TestCase::FORM_FILTERED; |
EXPECT_EQ(expected_is_form_filtered, |
- IsFormFiltered(filter(), test_case.form)); |
+ IsFormFiltered(&filter_, test_case.form)); |
if (test_case.histogram_reported == TestCase::HISTOGRAM_REPORTED) { |
tester.ExpectUniqueSample("PasswordManager.SyncCredentialFiltered", |
expected_is_form_filtered, 1); |
@@ -118,36 +129,27 @@ class CredentialsFilterTest : public SyncUsernameTestBase { |
FakeSignout(); |
} |
- // Creates a PasswordFormManager for the |pending| form and provisionally |
- // saves it. Ensures that the created manager's IsNewLogin responds according |
- // to |login_state|. |
- std::unique_ptr<PasswordFormManager> CreateFormManager( |
- LoginState login_state, |
- const PasswordForm& pending) { |
- auto form_manager = base::MakeUnique<PasswordFormManager>( |
- &password_manager_, &client_, driver_.AsWeakPtr(), pending, |
- base::MakeUnique<StubFormSaver>()); |
- |
- std::vector<std::unique_ptr<PasswordForm>> saved_forms; |
+ // Makes |form_manager_| provisionally save |pending_|. Depending on |
+ // |login_state| being NEW or EXISTING, prepares |form_manager_| in a state in |
+ // which |pending_| looks like a new or existing credential, respectively. |
+ void SavePending(LoginState login_state) { |
+ std::vector<const PasswordForm*> matches; |
if (login_state == LoginState::EXISTING) { |
- saved_forms.push_back(base::MakeUnique<PasswordForm>(pending)); |
+ matches.push_back(&pending_); |
} |
- form_manager->OnGetPasswordStoreResults(std::move(saved_forms)); |
- |
- form_manager->ProvisionallySave( |
- pending, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
+ fetcher_.SetNonFederated(matches, 0u); |
- return form_manager; |
+ form_manager_.ProvisionallySave( |
+ pending_, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
} |
- SyncCredentialsFilter* filter() { return &filter_; } |
- |
- FakePasswordManagerClient* client() { return &client_; } |
- |
- private: |
+ protected: |
FakePasswordManagerClient client_; |
PasswordManager password_manager_; |
StubPasswordManagerDriver driver_; |
+ PasswordForm pending_; |
+ FakeFormFetcher fetcher_; |
+ PasswordFormManager form_manager_; |
SyncCredentialsFilter filter_; |
}; |
@@ -280,57 +282,55 @@ TEST_F(CredentialsFilterTest, FilterResults_DisallowSync) { |
} |
TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_ExistingSyncCredentials) { |
- PasswordForm pending = SimpleGaiaForm("user@gmail.com"); |
FakeSigninAs("user@gmail.com"); |
SetSyncingPasswords(true); |
base::UserActionTester tester; |
- auto form_manager = CreateFormManager(LoginState::EXISTING, pending); |
- filter()->ReportFormLoginSuccess(*form_manager); |
+ SavePending(LoginState::EXISTING); |
+ filter_.ReportFormLoginSuccess(form_manager_); |
EXPECT_EQ(1, tester.GetActionCount(kFilledAndLoginActionName)); |
} |
TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NewSyncCredentials) { |
- PasswordForm pending = SimpleGaiaForm("user@gmail.com"); |
FakeSigninAs("user@gmail.com"); |
SetSyncingPasswords(true); |
base::UserActionTester tester; |
- auto form_manager = CreateFormManager(LoginState::NEW, pending); |
- filter()->ReportFormLoginSuccess(*form_manager); |
+ SavePending(LoginState::NEW); |
+ filter_.ReportFormLoginSuccess(form_manager_); |
EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); |
} |
TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_GAIANotSyncCredentials) { |
- PasswordForm pending = SimpleGaiaForm("user@gmail.com"); |
- FakeSigninAs("other_user@gmail.com"); |
+ const char kOtherUsername[] = "other_user@gmail.com"; |
+ FakeSigninAs(kOtherUsername); |
+ ASSERT_NE(pending_.username_value, base::ASCIIToUTF16(kOtherUsername)); |
SetSyncingPasswords(true); |
base::UserActionTester tester; |
- auto form_manager = CreateFormManager(LoginState::EXISTING, pending); |
- filter()->ReportFormLoginSuccess(*form_manager); |
+ SavePending(LoginState::EXISTING); |
+ filter_.ReportFormLoginSuccess(form_manager_); |
EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); |
} |
TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotGAIACredentials) { |
- PasswordForm pending = SimpleNonGaiaForm("user@gmail.com"); |
+ pending_ = SimpleNonGaiaForm("user@gmail.com"); |
FakeSigninAs("user@gmail.com"); |
SetSyncingPasswords(true); |
base::UserActionTester tester; |
- auto form_manager = CreateFormManager(LoginState::EXISTING, pending); |
- filter()->ReportFormLoginSuccess(*form_manager); |
+ SavePending(LoginState::EXISTING); |
+ filter_.ReportFormLoginSuccess(form_manager_); |
EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); |
} |
TEST_F(CredentialsFilterTest, ReportFormLoginSuccess_NotSyncing) { |
- PasswordForm pending = SimpleGaiaForm("user@gmail.com"); |
FakeSigninAs("user@gmail.com"); |
SetSyncingPasswords(false); |
base::UserActionTester tester; |
- auto form_manager = CreateFormManager(LoginState::EXISTING, pending); |
- filter()->ReportFormLoginSuccess(*form_manager); |
+ SavePending(LoginState::EXISTING); |
+ filter_.ReportFormLoginSuccess(form_manager_); |
EXPECT_EQ(0, tester.GetActionCount(kFilledAndLoginActionName)); |
} |
@@ -340,7 +340,7 @@ TEST_F(CredentialsFilterTest, ShouldSave_NotSyncCredential) { |
ASSERT_NE("user@example.org", |
signin_manager()->GetAuthenticatedAccountInfo().email); |
SetSyncingPasswords(true); |
- EXPECT_TRUE(filter()->ShouldSave(form)); |
+ EXPECT_TRUE(filter_.ShouldSave(form)); |
} |
TEST_F(CredentialsFilterTest, ShouldSave_SyncCredential) { |
@@ -348,7 +348,7 @@ TEST_F(CredentialsFilterTest, ShouldSave_SyncCredential) { |
FakeSigninAs("user@example.org"); |
SetSyncingPasswords(true); |
- EXPECT_FALSE(filter()->ShouldSave(form)); |
+ EXPECT_FALSE(filter_.ShouldSave(form)); |
} |
TEST_F(CredentialsFilterTest, ShouldSave_SyncCredential_NotSyncingPasswords) { |
@@ -356,7 +356,7 @@ TEST_F(CredentialsFilterTest, ShouldSave_SyncCredential_NotSyncingPasswords) { |
FakeSigninAs("user@example.org"); |
SetSyncingPasswords(false); |
- EXPECT_TRUE(filter()->ShouldSave(form)); |
+ EXPECT_TRUE(filter_.ShouldSave(form)); |
} |
TEST_F(CredentialsFilterTest, ShouldFilterOneForm) { |
@@ -376,7 +376,7 @@ TEST_F(CredentialsFilterTest, ShouldFilterOneForm) { |
FakeSigninAs("test1@gmail.com"); |
- results = filter()->FilterResults(std::move(results)); |
+ results = filter_.FilterResults(std::move(results)); |
ASSERT_EQ(1u, results.size()); |
EXPECT_EQ(SimpleGaiaForm("test2@gmail.com"), *results[0]); |