Index: components/password_manager/core/browser/password_manager_unittest.cc |
diff --git a/components/password_manager/core/browser/password_manager_unittest.cc b/components/password_manager/core/browser/password_manager_unittest.cc |
index f1b9c07c3abf2f5b90ecfd3e6989b69c2ea5ee96..d0895e8c8b57054d7f483067314842dc94073955 100644 |
--- a/components/password_manager/core/browser/password_manager_unittest.cc |
+++ b/components/password_manager/core/browser/password_manager_unittest.cc |
@@ -61,8 +61,9 @@ |
MOCK_CONST_METHOD0(IsSavingAndFillingEnabledForCurrentPage, bool()); |
MOCK_CONST_METHOD0(DidLastPageLoadEncounterSSLErrors, bool()); |
MOCK_CONST_METHOD0(GetPasswordStore, PasswordStore*()); |
- MOCK_METHOD2(PromptUserToSaveOrUpdatePassword, |
- bool(scoped_refptr<PasswordFormManager>, bool)); |
+ // The code inside EXPECT_CALL for PromptUserToSaveOrUpdatePasswordPtr owns |
+ // the PasswordFormManager* argument. |
+ MOCK_METHOD1(PromptUserToSaveOrUpdatePasswordPtr, void(PasswordFormManager*)); |
MOCK_METHOD1(NotifySuccessfulLoginWithExistingPassword, |
void(const autofill::PasswordForm&)); |
MOCK_METHOD0(AutomaticPasswordSaveIndicator, void()); |
@@ -71,8 +72,15 @@ |
MOCK_METHOD0(GetDriver, PasswordManagerDriver*()); |
MOCK_CONST_METHOD0(GetStoreResultFilter, const MockStoreResultFilter*()); |
+ // Workaround for std::unique_ptr<> lacking a copy constructor. |
+ bool PromptUserToSaveOrUpdatePassword( |
+ std::unique_ptr<PasswordFormManager> manager, |
+ bool update_password) override { |
+ PromptUserToSaveOrUpdatePasswordPtr(manager.release()); |
+ return false; |
+ } |
void AutomaticPasswordSave( |
- scoped_refptr<PasswordFormManager> manager) override { |
+ std::unique_ptr<PasswordFormManager> manager) override { |
AutomaticPasswordSaveIndicator(); |
} |
@@ -101,6 +109,8 @@ |
ACTION(InvokeEmptyConsumerWithForms) { |
arg0->OnGetPasswordStoreResults(std::vector<std::unique_ptr<PasswordForm>>()); |
} |
+ |
+ACTION_P(SaveToScopedPtr, scoped) { scoped->reset(arg0); } |
} // namespace |
@@ -261,9 +271,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -303,7 +313,7 @@ |
// consent by using the generated password. The form should be saved once |
// navigation occurs. The client will be informed that automatic saving has |
// occured. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
PasswordForm form_to_save; |
EXPECT_CALL(*store_, AddLogin(_)).WillOnce(SaveArg<0>(&form_to_save)); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()); |
@@ -339,9 +349,9 @@ |
OnPasswordFormSubmitted(form); |
// We still expect an add, since we didn't have a good match. |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -365,7 +375,7 @@ |
// No message from the renderer that a password was submitted. No |
// expected calls. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
observed.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
@@ -387,9 +397,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
observed.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
@@ -436,9 +446,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(second_form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Navigation after form submit, no forms appear. |
observed.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
@@ -467,9 +477,9 @@ |
OnPasswordFormSubmitted(form); |
// Expect info bar to appear: |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// The form reappears, but is not visible in the layout: |
manager()->OnPasswordFormsParsed(&driver_, observed); |
@@ -541,7 +551,7 @@ |
observed.push_back(MakeTwitterFailedLoginForm()); |
// A PasswordForm appears, and is visible in the layout: |
// No expected calls to the PasswordStore... |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()).Times(0); |
EXPECT_CALL(*store_, AddLogin(_)).Times(0); |
EXPECT_CALL(*store_, UpdateLogin(_)).Times(0); |
@@ -561,7 +571,7 @@ |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
// User should not be prompted and password should not be saved. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(*store_, AddLogin(_)).Times(0); |
// Prefs are needed for failure logging about sync credentials. |
EXPECT_CALL(client_, GetPrefs()).WillRepeatedly(Return(nullptr)); |
@@ -588,7 +598,7 @@ |
// |observed_form| and not the |stored_form| what is passed to ShouldSave. |
observed_form.username_element += ASCIIToUTF16("1"); |
observed.push_back(observed_form); |
- EXPECT_CALL(driver_, FillPasswordForm(_)).Times(3); |
+ EXPECT_CALL(driver_, FillPasswordForm(_)).Times(2); |
// Simulate that |form| is already in the store, making this an update. |
EXPECT_CALL(*store_, GetLogins(_, _)) |
.WillRepeatedly(WithArg<1>(InvokeConsumer(stored_form))); |
@@ -674,7 +684,7 @@ |
// Because the user successfully uses an updated sync password, Chrome should |
// remove the obsolete copy of it. |
EXPECT_CALL(*store_, RemoveLogin(form)); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
observed.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
@@ -711,7 +721,7 @@ |
first_form.origin = GURL("http://www.xda-developers.com/"); |
first_form.action = GURL("http://forum.xda-developers.com/login.php"); |
- // |second_form|'s action differs only with it's scheme i.e. "https://". |
+ // |second_form|'s action differs only with it's scheme i.e. *https://*. |
PasswordForm second_form(first_form); |
second_form.action = GURL("https://forum.xda-developers.com/login.php"); |
@@ -732,7 +742,7 @@ |
observed.push_back(second_form); |
// Verify that no prompt to save the password is shown. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
} |
@@ -804,9 +814,9 @@ |
// Make sure |PromptUserToSaveOrUpdatePassword| gets called, and the resulting |
// form manager is saved. |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
EXPECT_CALL(client_, GetMainFrameURL()) |
.WillRepeatedly(ReturnRef(insecure_form.origin)); |
@@ -819,7 +829,7 @@ |
// Expect no further calls to |ProptUserToSaveOrUpdatePassword| due to |
// insecure origin. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
// Trigger call to |ProvisionalSavePassword| by rendering a page without |
// forms. |
@@ -855,9 +865,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the login to complete successfully. |
observed.clear(); |
@@ -888,9 +898,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -931,22 +941,18 @@ |
PasswordForm form(MakeSimpleForm()); |
observed.push_back(form); |
EXPECT_CALL(*store_, GetLogins(_, _)) |
- .Times(2) |
- .WillRepeatedly(WithArg<1>(InvokeEmptyConsumerWithForms())); |
- manager()->OnPasswordFormsParsed(&driver_, observed); |
- manager()->OnPasswordFormsRendered(&driver_, observed, true); |
- |
- EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage()) |
- .WillRepeatedly(Return(true)); |
- |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ .WillOnce(WithArg<1>(InvokeEmptyConsumerWithForms())); |
+ manager()->OnPasswordFormsParsed(&driver_, observed); |
+ manager()->OnPasswordFormsRendered(&driver_, observed, true); |
+ |
+ EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage()) |
+ .WillRepeatedly(Return(true)); |
+ |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
manager()->OnInPageNavigation(&driver_, form); |
- |
- // Checks |form_manager_to_save| is still in |pending_login_managers_|. |
- EXPECT_EQ(1u, manager()->pending_login_managers().size()); |
// Simulate saving the form, as if the info bar was accepted. |
EXPECT_CALL(*store_, AddLogin(FormMatches(form))); |
@@ -974,9 +980,9 @@ |
// Prefs are needed for failure logging about blacklisting. |
EXPECT_CALL(client_, GetPrefs()).WillRepeatedly(Return(nullptr)); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
manager()->OnInPageNavigation(&driver_, form); |
EXPECT_TRUE(form_manager_to_save->IsBlacklisted()); |
@@ -1009,9 +1015,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(submitted_form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -1062,9 +1068,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(submitted_form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -1114,9 +1120,9 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -1147,7 +1153,7 @@ |
autofill::PasswordForm updated_form; |
autofill::PasswordForm notified_form; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(*store_, UpdateLogin(_)).WillOnce(SaveArg<0>(&updated_form)); |
EXPECT_CALL(client_, NotifySuccessfulLoginWithExistingPassword(_)) |
.WillOnce(SaveArg<0>(¬ified_form)); |
@@ -1187,9 +1193,9 @@ |
static_cast<FormFetcherImpl*>(form_manager->form_fetcher()) |
->OnGetPasswordStoreResults(std::vector<std::unique_ptr<PasswordForm>>()); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
// Now the password manager waits for the navigation to complete. |
observed.clear(); |
@@ -1216,7 +1222,7 @@ |
manager()->SetHasGeneratedPasswordForForm(&driver_, form, true); |
// Do not save generated password when the password form reappears. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(*store_, AddLogin(_)).Times(0); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()).Times(0); |
@@ -1248,7 +1254,7 @@ |
OnPasswordFormSubmitted(form); |
// Do not save generated password when the password form reappears. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(*store_, AddLogin(_)).Times(0); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()).Times(0); |
@@ -1282,7 +1288,7 @@ |
OnPasswordFormSubmitted(form); |
// No infobar or prompt is shown if submission fails. |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()).Times(0); |
// Simulate submission failing, with the same form being visible after |
@@ -1314,9 +1320,9 @@ |
OnPasswordFormSubmitted(form); |
// Verify that a normal prompt is shown instead of the force saving UI. |
- scoped_refptr<PasswordFormManager> form_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save))); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()).Times(0); |
// Simulate a successful submission. |
@@ -1344,7 +1350,7 @@ |
form.username_value = ASCIIToUTF16("new_username"); |
OnPasswordFormSubmitted(form); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
PasswordForm form_to_save; |
EXPECT_CALL(*store_, AddLogin(_)).WillOnce(SaveArg<0>(&form_to_save)); |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()); |
@@ -1407,12 +1413,12 @@ |
.WillRepeatedly(WithArg<1>(InvokeEmptyConsumerWithForms())); |
EXPECT_CALL(*store_, GetLoginsForSameOrganizationName(_, _)); |
} |
- scoped_refptr<PasswordFormManager> form_manager; |
+ std::unique_ptr<PasswordFormManager> form_manager; |
if (found_matched_logins_in_store) { |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager), Return(false))); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager))); |
} else { |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
} |
EXPECT_CALL(client_, AutomaticPasswordSaveIndicator()) |
.Times(found_matched_logins_in_store ? 0 : 1); |
@@ -1479,11 +1485,11 @@ |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage()) |
- .WillRepeatedly(Return(true)); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage()) |
+ .WillRepeatedly(Return(true)); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
manager()->OnPasswordFormForceSaveRequested(&driver_, form); |
ASSERT_TRUE(form_manager_to_save); |
EXPECT_EQ(form.password_value, |
@@ -1508,7 +1514,7 @@ |
EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage()) |
.WillRepeatedly(Return(true)); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
manager()->OnPasswordFormForceSaveRequested(&driver_, empty_password_form); |
} |
@@ -1549,7 +1555,7 @@ |
.WillRepeatedly(Return(true)); |
OnPasswordFormSubmitted(form); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
observed.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |
@@ -1585,7 +1591,7 @@ |
PasswordForm saved_form; |
PasswordForm saved_notified_form; |
EXPECT_CALL(*store_, UpdateLogin(_)).WillOnce(SaveArg<0>(&saved_form)); |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)).Times(0); |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0); |
EXPECT_CALL(client_, NotifySuccessfulLoginWithExistingPassword(_)) |
.WillOnce(SaveArg<0>(&saved_notified_form)); |
EXPECT_CALL(*store_, AddLogin(_)).Times(0); |
@@ -1623,9 +1629,9 @@ |
filled_form.password_value = ASCIIToUTF16("new_password"); |
OnPasswordFormSubmitted(filled_form); |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
observed_forms.clear(); |
manager()->OnPasswordFormsParsed(&driver_, observed_forms); |
@@ -1674,9 +1680,9 @@ |
observed[0].new_password_value.clear(); |
// Check success of the submission. |
- scoped_refptr<PasswordFormManager> form_manager_to_save; |
- EXPECT_CALL(client_, PromptUserToSaveOrUpdatePassword(_, _)) |
- .WillOnce(DoAll(SaveArg<0>(&form_manager_to_save), Return(false))); |
+ std::unique_ptr<PasswordFormManager> form_manager_to_save; |
+ EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)) |
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_manager_to_save))); |
manager()->OnPasswordFormsParsed(&driver_, observed); |
manager()->OnPasswordFormsRendered(&driver_, observed, true); |