| Index: components/password_manager/core/browser/login_database_unittest.cc | 
| diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc | 
| index 1039746f9cdfba080edbb429fc2050c9e70ebe7f..52c4c0dd2cd03f8955b28be37334c6fa9d694902 100644 | 
| --- a/components/password_manager/core/browser/login_database_unittest.cc | 
| +++ b/components/password_manager/core/browser/login_database_unittest.cc | 
| @@ -29,6 +29,11 @@ PasswordStoreChangeList AddChangeForForm(const PasswordForm& form) { | 
| form)); | 
| } | 
|  | 
| +PasswordStoreChangeList UpdateChangeForForm(const PasswordForm& form) { | 
| +  return PasswordStoreChangeList(1, PasswordStoreChange( | 
| +      PasswordStoreChange::UPDATE, form)); | 
| +} | 
| + | 
| }  // namespace | 
|  | 
| // Serialization routines for vectors implemented in login_database.cc. | 
| @@ -214,9 +219,7 @@ TEST_F(LoginDatabaseTest, Logins) { | 
|  | 
| // We update, and check to make sure it matches the | 
| // old form, and there is only one record. | 
| -  int rows_changed = 0; | 
| -  EXPECT_TRUE(db_.UpdateLogin(form6, &rows_changed)); | 
| -  EXPECT_EQ(1, rows_changed); | 
| +  EXPECT_EQ(UpdateChangeForForm(form6), db_.UpdateLogin(form6)); | 
| // matches | 
| EXPECT_TRUE(db_.GetLogins(form5, &result)); | 
| EXPECT_EQ(1U, result.size()); | 
| @@ -748,7 +751,8 @@ TEST_F(LoginDatabaseTest, UpdateIncompleteCredentials) { | 
| completed_form.username_element = encountered_form.username_element; | 
| completed_form.password_element = encountered_form.password_element; | 
| completed_form.submit_element = encountered_form.submit_element; | 
| -  EXPECT_TRUE(db_.UpdateLogin(completed_form, NULL)); | 
| +  EXPECT_EQ(AddChangeForForm(completed_form), db_.AddLogin(completed_form)); | 
| +  EXPECT_TRUE(db_.RemoveLogin(incomplete_form)); | 
|  | 
| // Get matches for encountered_form again. | 
| EXPECT_TRUE(db_.GetLogins(encountered_form, &result)); | 
| @@ -787,6 +791,9 @@ TEST_F(LoginDatabaseTest, UpdateOverlappingCredentials) { | 
| complete_form.username_element = ASCIIToUTF16("username_element"); | 
| complete_form.password_element = ASCIIToUTF16("password_element"); | 
| complete_form.submit_element = ASCIIToUTF16("submit"); | 
| + | 
| +  // An update fails because the primary key for |complete_form| is different. | 
| +  EXPECT_EQ(PasswordStoreChangeList(), db_.UpdateLogin(complete_form)); | 
| EXPECT_EQ(AddChangeForForm(complete_form), db_.AddLogin(complete_form)); | 
|  | 
| // Make sure both passwords exist. | 
| @@ -797,19 +804,22 @@ TEST_F(LoginDatabaseTest, UpdateOverlappingCredentials) { | 
|  | 
| // Simulate the user changing their password. | 
| complete_form.password_value = ASCIIToUTF16("new_password"); | 
| -  EXPECT_TRUE(db_.UpdateLogin(complete_form, NULL)); | 
| +  EXPECT_EQ(UpdateChangeForForm(complete_form), db_.UpdateLogin(complete_form)); | 
|  | 
| -  // Only one updated form should exist now. | 
| +  // Both still exist now. | 
| EXPECT_TRUE(db_.GetAutofillableLogins(&result.get())); | 
| -  ASSERT_EQ(1U, result.size()); | 
| +  ASSERT_EQ(2U, result.size()); | 
|  | 
| -  PasswordForm expected_form(complete_form); | 
| #if defined(OS_MACOSX) && !defined(OS_IOS) | 
| // On Mac, passwords are not stored in login database, instead they're in | 
| // the keychain. | 
| -  expected_form.password_value.clear(); | 
| +  complete_form.password_value.clear(); | 
| +  incomplete_form.password_value.clear(); | 
| #endif  // OS_MACOSX && !OS_IOS | 
| -  EXPECT_EQ(expected_form, *result[0]); | 
| +  if (result[0]->username_element.empty()) | 
| +    std::swap(result[0], result[1]); | 
| +  EXPECT_EQ(complete_form, *result[0]); | 
| +  EXPECT_EQ(incomplete_form, *result[1]); | 
| } | 
|  | 
| TEST_F(LoginDatabaseTest, DoubleAdd) { | 
|  |