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

Unified Diff: components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc

Issue 1832933002: Update the |skip_zero_click| flag of a credential when selected in the account chooser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 9 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/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;
+ 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())

Powered by Google App Engine
This is Rietveld 408576698