| 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 1f1713d7cb1c4bacd7d9e1b85d00bc4e8911ad34..82315671a6c90f385b922850c36ef06b35a4d817 100644
|
| --- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| +++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| @@ -255,6 +255,14 @@ class NativeBackendKWalletTest : public NativeBackendKWalletTestBase {
|
| void CheckPasswordForms(const std::string& folder,
|
| const ExpectationArray& sorted_expected);
|
|
|
| + enum RemoveBetweenMethod {
|
| + CREATED,
|
| + SYNCED,
|
| + };
|
| +
|
| + // Tests RemoveLoginsCreatedBetween or RemoveLoginsSyncedBetween.
|
| + void TestRemoveLoginsBetween(RemoveBetweenMethod date_to_test);
|
| +
|
| base::MessageLoopForUI message_loop_;
|
| content::TestBrowserThread ui_thread_;
|
| content::TestBrowserThread db_thread_;
|
| @@ -324,6 +332,82 @@ void NativeBackendKWalletTest::TearDown() {
|
| db_thread_.Stop();
|
| }
|
|
|
| +void NativeBackendKWalletTest::TestRemoveLoginsBetween(
|
| + RemoveBetweenMethod date_to_test) {
|
| + NativeBackendKWalletStub backend(42);
|
| + EXPECT_TRUE(backend.InitWithBus(mock_session_bus_));
|
| +
|
| + form_google_.date_synced = base::Time();
|
| + form_isc_.date_synced = base::Time();
|
| + form_google_.date_created = base::Time();
|
| + form_isc_.date_created = base::Time();
|
| + base::Time now = base::Time::Now();
|
| + base::Time next_day = now + base::TimeDelta::FromDays(1);
|
| + if (date_to_test == CREATED) {
|
| + // crbug/374132. Remove the next line once it's fixed.
|
| + next_day = base::Time::FromTimeT(next_day.ToTimeT());
|
| + form_google_.date_created = now;
|
| + form_isc_.date_created = next_day;
|
| + } else {
|
| + form_google_.date_synced = now;
|
| + form_isc_.date_synced = next_day;
|
| + }
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::DB,
|
| + FROM_HERE,
|
| + base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin),
|
| + base::Unretained(&backend),
|
| + form_google_));
|
| + BrowserThread::PostTask(
|
| + BrowserThread::DB,
|
| + FROM_HERE,
|
| + base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin),
|
| + base::Unretained(&backend),
|
| + form_isc_));
|
| +
|
| + PasswordStoreChangeList expected_changes;
|
| + expected_changes.push_back(
|
| + PasswordStoreChange(PasswordStoreChange::REMOVE, form_google_));
|
| + PasswordStoreChangeList changes;
|
| + bool (NativeBackendKWallet::*method)(
|
| + base::Time, base::Time, password_manager::PasswordStoreChangeList*) =
|
| + date_to_test == CREATED
|
| + ? &NativeBackendKWalletStub::RemoveLoginsCreatedBetween
|
| + : &NativeBackendKWalletStub::RemoveLoginsSyncedBetween;
|
| + BrowserThread::PostTaskAndReplyWithResult(
|
| + BrowserThread::DB,
|
| + FROM_HERE,
|
| + base::Bind(
|
| + method, base::Unretained(&backend), base::Time(), next_day, &changes),
|
| + base::Bind(&NativeBackendKWalletTest::CheckPasswordChangesWithResult,
|
| + &expected_changes,
|
| + &changes));
|
| + RunDBThread();
|
| +
|
| + std::vector<const PasswordForm*> forms;
|
| + forms.push_back(&form_isc_);
|
| + ExpectationArray expected;
|
| + expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms));
|
| + CheckPasswordForms("Chrome Form Data (42)", expected);
|
| +
|
| + // Remove form_isc_.
|
| + expected_changes.clear();
|
| + expected_changes.push_back(
|
| + PasswordStoreChange(PasswordStoreChange::REMOVE, form_isc_));
|
| + BrowserThread::PostTaskAndReplyWithResult(
|
| + BrowserThread::DB,
|
| + FROM_HERE,
|
| + base::Bind(
|
| + method, base::Unretained(&backend), next_day, base::Time(), &changes),
|
| + base::Bind(&NativeBackendKWalletTest::CheckPasswordChangesWithResult,
|
| + &expected_changes,
|
| + &changes));
|
| + RunDBThread();
|
| +
|
| + CheckPasswordForms("Chrome Form Data (42)", ExpectationArray());
|
| +}
|
| +
|
| dbus::Response* NativeBackendKWalletTest::KLauncherMethodCall(
|
| dbus::MethodCall* method_call, testing::Unused) {
|
| EXPECT_EQ("org.kde.KLauncher", method_call->GetInterface());
|
| @@ -807,71 +891,12 @@ TEST_F(NativeBackendKWalletTest, ListLoginsAppends) {
|
| CheckPasswordForms("Chrome Form Data (42)", expected);
|
| }
|
|
|
| -TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) {
|
| - NativeBackendKWalletStub backend(42);
|
| - EXPECT_TRUE(backend.InitWithBus(mock_session_bus_));
|
| -
|
| - base::Time now = base::Time::Now();
|
| - base::Time next_day = now + base::TimeDelta::FromDays(1);
|
| - form_google_.date_synced = now;
|
| - form_isc_.date_synced = next_day;
|
| - form_google_.date_created = base::Time();
|
| - form_isc_.date_created = base::Time();
|
| -
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB,
|
| - FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin),
|
| - base::Unretained(&backend),
|
| - form_google_));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::DB,
|
| - FROM_HERE,
|
| - base::Bind(base::IgnoreResult(&NativeBackendKWalletStub::AddLogin),
|
| - base::Unretained(&backend),
|
| - form_isc_));
|
| -
|
| - PasswordStoreChangeList expected_changes;
|
| - expected_changes.push_back(
|
| - PasswordStoreChange(PasswordStoreChange::REMOVE, form_google_));
|
| - PasswordStoreChangeList changes;
|
| - BrowserThread::PostTaskAndReplyWithResult(
|
| - BrowserThread::DB,
|
| - FROM_HERE,
|
| - base::Bind(&NativeBackendKWalletStub::RemoveLoginsSyncedBetween,
|
| - base::Unretained(&backend),
|
| - base::Time(),
|
| - next_day,
|
| - &changes),
|
| - base::Bind(&NativeBackendKWalletTest::CheckPasswordChangesWithResult,
|
| - &expected_changes,
|
| - &changes));
|
| - RunDBThread();
|
| -
|
| - std::vector<const PasswordForm*> forms;
|
| - forms.push_back(&form_isc_);
|
| - ExpectationArray expected;
|
| - expected.push_back(make_pair(std::string(form_isc_.signon_realm), forms));
|
| - CheckPasswordForms("Chrome Form Data (42)", expected);
|
| -
|
| - // Remove form_isc_.
|
| - expected_changes.clear();
|
| - expected_changes.push_back(
|
| - PasswordStoreChange(PasswordStoreChange::REMOVE, form_isc_));
|
| - BrowserThread::PostTaskAndReplyWithResult(
|
| - BrowserThread::DB,
|
| - FROM_HERE,
|
| - base::Bind(&NativeBackendKWalletStub::RemoveLoginsSyncedBetween,
|
| - base::Unretained(&backend),
|
| - next_day,
|
| - base::Time(),
|
| - &changes),
|
| - base::Bind(&NativeBackendKWalletTest::CheckPasswordChangesWithResult,
|
| - &expected_changes,
|
| - &changes));
|
| - RunDBThread();
|
| +TEST_F(NativeBackendKWalletTest, RemoveLoginsCreatedBetween) {
|
| + TestRemoveLoginsBetween(CREATED);
|
| +}
|
|
|
| - CheckPasswordForms("Chrome Form Data (42)", ExpectationArray());
|
| +TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) {
|
| + TestRemoveLoginsBetween(SYNCED);
|
| }
|
|
|
| // TODO(mdm): add more basic tests here at some point.
|
|
|