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 0c4c6dc84250f419a8ed1cc307446ae0388670c5..5e8be8e0e8c7f67b0eb1c98b8b39e58a0599aac3 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,54 @@ 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 |form_| back, as |form2_| is marked as skipping zero-click. |
|
vasilii
2015/02/09 10:44:07
Actually |form_| is marked as skipping zero-click.
Mike West
2015/02/09 10:51:49
Good eye, thanks!
|
| + EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_LOCAL, get<1>(send_param).type); |
|
vabr (Chromium)
2015/02/09 10:31:13
Should you also check, e.g., the .name field to ve
vasilii
2015/02/09 10:44:07
Acknowledged.
Mike West
2015/02/09 10:51:49
Done.
|
| +} |
| + |
| +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_); |