Index: sync/engine/syncer_unittest.cc |
diff --git a/sync/engine/syncer_unittest.cc b/sync/engine/syncer_unittest.cc |
index 6fffbc79cbd10c2009ebe2c19486832f1ac2312e..9253bd35ec69acd42afa8ec428659a8c35ea3738 100644 |
--- a/sync/engine/syncer_unittest.cc |
+++ b/sync/engine/syncer_unittest.cc |
@@ -1450,28 +1450,28 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) { |
MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), |
"Pete"); |
ASSERT_TRUE(parent.good()); |
+ parent.Put(syncable::ID, ids_.FromNumber(103)); |
rlarocque
2012/05/11 22:41:26
Because of my change, the order in which we set ID
|
parent.Put(syncable::IS_UNSYNCED, true); |
parent.Put(syncable::IS_DIR, true); |
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics()); |
parent.Put(syncable::IS_DEL, true); |
- parent.Put(syncable::ID, ids_.FromNumber(103)); |
parent.Put(syncable::BASE_VERSION, 1); |
parent.Put(syncable::MTIME, now_minus_2h); |
MutableEntry child(&wtrans, syncable::CREATE, ids_.FromNumber(103), |
"Pete"); |
ASSERT_TRUE(child.good()); |
+ child.Put(syncable::ID, ids_.FromNumber(104)); |
child.Put(syncable::IS_UNSYNCED, true); |
child.Put(syncable::IS_DIR, true); |
child.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics()); |
child.Put(syncable::IS_DEL, true); |
- child.Put(syncable::ID, ids_.FromNumber(104)); |
child.Put(syncable::BASE_VERSION, 1); |
child.Put(syncable::MTIME, now_minus_2h); |
MutableEntry grandchild(&wtrans, syncable::CREATE, ids_.FromNumber(104), |
"Pete"); |
ASSERT_TRUE(grandchild.good()); |
- grandchild.Put(syncable::IS_UNSYNCED, true); |
grandchild.Put(syncable::ID, ids_.FromNumber(105)); |
+ grandchild.Put(syncable::IS_UNSYNCED, true); |
grandchild.Put(syncable::IS_DEL, true); |
grandchild.Put(syncable::IS_DIR, false); |
grandchild.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics()); |
@@ -3709,6 +3709,7 @@ TEST_F(SyncerTest, ClientTagUncommittedTagMatchesUpdate) { |
TEST_F(SyncerTest, ClientTagConflictWithDeletedLocalEntry) { |
{ |
+ // Create a deleted local entry with a unique client tag. |
WriteTransaction trans(FROM_HERE, UNITTEST, directory()); |
MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname"); |
ASSERT_TRUE(perm_folder.good()); |
@@ -3716,24 +3717,28 @@ TEST_F(SyncerTest, ClientTagConflictWithDeletedLocalEntry) { |
perm_folder.Put(UNIQUE_CLIENT_TAG, "clientperm"); |
perm_folder.Put(SPECIFICS, DefaultBookmarkSpecifics()); |
perm_folder.Put(IS_UNSYNCED, true); |
+ |
+ // Note: IS_DEL && !ServerKnows() will clear the UNSYNCED bit. |
+ // (We never attempt to commit server-unknown deleted items, so this |
+ // helps us clean up those entries). |
perm_folder.Put(IS_DEL, true); |
} |
+ // Prepare an update with the same unique client tag. |
mock_server_->AddUpdateDirectory(1, 0, "permitem_renamed", 10, 100); |
mock_server_->SetLastUpdateClientTag("clientperm"); |
- mock_server_->set_conflict_all_commits(true); |
SyncShareNudge(); |
- // This should cause client tag overwrite. |
+ // The local entry will be overwritten. |
rlarocque
2012/05/11 22:41:26
This illustrates the change in behavior mentioned
|
{ |
ReadTransaction trans(FROM_HERE, directory()); |
Entry perm_folder(&trans, GET_BY_CLIENT_TAG, "clientperm"); |
ASSERT_TRUE(perm_folder.good()); |
ASSERT_TRUE(perm_folder.Get(ID).ServerKnows()); |
- EXPECT_TRUE(perm_folder.Get(IS_DEL)); |
+ EXPECT_FALSE(perm_folder.Get(IS_DEL)); |
EXPECT_FALSE(perm_folder.Get(IS_UNAPPLIED_UPDATE)); |
- EXPECT_TRUE(perm_folder.Get(IS_UNSYNCED)); |
+ EXPECT_FALSE(perm_folder.Get(IS_UNSYNCED)); |
EXPECT_EQ(perm_folder.Get(BASE_VERSION), 10); |
EXPECT_EQ(perm_folder.Get(UNIQUE_CLIENT_TAG), "clientperm"); |
} |