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

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

Issue 399573002: [Password Generation] Trigger confirmation bubble when a password is saved (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Win Again Created 6 years, 5 months 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_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 f1b5e33ce24ba12a7385d04781543c7a553ca038..25724c04be4abea5c64ed8e65c473e3633e1c443 100644
--- a/components/password_manager/core/browser/password_manager_unittest.cc
+++ b/components/password_manager/core/browser/password_manager_unittest.cc
@@ -45,10 +45,21 @@ class MockPasswordManagerClient : public StubPasswordManagerClient {
MOCK_CONST_METHOD0(IsPasswordManagerEnabledForCurrentPage, bool());
MOCK_CONST_METHOD2(IsSyncAccountCredential,
bool(const std::string&, const std::string&));
- MOCK_METHOD1(PromptUserToSavePassword, void(PasswordFormManager*));
+ MOCK_METHOD1(PromptUserToSavePasswordPtr, void(PasswordFormManager*));
+ MOCK_METHOD1(AutomaticPasswordSavePtr, void(PasswordFormManager*));
MOCK_METHOD0(GetPasswordStore, PasswordStore*());
MOCK_METHOD0(GetPrefs, PrefService*());
MOCK_METHOD0(GetDriver, PasswordManagerDriver*());
+
+ // Workaround for scoped_ptr<> lacking a copy constructor.
+ virtual void PromptUserToSavePassword(
+ scoped_ptr<PasswordFormManager> manager) OVERRIDE {
+ PromptUserToSavePasswordPtr(manager.release());
+ }
+ virtual void AutomaticPasswordSave(
+ scoped_ptr<PasswordFormManager> manager) OVERRIDE {
+ AutomaticPasswordSavePtr(manager.release());
+ }
};
class MockPasswordManagerDriver : public StubPasswordManagerDriver {
@@ -238,7 +249,7 @@ TEST_F(PasswordManagerTest, FormSubmitEmptyStore) {
manager()->ProvisionallySavePassword(form);
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
// Now the password manager waits for the navigation to complete.
@@ -272,7 +283,7 @@ TEST_F(PasswordManagerTest, FormSubmitWithOnlyNewPasswordField) {
manager()->ProvisionallySavePassword(form);
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
// Now the password manager waits for the navigation to complete.
@@ -318,9 +329,11 @@ TEST_F(PasswordManagerTest, GeneratedPasswordFormSubmitEmptyStore) {
// The user should not be presented with an infobar as they have already given
// consent by using the generated password. The form should be saved once
- // navigation occurs.
- EXPECT_CALL(client_, PromptUserToSavePassword(_)).Times(Exactly(0));
+ // navigation occurs. The client will be informed that automatic saving has
+ // occured.
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_)).Times(Exactly(0));
EXPECT_CALL(*store_.get(), AddLogin(FormMatches(form)));
+ EXPECT_CALL(client_, AutomaticPasswordSavePtr(_)).Times(Exactly(1));
// Now the password manager waits for the navigation to complete.
observed.clear();
@@ -350,7 +363,7 @@ TEST_F(PasswordManagerTest, FormSubmitNoGoodMatch) {
// We still expect an add, since we didn't have a good match.
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
// Now the password manager waits for the navigation to complete.
@@ -379,7 +392,7 @@ TEST_F(PasswordManagerTest, FormSeenThenLeftPage) {
// No message from the renderer that a password was submitted. No
// expected calls.
- EXPECT_CALL(client_, PromptUserToSavePassword(_)).Times(0);
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_)).Times(0);
observed.clear();
manager()->OnPasswordFormsParsed(observed); // The post-navigation load.
manager()->OnPasswordFormsRendered(observed,
@@ -407,7 +420,7 @@ TEST_F(PasswordManagerTest, FormSubmitAfterNavigateInPage) {
// Now the password manager waits for the navigation to complete.
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
observed.clear();
@@ -458,7 +471,7 @@ TEST_F(PasswordManagerTest, FormSubmitWithFormOnPreviousPage) {
// Navigation after form submit.
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
observed.clear();
manager()->OnPasswordFormsParsed(observed);
@@ -508,7 +521,7 @@ TEST_F(PasswordManagerTest, FormSubmitInvisibleLogin) {
// Expect info bar to appear:
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_))
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_))
.WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
// The form reappears, but is not visible in the layout:
@@ -591,8 +604,8 @@ TEST_F(PasswordManagerTest, FormSavedWithAutocompleteOff) {
// Password form should be saved.
scoped_ptr<PasswordFormManager> form_to_save;
- EXPECT_CALL(client_, PromptUserToSavePassword(_)).Times(Exactly(1)).WillOnce(
- WithArg<0>(SaveToScopedPtr(&form_to_save)));
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_)).Times(Exactly(1))
+ .WillOnce(WithArg<0>(SaveToScopedPtr(&form_to_save)));
EXPECT_CALL(*store_.get(), AddLogin(FormMatches(form))).Times(Exactly(0));
// Now the password manager waits for the navigation to complete.
@@ -624,9 +637,11 @@ TEST_F(PasswordManagerTest, GeneratedPasswordFormSavedAutocompleteOff) {
// The user should not be presented with an infobar as they have already given
// consent by using the generated password. The form should be saved once
- // navigation occurs.
- EXPECT_CALL(client_, PromptUserToSavePassword(_)).Times(Exactly(0));
+ // navigation occurs. The client will be informed that automatic saving has
+ // occured.
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_)).Times(Exactly(0));
EXPECT_CALL(*store_.get(), AddLogin(FormMatches(form)));
+ EXPECT_CALL(client_, AutomaticPasswordSavePtr(_)).Times(Exactly(1));
// Now the password manager waits for the navigation to complete.
observed.clear();
@@ -727,7 +742,7 @@ TEST_F(PasswordManagerTest, SyncCredentialsNotSaved) {
manager()->OnPasswordFormsRendered(observed, true); // The initial layout.
// User should not be prompted and password should not be saved.
- EXPECT_CALL(client_, PromptUserToSavePassword(_)).Times(Exactly(0));
+ EXPECT_CALL(client_, PromptUserToSavePasswordPtr(_)).Times(Exactly(0));
EXPECT_CALL(*store_.get(), AddLogin(FormMatches(form))).Times(Exactly(0));
// Submit form and finish navigation.

Powered by Google App Engine
This is Rietveld 408576698