Index: chrome/browser/password_manager/native_backend_gnome_x_unittest.cc |
diff --git a/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc b/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc |
index bf648f9d1ba75eef8ab058c840d6476e067fc5fe..a634cb7fbab7623ffd78fd3c6880543a0b65050f 100644 |
--- a/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc |
+++ b/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc |
@@ -556,7 +556,8 @@ class NativeBackendGnomeTest : public testing::Test { |
FROM_HERE, |
base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
base::Unretained(&backend), |
- new_facebook)); |
+ new_facebook, |
+ base::Owned(new PasswordStoreChangeList))); |
break; |
case UPDATE_BY_ADDLOGIN: |
BrowserThread::PostTask( |
@@ -753,13 +754,19 @@ TEST_F(NativeBackendGnomeTest, BasicUpdateLogin) { |
CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
// Update login |
+ PasswordStoreChangeList changes; |
BrowserThread::PostTask( |
BrowserThread::DB, FROM_HERE, |
base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
- base::Unretained(&backend), new_form_google)); |
+ base::Unretained(&backend), |
+ new_form_google, |
+ base::Unretained(&changes))); |
RunBothThreads(); |
+ ASSERT_EQ(1u, changes.size()); |
+ EXPECT_EQ(PasswordStoreChange::UPDATE, changes.front().type()); |
+ EXPECT_EQ(new_form_google, changes.front().form()); |
EXPECT_EQ(1u, mock_keyring_items.size()); |
if (mock_keyring_items.size() > 0) |
CheckMockKeyringItem(&mock_keyring_items[0], new_form_google, "chrome-42"); |
@@ -831,6 +838,39 @@ TEST_F(NativeBackendGnomeTest, RemoveNonexistentLogin) { |
CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
} |
+TEST_F(NativeBackendGnomeTest, UpdateNonexistentLogin) { |
+ NativeBackendGnome backend(42); |
+ backend.Init(); |
+ |
+ // First add an unrelated login. |
+ BrowserThread::PostTask( |
+ BrowserThread::DB, FROM_HERE, |
+ base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin), |
+ base::Unretained(&backend), form_google_)); |
+ |
+ RunBothThreads(); |
+ |
+ EXPECT_EQ(1u, mock_keyring_items.size()); |
+ if (mock_keyring_items.size() > 0) |
+ CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
+ |
+ // Attempt to update a login that doesn't exist. |
+ PasswordStoreChangeList changes; |
+ BrowserThread::PostTask( |
+ BrowserThread::DB, FROM_HERE, |
+ base::Bind(base::IgnoreResult(&NativeBackendGnome::UpdateLogin), |
+ base::Unretained(&backend), |
+ form_isc_, |
+ base::Unretained(&changes))); |
+ |
+ RunBothThreads(); |
+ |
+ EXPECT_EQ(PasswordStoreChangeList(), changes); |
+ EXPECT_EQ(1u, mock_keyring_items.size()); |
+ if (mock_keyring_items.size() > 0) |
+ CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
+} |
+ |
TEST_F(NativeBackendGnomeTest, AddDuplicateLogin) { |
NativeBackendGnome backend(42); |
backend.Init(); |