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

Unified Diff: chrome/browser/password_manager/native_backend_gnome_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: Sync integration tests 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_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 cf8f22147f87d10f50823f0bb103f5f1945a54b4..1729e749cd5bbfcc48ef28e9c2dc233ed80e3983 100644
--- a/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
+++ b/chrome/browser/password_manager/native_backend_gnome_x_unittest.cc
@@ -309,6 +309,13 @@ void CheckPasswordChanges(const PasswordStoreChangeList& expected_list,
}
}
+void CheckPasswordChangesWithResult(const PasswordStoreChangeList* expected,
+ const PasswordStoreChangeList* actual,
+ bool result) {
+ EXPECT_TRUE(result);
+ CheckPasswordChanges(*expected, *actual);
+}
+
} // anonymous namespace
class NativeBackendGnomeTest : public testing::Test {
@@ -948,4 +955,53 @@ TEST_F(NativeBackendGnomeTest, ListLoginsAppends) {
CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42");
}
+TEST_F(NativeBackendGnomeTest, RemoveLoginsSyncedBetween) {
+ NativeBackendGnome backend(42);
+ backend.Init();
+
+ 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(&NativeBackendGnome::AddLogin),
+ base::Unretained(&backend), form_google_));
+ BrowserThread::PostTask(
+ BrowserThread::DB, FROM_HERE,
+ base::Bind(base::IgnoreResult(&NativeBackendGnome::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(&NativeBackendGnome::RemoveLoginsSyncedBetween,
+ base::Unretained(&backend), base::Time(), next_day, &changes),
+ base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes));
+ RunBothThreads();
+
+ EXPECT_EQ(1u, mock_keyring_items.size());
+ if (mock_keyring_items.size() > 0)
+ CheckMockKeyringItem(&mock_keyring_items[0], form_isc_, "chrome-42");
+
+ // Remove form_isc_.
+ expected_changes.clear();
+ expected_changes.push_back(PasswordStoreChange(PasswordStoreChange::REMOVE,
+ form_isc_));
+ BrowserThread::PostTaskAndReplyWithResult(
+ BrowserThread::DB, FROM_HERE,
+ base::Bind(&NativeBackendGnome::RemoveLoginsSyncedBetween,
+ base::Unretained(&backend), next_day, base::Time(), &changes),
+ base::Bind(&CheckPasswordChangesWithResult, &expected_changes, &changes));
+ RunBothThreads();
+
+ EXPECT_EQ(0u, mock_keyring_items.size());
+}
+
// TODO(mdm): add more basic tests here at some point.

Powered by Google App Engine
This is Rietveld 408576698