Chromium Code Reviews| Index: chrome/renderer/autofill/password_autofill_manager_browsertest.cc |
| =================================================================== |
| --- chrome/renderer/autofill/password_autofill_manager_browsertest.cc (revision 130897) |
| +++ chrome/renderer/autofill/password_autofill_manager_browsertest.cc (working copy) |
| @@ -80,16 +80,17 @@ |
| username3_ = ASCIIToUTF16(kCarolUsername); |
| password3_ = ASCIIToUTF16(kCarolPassword); |
| + FormField password_field; |
| + password_field.name = ASCIIToUTF16(kPasswordName); |
| + password_field.value = password1_; |
| + fill_data_.basic_data.fields.push_back(password_field); |
| + fill_data_only_password_.basic_data.fields.push_back(password_field); |
| + |
| FormField username_field; |
| username_field.name = ASCIIToUTF16(kUsernameName); |
| username_field.value = username1_; |
| fill_data_.basic_data.fields.push_back(username_field); |
| - FormField password_field; |
| - password_field.name = ASCIIToUTF16(kPasswordName); |
| - password_field.value = password1_; |
| - fill_data_.basic_data.fields.push_back(password_field); |
| - |
| fill_data_.additional_logins[username2_] = password2_; |
| fill_data_.additional_logins[username3_] = password3_; |
| @@ -99,6 +100,8 @@ |
| origin += kFormHTML; |
| fill_data_.basic_data.origin = GURL(origin); |
| fill_data_.basic_data.action = GURL("http://www.bidule.com"); |
| + fill_data_only_password_.basic_data.origin = GURL(origin); |
| + fill_data_only_password_.basic_data.action = GURL("http://www.bidule.com"); |
| LoadHTML(kFormHTML); |
| @@ -150,6 +153,13 @@ |
| EXPECT_EQ(password_autofilled, password_element_.isAutofilled()); |
| } |
| + void CheckPasswordTextFieldState(const std::string& password, |
| + bool password_autofilled) { |
| + EXPECT_EQ(password, |
| + static_cast<std::string>(password_element_.value().utf8())); |
| + EXPECT_EQ(password_autofilled, password_element_.isAutofilled()); |
| + } |
|
Ilya Sherman
2012/04/19 00:27:37
nit: Since this function is used only in a single
|
| + |
| void CheckUsernameSelection(int start, int end) { |
| EXPECT_EQ(start, username_element_.selectionStart()); |
| EXPECT_EQ(end, username_element_.selectionEnd()); |
| @@ -162,6 +172,7 @@ |
| string16 password2_; |
| string16 password3_; |
| PasswordFormFillData fill_data_; |
| + PasswordFormFillData fill_data_only_password_; |
|
Ilya Sherman
2012/04/19 00:27:37
nit: Since this is used only in a single test, ple
|
| WebInputElement username_element_; |
| WebInputElement password_element_; |
| @@ -203,6 +214,17 @@ |
| CheckTextFieldsState(kAliceUsername, true, kAlicePassword, true); |
| } |
| +// Tests that the password login is autocompleted as expected when the browser |
| +// sends back the password info if there is only a password field. |
| +TEST_F(PasswordAutofillManagerTest, InitialAutocompleteOnlyPassword) { |
| + // Simulate the browser sending back the login info, it triggers the |
| + // autocomplete. |
| + SimulateOnFillPasswordForm(fill_data_only_password_); |
| + |
| + // Only the password should have been autocompleted. |
| + CheckPasswordTextFieldState(kAlicePassword, true); |
| +} |
| + |
| // Tests that we correctly fill forms having an empty 'action' attribute. |
| TEST_F(PasswordAutofillManagerTest, InitialAutocompleteForEmptyAction) { |
| const char kEmptyActionFormHTML[] = |