| 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 0c4c6dc84250f419a8ed1cc307446ae0388670c5..46bbccc3090306b4f9d1ed3001b9089f6487cd04 100644
|
| --- a/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc
|
| +++ b/components/password_manager/content/browser/credential_manager_dispatcher_unittest.cc
|
| @@ -167,13 +167,15 @@ class CredentialManagerDispatcherTest
|
| form_.origin = web_contents()->GetLastCommittedURL().GetOrigin();
|
| form_.signon_realm = form_.origin.spec();
|
| form_.scheme = autofill::PasswordForm::SCHEME_HTML;
|
| + form_.skip_zero_click = false;
|
|
|
| form2_.username_value = base::ASCIIToUTF16("Username 2");
|
| form2_.display_name = base::ASCIIToUTF16("Display Name 2");
|
| form2_.password_value = base::ASCIIToUTF16("Password 2");
|
| form2_.origin = web_contents()->GetLastCommittedURL().GetOrigin();
|
| - form2_.signon_realm = form_.origin.spec();
|
| + form2_.signon_realm = form2_.origin.spec();
|
| form2_.scheme = autofill::PasswordForm::SCHEME_HTML;
|
| + form2_.skip_zero_click = false;
|
|
|
| cross_origin_form_.username_value = base::ASCIIToUTF16("Username");
|
| cross_origin_form_.display_name = base::ASCIIToUTF16("Display Name");
|
| @@ -181,6 +183,7 @@ class CredentialManagerDispatcherTest
|
| cross_origin_form_.origin = GURL("https://example.net/");
|
| cross_origin_form_.signon_realm = cross_origin_form_.origin.spec();
|
| cross_origin_form_.scheme = autofill::PasswordForm::SCHEME_HTML;
|
| + cross_origin_form_.skip_zero_click = false;
|
|
|
| store_->Clear();
|
| EXPECT_TRUE(store_->IsEmpty());
|
| @@ -404,6 +407,57 @@ TEST_F(CredentialManagerDispatcherTest,
|
| }
|
|
|
| TEST_F(CredentialManagerDispatcherTest,
|
| + OnRequestCredentialWithZeroClickOnlyOnePasswordStore) {
|
| + form_.skip_zero_click = true;
|
| + store_->AddLogin(form_);
|
| + store_->AddLogin(form2_);
|
| +
|
| + std::vector<GURL> federations;
|
| + dispatcher()->OnRequestCredential(kRequestId, true, federations);
|
| +
|
| + RunAllPendingTasks();
|
| +
|
| + const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID;
|
| + const IPC::Message* message =
|
| + process()->sink().GetFirstMessageMatching(kMsgID);
|
| + EXPECT_TRUE(message);
|
| + EXPECT_FALSE(client_->did_prompt_user_to_choose());
|
| + CredentialManagerMsg_SendCredential::Param send_param;
|
| + CredentialManagerMsg_SendCredential::Read(message, &send_param);
|
| +
|
| + // We should get |form2_| back, as |form_| is marked as skipping zero-click.
|
| + EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, get<1>(send_param).type);
|
| + EXPECT_EQ(form2_.username_value, get<1>(send_param).id);
|
| + EXPECT_EQ(form2_.display_name, get<1>(send_param).name);
|
| + EXPECT_EQ(form2_.password_value, get<1>(send_param).password);
|
| +}
|
| +
|
| +TEST_F(CredentialManagerDispatcherTest,
|
| + OnRequestCredentialWithZeroClickOnlyCrossOriginPasswordStore) {
|
| + store_->AddLogin(cross_origin_form_);
|
| +
|
| + form_.skip_zero_click = true;
|
| + store_->AddLogin(form_);
|
| +
|
| + std::vector<GURL> federations;
|
| + dispatcher()->OnRequestCredential(kRequestId, true, federations);
|
| +
|
| + RunAllPendingTasks();
|
| +
|
| + const uint32 kMsgID = CredentialManagerMsg_SendCredential::ID;
|
| + const IPC::Message* message =
|
| + process()->sink().GetFirstMessageMatching(kMsgID);
|
| + EXPECT_TRUE(message);
|
| + EXPECT_FALSE(client_->did_prompt_user_to_choose());
|
| + CredentialManagerMsg_SendCredential::Param send_param;
|
| + CredentialManagerMsg_SendCredential::Read(message, &send_param);
|
| +
|
| + // We only have cross-origin zero-click credentials; they should not be
|
| + // returned.
|
| + EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(send_param).type);
|
| +}
|
| +
|
| +TEST_F(CredentialManagerDispatcherTest,
|
| CredentialManagerOnRequestCredentialWhileRequestPending) {
|
| client_->set_zero_click_enabled(false);
|
| store_->AddLogin(form_);
|
|
|