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

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

Issue 6465005: [Sync] Initial support for encrypting any datatype (no UI hookup yet). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Self review Created 9 years, 10 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/apply_updates_command_unittest.cc
diff --git a/chrome/browser/sync/engine/apply_updates_command_unittest.cc b/chrome/browser/sync/engine/apply_updates_command_unittest.cc
index b3ca18c09369a1f21d72ea00ebeb9f36cc1aaeda..e651c356f34d998bf979d85d8c5b5b778944b7f5 100644
--- a/chrome/browser/sync/engine/apply_updates_command_unittest.cc
+++ b/chrome/browser/sync/engine/apply_updates_command_unittest.cc
@@ -255,14 +255,26 @@ TEST_F(ApplyUpdatesCommandTest, SomeUndecryptablePassword) {
}
TEST_F(ApplyUpdatesCommandTest, NigoriUpdate) {
+ syncable::ModelTypeSet encrypted_types;
+ {
+ ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
+ ASSERT_TRUE(dir.good());
+ ReadTransaction trans(dir, __FILE__, __LINE__);
+ EXPECT_EQ(encrypted_types, trans.GetEncryptedDatatypes());
+ }
+
// Nigori node updates should update the Cryptographer.
Cryptographer other_cryptographer;
KeyParams params = {"localhost", "dummy", "foobar"};
other_cryptographer.AddKey(params);
sync_pb::EntitySpecifics specifics;
- other_cryptographer.GetKeys(
- specifics.MutableExtension(sync_pb::nigori)->mutable_encrypted());
+ sync_pb::NigoriSpecifics* nigori =
+ specifics.MutableExtension(sync_pb::nigori);
+ other_cryptographer.GetKeys(nigori->mutable_encrypted());
+ nigori->set_encrypt_bookmarks(true);
+ encrypted_types.insert(syncable::BOOKMARKS);
+ encrypted_types.insert(syncable::PASSWORDS); // Will get set by default.
CreateUnappliedNewItem("item", specifics);
@@ -285,4 +297,51 @@ TEST_F(ApplyUpdatesCommandTest, NigoriUpdate) {
EXPECT_TRUE(cryptographer->has_pending_keys());
}
+TEST_F(ApplyUpdatesCommandTest, NigoriUpdateWithUnsyncedChange) {
+ syncable::ModelTypeSet encrypted_types;
+ {
+ ScopedDirLookup dir(syncdb()->manager(), syncdb()->name());
+ ASSERT_TRUE(dir.good());
+ ReadTransaction trans(dir, __FILE__, __LINE__);
+ EXPECT_EQ(encrypted_types, trans.GetEncryptedDatatypes());
+ }
+
+ // Create an unapplied bookmark node without encryption.
+ string root_server_id = syncable::kNullId.GetServerId();
+ CreateUnappliedNewItemWithParent("parent", root_server_id);
+
+ // Nigori node updates should update the Cryptographer.
+ Cryptographer other_cryptographer;
+ KeyParams params = {"localhost", "dummy", "foobar"};
+ other_cryptographer.AddKey(params);
+
+ sync_pb::EntitySpecifics specifics;
+ sync_pb::NigoriSpecifics* nigori =
+ specifics.MutableExtension(sync_pb::nigori);
+ other_cryptographer.GetKeys(nigori->mutable_encrypted());
+ nigori->set_encrypt_bookmarks(true);
+ encrypted_types.insert(syncable::BOOKMARKS);
+ encrypted_types.insert(syncable::PASSWORDS); // Will get set by default.
+
+ CreateUnappliedNewItem("item", specifics);
+
+ Cryptographer* cryptographer =
+ session()->context()->directory_manager()->cryptographer();
+ EXPECT_FALSE(cryptographer->has_pending_keys());
+
+ apply_updates_command_.ExecuteImpl(session());
+
+ sessions::StatusController* status = session()->status_controller();
+ sessions::ScopedModelSafeGroupRestriction r(status, GROUP_PASSIVE);
+ EXPECT_EQ(2, status->update_progress().AppliedUpdatesSize())
+ << "All updates should have been attempted";
+ EXPECT_EQ(0, status->conflict_progress().ConflictingItemsSize())
+ << "The nigori update shouldn't be in conflict";
+ EXPECT_EQ(2, status->update_progress().SuccessfullyAppliedUpdateCount())
+ << "The nigori update should be applied";
+
+ EXPECT_FALSE(cryptographer->is_ready());
+ EXPECT_TRUE(cryptographer->has_pending_keys());
+}
+
} // namespace browser_sync
« no previous file with comments | « no previous file | chrome/browser/sync/engine/change_reorder_buffer.h » ('j') | chrome/browser/sync/engine/syncapi.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698