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

Unified Diff: chrome/browser/sync/engine/syncer_unittest.cc

Issue 7795002: [Sync] Gracefully handle writing to a node when the cryptographer is not ready. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reviewer comments Created 9 years, 4 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/sync/engine/syncer_unittest.cc
diff --git a/chrome/browser/sync/engine/syncer_unittest.cc b/chrome/browser/sync/engine/syncer_unittest.cc
index f9c74731b373b496f705ac138baf9f7240900cbe..0d5e8c6eeec9d251348f322293caa17b764e1d2a 100644
--- a/chrome/browser/sync/engine/syncer_unittest.cc
+++ b/chrome/browser/sync/engine/syncer_unittest.cc
@@ -543,6 +543,55 @@ TEST_F(SyncerTest, GetCommitIdsCommandTruncates) {
DoTruncationTest(dir, unsynced_handle_view, expected_order);
}
+TEST_F(SyncerTest, GetCommitIdsFilterEntriesNeedingEncryption) {
+ ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
+ ASSERT_TRUE(dir.good());
+ int64 handle_x = CreateUnsyncedDirectory("X", ids_.MakeLocal("x"));
+ int64 handle_b = CreateUnsyncedDirectory("B", ids_.MakeLocal("b"));
+ int64 handle_c = CreateUnsyncedDirectory("C", ids_.MakeLocal("c"));
+ int64 handle_e = CreateUnsyncedDirectory("E", ids_.MakeLocal("e"));
+ int64 handle_f = CreateUnsyncedDirectory("F", ids_.MakeLocal("f"));
+ sync_pb::EncryptedData encrypted;
+ sync_pb::EntitySpecifics encrypted_bookmark;
+ encrypted_bookmark.mutable_encrypted();
+ AddDefaultExtensionValue(syncable::BOOKMARKS, &encrypted_bookmark);
+ {
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
+ MutableEntry entry_x(&wtrans, GET_BY_HANDLE, handle_x);
+ MutableEntry entry_b(&wtrans, GET_BY_HANDLE, handle_b);
+ MutableEntry entry_c(&wtrans, GET_BY_HANDLE, handle_c);
+ MutableEntry entry_e(&wtrans, GET_BY_HANDLE, handle_e);
+ MutableEntry entry_f(&wtrans, GET_BY_HANDLE, handle_f);
+ entry_x.Put(SPECIFICS, encrypted_bookmark);
+ entry_b.Put(SPECIFICS, DefaultBookmarkSpecifics());
+ entry_c.Put(SPECIFICS, DefaultBookmarkSpecifics());
+ entry_e.Put(SPECIFICS, encrypted_bookmark);
+ entry_f.Put(SPECIFICS, DefaultPreferencesSpecifics());
+ }
+
+ syncable::ModelTypeSet encrypted_types;
+ encrypted_types.insert(syncable::BOOKMARKS);
+ syncable::Directory::UnsyncedMetaHandles unsynced_handles;
+ unsynced_handles.push_back(handle_x);
+ unsynced_handles.push_back(handle_b);
+ unsynced_handles.push_back(handle_c);
+ unsynced_handles.push_back(handle_e);
+ unsynced_handles.push_back(handle_f);
+ // The unencrypted bookmarks should be removed from the list.
+ syncable::Directory::UnsyncedMetaHandles expected_handles;
+ expected_handles.push_back(handle_x); // Was encrypted.
+ expected_handles.push_back(handle_e); // Was encrypted.
+ expected_handles.push_back(handle_f); // Does not require encryption.
+ {
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, dir);
+ GetCommitIdsCommand::FilterEntriesNeedingEncryption(
+ encrypted_types,
+ &wtrans,
+ &unsynced_handles);
+ EXPECT_EQ(expected_handles, unsynced_handles);
+ }
+}
+
// TODO(chron): More corner case unit tests around validation.
TEST_F(SyncerTest, TestCommitMetahandleIterator) {
ScopedDirLookup dir(syncdb_.manager(), syncdb_.name());
« no previous file with comments | « chrome/browser/sync/engine/nigori_util_unittest.cc ('k') | chrome/browser/sync/internal_api/sync_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698