| Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| index bec975b9156f5ac7d7fe1efed8757a6954ce7b8d..91b234bf44dfc284b09c2a28e616baaa25f2d046 100644
|
| --- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| +++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
|
| @@ -10,6 +10,8 @@
|
| #include "components/autofill/content/renderer/form_autofill_util.h"
|
| #include "components/autofill/content/renderer/password_autofill_agent.h"
|
| #include "components/autofill/content/renderer/test_password_autofill_agent.h"
|
| +#include "components/autofill/core/common/autofill_constants.h"
|
| +#include "components/autofill/core/common/autofill_switches.h"
|
| #include "components/autofill/core/common/form_data.h"
|
| #include "components/autofill/core/common/form_field_data.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -396,12 +398,13 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest {
|
| render_thread_->sink().GetFirstMessageMatching(
|
| AutofillHostMsg_ShowPasswordSuggestions::ID);
|
| EXPECT_TRUE(message);
|
| - Tuple5<int, base::i18n::TextDirection, base::string16, bool, gfx::RectF>
|
| + Tuple5<int, base::i18n::TextDirection, base::string16, int, gfx::RectF>
|
| args;
|
| AutofillHostMsg_ShowPasswordSuggestions::Read(message, &args);
|
| EXPECT_EQ(kPasswordFillFormDataId, args.a);
|
| EXPECT_EQ(ASCIIToUTF16(username), args.c);
|
| - EXPECT_EQ(show_all, args.d);
|
| + EXPECT_EQ(show_all,
|
| + args.d & autofill::ShowPasswordSuggestionsOptions::SHOW_ALL);
|
|
|
| render_thread_->sink().ClearMessages();
|
| }
|
| @@ -1519,4 +1522,42 @@ TEST_F(PasswordAutofillAgentTest,
|
| CheckTextFieldsDOMState(kAliceUsername, true, kAlicePassword, true);
|
| }
|
|
|
| +TEST_F(PasswordAutofillAgentTest, FormFillDataMustHaveUsername) {
|
| + ClearUsernameAndPasswordFields();
|
| +
|
| + PasswordFormFillData no_username_fill_data = fill_data_;
|
| + no_username_fill_data.username_field.name = base::string16();
|
| + SimulateOnFillPasswordForm(no_username_fill_data);
|
| +
|
| + // The username and password should not have been autocompleted.
|
| + CheckTextFieldsState("", false, "", false);
|
| +}
|
| +
|
| +TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnly) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + autofill::switches::kEnableFillOnAccountSelect);
|
| +
|
| + ClearUsernameAndPasswordFields();
|
| +
|
| + // Simulate the browser sending back the login info for an initial page load.
|
| + SimulateOnFillPasswordForm(fill_data_);
|
| +
|
| + CheckTextFieldsState(std::string(), true, std::string(), false);
|
| +}
|
| +
|
| +TEST_F(PasswordAutofillAgentTest, FillOnAccountSelectOnlyReadonlyUsername) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + autofill::switches::kEnableFillOnAccountSelect);
|
| +
|
| + ClearUsernameAndPasswordFields();
|
| +
|
| + username_element_.setValue("alicia");
|
| + SetElementReadOnly(username_element_, true);
|
| +
|
| + // Simulate the browser sending back the login info for an initial page load.
|
| + SimulateOnFillPasswordForm(fill_data_);
|
| +
|
| + CheckTextFieldsState(std::string("alicia"), false, std::string(), true);
|
| +}
|
| +
|
| } // namespace autofill
|
|
|