Index: chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
diff --git a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
index 44650942f0b7c27c1e12208e314eeec16c50c6d5..1b3e96624787d7bd54717ca9c5f4b9891f7d8ad6 100644 |
--- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
+++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
@@ -29,6 +29,8 @@ |
using autofill::PasswordForm; |
using base::UTF8ToUTF16; |
using content::BrowserThread; |
+using password_manager::PasswordStoreChange; |
+using password_manager::PasswordStoreChangeList; |
using testing::_; |
using testing::Invoke; |
using testing::Return; |
@@ -163,8 +165,10 @@ class NativeBackendKWalletTestBase : public testing::Test { |
form_isc_.signon_realm = "ISC"; |
} |
- void CheckPasswordForm(const PasswordForm& expected, |
- const PasswordForm& actual); |
+ static void CheckPasswordForm(const PasswordForm& expected, |
+ const PasswordForm& actual); |
+ static void CheckPasswordChanges(const PasswordStoreChangeList& expected, |
+ const PasswordStoreChangeList& actual); |
PasswordForm old_form_google_; |
PasswordForm form_google_; |
@@ -190,6 +194,16 @@ void NativeBackendKWalletTestBase::CheckPasswordForm( |
EXPECT_EQ(expected.scheme, actual.scheme); |
} |
+void NativeBackendKWalletTestBase::CheckPasswordChanges( |
+ const PasswordStoreChangeList& expected, |
+ const PasswordStoreChangeList& actual) { |
+ ASSERT_EQ(expected.size(), actual.size()); |
+ for (size_t i = 0; i < expected.size(); ++i) { |
+ EXPECT_EQ(expected[i].type(), actual[i].type()); |
+ CheckPasswordForm(expected[i].form(), actual[i].form()); |
+ } |
+} |
+ |
class NativeBackendKWalletTest : public NativeBackendKWalletTestBase { |
protected: |
NativeBackendKWalletTest() |
@@ -634,14 +648,29 @@ TEST_F(NativeBackendKWalletTest, AddDuplicateLogin) { |
NativeBackendKWalletStub backend(42); |
EXPECT_TRUE(backend.InitWithBus(mock_session_bus_)); |
- BrowserThread::PostTask( |
+ PasswordStoreChangeList changes; |
+ changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, |
+ form_google_)); |
+ BrowserThread::PostTaskAndReplyWithResult( |
BrowserThread::DB, FROM_HERE, |
- base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
- base::Unretained(&backend), form_google_)); |
- BrowserThread::PostTask( |
+ base::Bind(&NativeBackendKWalletStub::AddLogin, |
+ base::Unretained(&backend), form_google_), |
+ base::Bind(&NativeBackendKWalletTest::CheckPasswordChanges, |
+ changes)); |
+ |
+ changes.clear(); |
+ changes.push_back(PasswordStoreChange(PasswordStoreChange::REMOVE, |
+ form_google_)); |
+ form_google_.times_used++; |
+ changes.push_back(PasswordStoreChange(PasswordStoreChange::ADD, |
+ form_google_)); |
+ |
+ BrowserThread::PostTaskAndReplyWithResult( |
BrowserThread::DB, FROM_HERE, |
- base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin), |
- base::Unretained(&backend), form_google_)); |
+ base::Bind(&NativeBackendKWalletStub::AddLogin, |
+ base::Unretained(&backend), form_google_), |
+ base::Bind(&NativeBackendKWalletTest::CheckPasswordChanges, |
+ changes)); |
RunDBThread(); |