| Index: chrome/renderer/autofill/password_autofill_manager_browsertest.cc
 | 
| ===================================================================
 | 
| --- chrome/renderer/autofill/password_autofill_manager_browsertest.cc	(revision 129489)
 | 
| +++ 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());
 | 
| +  }
 | 
| +
 | 
|    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_;
 | 
|  
 | 
|    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[] =
 | 
| 
 |