| Index: components/password_manager/core/browser/password_form_manager_unittest.cc
|
| diff --git a/components/password_manager/core/browser/password_form_manager_unittest.cc b/components/password_manager/core/browser/password_form_manager_unittest.cc
|
| index 30b7e325daeac7c635ff8627f91dfc9ba0776955..3646bdb40defff5a74e9a941c8c87f85ac846253 100644
|
| --- a/components/password_manager/core/browser/password_form_manager_unittest.cc
|
| +++ b/components/password_manager/core/browser/password_form_manager_unittest.cc
|
| @@ -226,14 +226,6 @@ class PasswordFormManagerTest : public testing::Test {
|
| manager->state_ = PasswordFormManager::MATCHING_PHASE;
|
| }
|
|
|
| - void SimulateResponseFromPasswordStore(
|
| - PasswordFormManager* manager,
|
| - const std::vector<PasswordForm*>& result) {
|
| - // Simply call the callback method when request done. This will transfer
|
| - // the ownership of the objects in |result| to the |manager|.
|
| - manager->OnGetPasswordStoreResults(result);
|
| - }
|
| -
|
| void SanitizePossibleUsernames(PasswordFormManager* p, PasswordForm* form) {
|
| p->SanitizePossibleUsernames(form);
|
| }
|
| @@ -769,8 +761,7 @@ TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage) {
|
| EXPECT_CALL(*(client()->mock_driver()), AllowPasswordGenerationForForm(_))
|
| .Times(1);
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_no_creds);
|
| - std::vector<PasswordForm*> result;
|
| - SimulateResponseFromPasswordStore(&manager_no_creds, result);
|
| + manager_no_creds.OnGetPasswordStoreResults(ScopedVector<PasswordForm>());
|
| Mock::VerifyAndClearExpectations(client()->mock_driver());
|
|
|
| // Signing up on a previously visited site. Credentials are found in the
|
| @@ -783,9 +774,9 @@ TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage) {
|
| EXPECT_CALL(*(client()->mock_driver()), IsOffTheRecord())
|
| .WillRepeatedly(Return(false));
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_creds);
|
| - // We need add heap allocated objects to result.
|
| - result.push_back(CreateSavedMatch(false));
|
| - SimulateResponseFromPasswordStore(&manager_creds, result);
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + manager_creds.OnGetPasswordStoreResults(simulated_results.Pass());
|
| Mock::VerifyAndClearExpectations(client()->mock_driver());
|
|
|
| // There are cases, such as when a form is explicitly for creating a new
|
| @@ -801,9 +792,8 @@ TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage) {
|
| EXPECT_CALL(*(client()->mock_driver()), IsOffTheRecord())
|
| .WillRepeatedly(Return(false));
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_dropped_creds);
|
| - result.clear();
|
| - result.push_back(CreateSavedMatch(false));
|
| - SimulateResponseFromPasswordStore(&manager_dropped_creds, result);
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + manager_dropped_creds.OnGetPasswordStoreResults(simulated_results.Pass());
|
| Mock::VerifyAndClearExpectations(client()->mock_driver());
|
|
|
| // Signing up on a previously visited site. Credentials are found in the
|
| @@ -814,9 +804,8 @@ TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage) {
|
| EXPECT_CALL(*(client()->mock_driver()), AllowPasswordGenerationForForm(_))
|
| .Times(0);
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_blacklisted);
|
| - result.clear();
|
| - result.push_back(CreateSavedMatch(true));
|
| - SimulateResponseFromPasswordStore(&manager_blacklisted, result);
|
| + simulated_results.push_back(CreateSavedMatch(true));
|
| + manager_blacklisted.OnGetPasswordStoreResults(simulated_results.Pass());
|
| Mock::VerifyAndClearExpectations(client()->mock_driver());
|
| }
|
|
|
| @@ -832,16 +821,15 @@ TEST_F(PasswordFormManagerTest, TestForceInclusionOfGeneratedPasswords) {
|
| EXPECT_CALL(*(client()->mock_driver()), IsOffTheRecord())
|
| .WillRepeatedly(Return(false));
|
|
|
| - std::vector<PasswordForm*> results;
|
| - results.push_back(CreateSavedMatch(false));
|
| - results.push_back(CreateSavedMatch(false));
|
| - results[1]->username_value = ASCIIToUTF16("other@gmail.com");
|
| - results[1]->password_element = ASCIIToUTF16("signup_password");
|
| - results[1]->username_element = ASCIIToUTF16("signup_username");
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results[1]->username_value = ASCIIToUTF16("other@gmail.com");
|
| + simulated_results[1]->password_element = ASCIIToUTF16("signup_password");
|
| + simulated_results[1]->username_element = ASCIIToUTF16("signup_username");
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_match);
|
| - SimulateResponseFromPasswordStore(&manager_match, results);
|
| + manager_match.OnGetPasswordStoreResults(simulated_results.Pass());
|
| EXPECT_EQ(1u, password_manager.GetLatestBestMatches().size());
|
| - results.clear();
|
|
|
| // Same thing, except this time the credentials that don't match quite as
|
| // well are generated. They should now be sent to Autofill().
|
| @@ -850,14 +838,14 @@ TEST_F(PasswordFormManagerTest, TestForceInclusionOfGeneratedPasswords) {
|
| EXPECT_CALL(*(client()->mock_driver()), AllowPasswordGenerationForForm(_))
|
| .Times(1);
|
|
|
| - results.push_back(CreateSavedMatch(false));
|
| - results.push_back(CreateSavedMatch(false));
|
| - results[1]->username_value = ASCIIToUTF16("other@gmail.com");
|
| - results[1]->password_element = ASCIIToUTF16("signup_password");
|
| - results[1]->username_element = ASCIIToUTF16("signup_username");
|
| - results[1]->type = PasswordForm::TYPE_GENERATED;
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results[1]->username_value = ASCIIToUTF16("other@gmail.com");
|
| + simulated_results[1]->password_element = ASCIIToUTF16("signup_password");
|
| + simulated_results[1]->username_element = ASCIIToUTF16("signup_username");
|
| + simulated_results[1]->type = PasswordForm::TYPE_GENERATED;
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager_no_match);
|
| - SimulateResponseFromPasswordStore(&manager_no_match, results);
|
| + manager_no_match.OnGetPasswordStoreResults(simulated_results.Pass());
|
| EXPECT_EQ(2u, password_manager.GetLatestBestMatches().size());
|
| }
|
|
|
| @@ -925,7 +913,7 @@ TEST_F(PasswordFormManagerTest, TestUpdateIncompleteCredentials) {
|
| form_manager.FetchMatchingLoginsFromPasswordStore(auth_policy);
|
|
|
| // Password store only has these incomplete credentials.
|
| - PasswordForm* incomplete_form = new PasswordForm();
|
| + scoped_ptr<PasswordForm> incomplete_form(new PasswordForm());
|
| incomplete_form->origin = GURL("http://accounts.google.com/LoginAuth");
|
| incomplete_form->signon_realm = "http://accounts.google.com/";
|
| incomplete_form->password_value = ASCIIToUTF16("my_password");
|
| @@ -948,9 +936,9 @@ TEST_F(PasswordFormManagerTest, TestUpdateIncompleteCredentials) {
|
| obsolete_form.action = encountered_form.action;
|
|
|
| // Feed the incomplete credentials to the manager.
|
| - std::vector<PasswordForm*> results;
|
| - results.push_back(incomplete_form); // Takes ownership.
|
| - form_manager.OnGetPasswordStoreResults(results);
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(incomplete_form.release());
|
| + form_manager.OnGetPasswordStoreResults(simulated_results.Pass());
|
|
|
| form_manager.ProvisionallySave(
|
| complete_form, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES);
|
| @@ -978,14 +966,16 @@ TEST_F(PasswordFormManagerTest, TestScoringPublicSuffixMatch) {
|
| // Second candidate has the same signon realm as the form, but has a different
|
| // origin and action. Public suffix match is the most important criterion so
|
| // the second candidate should be selected.
|
| - std::vector<PasswordForm*> results;
|
| - results.push_back(CreateSavedMatch(false));
|
| - results.push_back(CreateSavedMatch(false));
|
| - results[0]->original_signon_realm = "http://accounts2.google.com";
|
| - results[1]->origin = GURL("http://accounts.google.com/a/ServiceLoginAuth2");
|
| - results[1]->action = GURL("http://accounts.google.com/a/ServiceLogin2");
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
| + simulated_results[0]->original_signon_realm = "http://accounts2.google.com";
|
| + simulated_results[1]->origin =
|
| + GURL("http://accounts.google.com/a/ServiceLoginAuth2");
|
| + simulated_results[1]->action =
|
| + GURL("http://accounts.google.com/a/ServiceLogin2");
|
| SimulateFetchMatchingLoginsFromPasswordStore(&manager);
|
| - SimulateResponseFromPasswordStore(&manager, results);
|
| + manager.OnGetPasswordStoreResults(simulated_results.Pass());
|
| EXPECT_EQ(1u, password_manager.GetLatestBestMatches().size());
|
| EXPECT_EQ("", password_manager.GetLatestBestMatches()
|
| .begin()
|
| @@ -1229,31 +1219,31 @@ TEST_F(PasswordFormManagerTest, UploadFormData_AccountCreationPassword) {
|
|
|
| PasswordFormManager form_manager(&password_manager, &client_with_store,
|
| client_with_store.driver(), form, false);
|
| - std::vector<PasswordForm*> result;
|
| - result.push_back(CreateSavedMatch(false));
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(CreateSavedMatch(false));
|
|
|
| field.label = ASCIIToUTF16("full_name");
|
| field.name = ASCIIToUTF16("full_name");
|
| field.form_control_type = "text";
|
| - result[0]->form_data.fields.push_back(field);
|
| + simulated_results[0]->form_data.fields.push_back(field);
|
|
|
| field.label = ASCIIToUTF16("Email");
|
| field.name = ASCIIToUTF16("Email");
|
| field.form_control_type = "text";
|
| - result[0]->form_data.fields.push_back(field);
|
| + simulated_results[0]->form_data.fields.push_back(field);
|
|
|
| field.label = ASCIIToUTF16("password");
|
| field.name = ASCIIToUTF16("password");
|
| field.form_control_type = "password";
|
| - result[0]->form_data.fields.push_back(field);
|
| + simulated_results[0]->form_data.fields.push_back(field);
|
|
|
| PasswordForm form_to_save(form);
|
| form_to_save.preferred = true;
|
| - form_to_save.username_value = result[0]->username_value;
|
| - form_to_save.password_value = result[0]->password_value;
|
| + form_to_save.username_value = simulated_results[0]->username_value;
|
| + form_to_save.password_value = simulated_results[0]->password_value;
|
|
|
| SimulateFetchMatchingLoginsFromPasswordStore(&form_manager);
|
| - SimulateResponseFromPasswordStore(&form_manager, result);
|
| + form_manager.OnGetPasswordStoreResults(simulated_results.Pass());
|
|
|
| EXPECT_CALL(*client_with_store.mock_driver()->mock_autofill_manager(),
|
| UploadPasswordForm(_, autofill::ACCOUNT_CREATION_PASSWORD))
|
| @@ -1338,9 +1328,9 @@ TEST_F(PasswordFormManagerTest, DriverDeletedBeforeStoreDone) {
|
| // Suddenly, the frame and its driver disappear.
|
| client_with_store.KillDriver();
|
|
|
| - std::vector<PasswordForm*> results;
|
| - results.push_back(form.release());
|
| - form_manager.OnGetPasswordStoreResults(results);
|
| + ScopedVector<PasswordForm> simulated_results;
|
| + simulated_results.push_back(form.release());
|
| + form_manager.OnGetPasswordStoreResults(simulated_results.Pass());
|
| }
|
|
|
| } // namespace password_manager
|
|
|