Chromium Code Reviews| Index: components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc |
| diff --git a/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc b/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc |
| index 77219ee179e472df168391f1d10b876ad8d7f825..cbe8921639165438ecf44780ceb0357a4d8c9029 100644 |
| --- a/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc |
| +++ b/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc |
| @@ -65,7 +65,7 @@ class MockPasswordManagerClient : public StubPasswordManagerClient { |
| bool(const std::vector<autofill::PasswordForm*>& local_forms, |
| const std::vector<autofill::PasswordForm*>& federated_forms, |
| const GURL& origin, |
| - base::Callback<void(const CredentialInfo&)> callback)); |
| + const CredentialsCallback& callback)); |
| explicit MockPasswordManagerClient(PasswordStore* store) : store_(store) { |
| prefs_.registry()->RegisterBooleanPref(prefs::kCredentialsEnableAutosignin, |
| @@ -96,14 +96,13 @@ class MockPasswordManagerClient : public StubPasswordManagerClient { |
| ScopedVector<autofill::PasswordForm> local_forms, |
| ScopedVector<autofill::PasswordForm> federated_forms, |
| const GURL& origin, |
| - base::Callback<void(const CredentialInfo&)> callback) { |
| + const CredentialsCallback& callback) { |
| EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); |
| - CredentialInfo info( |
| - local_forms.empty() ? *federated_forms[0] : *local_forms[0], |
| - local_forms.empty() ? CredentialType::CREDENTIAL_TYPE_FEDERATED |
| - : CredentialType::CREDENTIAL_TYPE_PASSWORD); |
| - base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| - base::Bind(callback, info)); |
| + const autofill::PasswordForm* form = |
| + local_forms.empty() ? federated_forms[0] : local_forms[0]; |
| + base::ThreadTaskRunnerHandle::Get()->PostTask( |
| + FROM_HERE, |
| + base::Bind(callback, base::Owned(new autofill::PasswordForm(*form)))); |
| PromptUserToChooseCredentialsPtr(local_forms.get(), federated_forms.get(), |
| origin, callback); |
| return true; |
| @@ -412,6 +411,39 @@ TEST_F(CredentialManagerDispatcherTest, |
| } |
| TEST_F(CredentialManagerDispatcherTest, |
| + CredentialManagerGetOverwriteZeroClick) { |
| + // Set the global zero click flag on, and populate the PasswordStore with a |
| + // form that's set to skip zero click and has a primary key that won't match |
| + // credentials initially created via `store()`. |
| + client_->set_zero_click_enabled(true); |
| + form_.skip_zero_click = true; |
| + form_.username_element = base::ASCIIToUTF16("username-element"); |
| + form_.password_element = base::ASCIIToUTF16("password-element"); |
| + form_.signon_realm = "this is a realm"; |
| + form_.origin = GURL("https://example.com/old_form.html"); |
| + store_->AddLogin(form_); |
| + RunAllPendingTasks(); |
| + |
| + std::vector<GURL> federations; |
| + EXPECT_CALL(*client_, PromptUserToChooseCredentialsPtr(_, _, _, _)) |
| + .Times(testing::Exactly(1)); |
| + EXPECT_CALL(*client_, NotifyUserAutoSigninPtr(_)).Times(testing::Exactly(0)); |
| + |
| + dispatcher()->OnRequestCredential(kRequestId, false, true, federations); |
| + |
| + RunAllPendingTasks(); |
| + |
| + const uint32_t kMsgID = CredentialManagerMsg_SendCredential::ID; |
|
vabr (Chromium)
2016/03/29 08:45:55
heads-up: If you get rebasing conflicts or post-re
vasilii
2016/03/29 09:57:44
No conflicts.
|
| + const IPC::Message* message = |
| + process()->sink().GetFirstMessageMatching(kMsgID); |
| + EXPECT_TRUE(message); |
| + |
| + // Verify that the update toggled the skip_zero_click flag. |
| + TestPasswordStore::PasswordMap passwords = store_->stored_passwords(); |
| + EXPECT_FALSE(passwords[form_.signon_realm][0].skip_zero_click); |
| +} |
| + |
| +TEST_F(CredentialManagerDispatcherTest, |
| CredentialManagerSignInWithSavingDisabledForCurrentPage) { |
| CredentialInfo info(form_, CredentialType::CREDENTIAL_TYPE_PASSWORD); |
| EXPECT_CALL(*client_, IsSavingAndFillingEnabledForCurrentPage()) |