Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Unified Diff: chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc

Issue 335893002: Support to remove passwords by date_synced timestamp. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: vabr's comments Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 63db11b53e5ad2eaf3ab53719a4a7aa251922faa..1f1713d7cb1c4bacd7d9e1b85d00bc4e8911ad34 100644
--- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
+++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
@@ -171,12 +171,17 @@ class NativeBackendKWalletTestBase : public testing::Test {
const PasswordForm& actual);
static void CheckPasswordChanges(const PasswordStoreChangeList& expected,
const PasswordStoreChangeList& actual);
+ static void CheckPasswordChangesWithResult(
+ const PasswordStoreChangeList* expected,
+ const PasswordStoreChangeList* actual,
+ bool result);
PasswordForm old_form_google_;
PasswordForm form_google_;
PasswordForm form_isc_;
};
+// static
void NativeBackendKWalletTestBase::CheckPasswordForm(
const PasswordForm& expected, const PasswordForm& actual) {
EXPECT_EQ(expected.origin, actual.origin);
@@ -197,6 +202,7 @@ void NativeBackendKWalletTestBase::CheckPasswordForm(
EXPECT_EQ(expected.date_synced, actual.date_synced);
}
+// static
void NativeBackendKWalletTestBase::CheckPasswordChanges(
const PasswordStoreChangeList& expected,
const PasswordStoreChangeList& actual) {
@@ -207,6 +213,15 @@ void NativeBackendKWalletTestBase::CheckPasswordChanges(
}
}
+// static
+void NativeBackendKWalletTestBase::CheckPasswordChangesWithResult(
+ const PasswordStoreChangeList* expected,
+ const PasswordStoreChangeList* actual,
+ bool result) {
+ EXPECT_TRUE(result);
+ CheckPasswordChanges(*expected, *actual);
+}
+
class NativeBackendKWalletTest : public NativeBackendKWalletTestBase {
protected:
NativeBackendKWalletTest()
@@ -792,6 +807,73 @@ 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();
+
+ CheckPasswordForms("Chrome Form Data (42)", ExpectationArray());
+}
+
// TODO(mdm): add more basic tests here at some point.
// (For example tests for storing >1 password per realm pickle.)

Powered by Google App Engine
This is Rietveld 408576698