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

Unified Diff: sync/engine/syncer_unittest.cc

Issue 11636006: WIP: The Bookmark Position Megapatch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Various updates, including switch suffix to unique_client_tag style Created 8 years 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
« no previous file with comments | « sync/engine/syncer.cc ('k') | sync/engine/syncer_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/engine/syncer_unittest.cc
diff --git a/sync/engine/syncer_unittest.cc b/sync/engine/syncer_unittest.cc
index df4196022489bbd6f553bcdc2beb5a524d0ea49c..15564571ad4a46e1e0d420d58068fc76b1af4519 100644
--- a/sync/engine/syncer_unittest.cc
+++ b/sync/engine/syncer_unittest.cc
@@ -33,7 +33,6 @@
#include "sync/engine/traffic_recorder.h"
#include "sync/internal_api/public/base/model_type.h"
#include "sync/internal_api/public/engine/model_safe_worker.h"
-#include "sync/internal_api/public/base/node_ordinal.h"
#include "sync/protocol/bookmark_specifics.pb.h"
#include "sync/protocol/nigori_specifics.pb.h"
#include "sync/protocol/preference_specifics.pb.h"
@@ -58,10 +57,12 @@
using base::TimeDelta;
+using std::count;
using std::map;
using std::multimap;
using std::set;
using std::string;
+using std::vector;
namespace syncer {
@@ -78,7 +79,8 @@ using syncable::MutableEntry;
using syncable::WriteTransaction;
using syncable::BASE_VERSION;
-using syncable::CREATE;
+using syncable::CREATE_BOOKMARK;
+using syncable::CREATE_UNIQUE;
using syncable::GET_BY_HANDLE;
using syncable::GET_BY_ID;
using syncable::GET_BY_CLIENT_TAG;
@@ -90,14 +92,11 @@ using syncable::IS_UNAPPLIED_UPDATE;
using syncable::IS_UNSYNCED;
using syncable::META_HANDLE;
using syncable::MTIME;
-using syncable::NEXT_ID;
using syncable::NON_UNIQUE_NAME;
using syncable::PARENT_ID;
-using syncable::PREV_ID;
using syncable::BASE_SERVER_SPECIFICS;
using syncable::SERVER_IS_DEL;
using syncable::SERVER_PARENT_ID;
-using syncable::SERVER_ORDINAL_IN_PARENT;
using syncable::SERVER_SPECIFICS;
using syncable::SERVER_VERSION;
using syncable::UNIQUE_CLIENT_TAG;
@@ -357,7 +356,7 @@ class SyncerTest : public testing::Test,
}
string utf8_name = test->id.GetServerId();
string name(utf8_name.begin(), utf8_name.end());
- MutableEntry entry(&trans, CREATE, test->parent_id, name);
+ MutableEntry entry(&trans, CREATE_BOOKMARK, test->parent_id, name);
entry.Put(syncable::ID, test->id);
if (test->id.ServerKnows()) {
@@ -460,7 +459,7 @@ class SyncerTest : public testing::Test,
int64 CreateUnsyncedDirectory(const string& entry_name,
const syncable::Id& id) {
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&wtrans, syncable::CREATE, wtrans.root_id(),
+ MutableEntry entry(&wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(),
entry_name);
EXPECT_TRUE(entry.good());
entry.Put(syncable::IS_UNSYNCED, true);
@@ -850,9 +849,18 @@ TEST_F(SyncerTest, EncryptionAwareConflicts) {
EXPECT_TRUE(GetCryptographer(&wtrans)->has_pending_keys());
}
- mock_server_->AddUpdateSpecifics(1, 0, "A", 10, 10, true, 0, bookmark);
- mock_server_->AddUpdateSpecifics(2, 1, "B", 10, 10, false, 2, bookmark);
- mock_server_->AddUpdateSpecifics(3, 1, "C", 10, 10, false, 1, bookmark);
+ // We need to remember the exact position of our local items, so we can
+ // make updates that do not modify those positions.
+ UniquePosition pos1;
+ UniquePosition pos2;
+ UniquePosition pos3;
+
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 1, 0, "A", 10, 10, true, 0, bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 2, 1, "B", 10, 10, false, 2, bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 3, 1, "C", 10, 10, false, 1, bookmark);
mock_server_->AddUpdateSpecifics(4, 0, "D", 10, 10, false, 0, pref);
SyncShareNudge();
{
@@ -862,16 +870,25 @@ TEST_F(SyncerTest, EncryptionAwareConflicts) {
VERIFY_ENTRY(2, false, false, false, 1, 10, 10, ids_, &rtrans);
VERIFY_ENTRY(3, false, false, false, 1, 10, 10, ids_, &rtrans);
VERIFY_ENTRY(4, false, false, false, 0, 10, 10, ids_, &rtrans);
+
+ Entry entry1(&rtrans, syncable::GET_BY_ID, ids_.FromNumber(1));
+ ASSERT_TRUE(entry1.Get(syncable::UNIQUE_POSITION).Equals(
+ entry1.Get(syncable::SERVER_UNIQUE_POSITION)));
+ pos1 = entry1.Get(syncable::UNIQUE_POSITION);
+ Entry entry2(&rtrans, syncable::GET_BY_ID, ids_.FromNumber(2));
+ pos2 = entry2.Get(syncable::UNIQUE_POSITION);
+ Entry entry3(&rtrans, syncable::GET_BY_ID, ids_.FromNumber(3));
+ pos3 = entry3.Get(syncable::UNIQUE_POSITION);
}
// Server side encryption will not be applied due to undecryptable data.
// At this point, BASE_SERVER_SPECIFICS should be filled for all four items.
- mock_server_->AddUpdateSpecifics(1, 0, kEncryptedString, 20, 20, true, 0,
- encrypted_bookmark);
- mock_server_->AddUpdateSpecifics(2, 1, kEncryptedString, 20, 20, false, 2,
- encrypted_bookmark);
- mock_server_->AddUpdateSpecifics(3, 1, kEncryptedString, 20, 20, false, 1,
- encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 1, 0, kEncryptedString, 20, 20, true, pos1, encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 2, 1, kEncryptedString, 20, 20, false, pos2, encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 3, 1, kEncryptedString, 20, 20, false, pos3, encrypted_bookmark);
mock_server_->AddUpdateSpecifics(4, 0, kEncryptedString, 20, 20, false, 0,
encrypted_pref);
SyncShareNudge();
@@ -887,10 +904,10 @@ TEST_F(SyncerTest, EncryptionAwareConflicts) {
// Server side change that don't modify anything should not affect
// BASE_SERVER_SPECIFICS (such as name changes and mtime changes).
- mock_server_->AddUpdateSpecifics(1, 0, kEncryptedString, 30, 30, true, 0,
- encrypted_bookmark);
- mock_server_->AddUpdateSpecifics(2, 1, kEncryptedString, 30, 30, false, 2,
- encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 1, 0, kEncryptedString, 30, 30, true, pos1, encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 2, 1, kEncryptedString, 30, 30, false, pos2, encrypted_bookmark);
// Item 3 doesn't change.
mock_server_->AddUpdateSpecifics(4, 0, kEncryptedString, 30, 30, false, 0,
encrypted_pref);
@@ -908,10 +925,11 @@ TEST_F(SyncerTest, EncryptionAwareConflicts) {
// Positional changes, parent changes, and specifics changes should reset
// BASE_SERVER_SPECIFICS.
// Became unencrypted.
- mock_server_->AddUpdateSpecifics(1, 0, "A", 40, 40, true, 0, bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 1, 0, "A", 40, 40, true, 0, bookmark);
// Reordered to after item 2.
- mock_server_->AddUpdateSpecifics(3, 1, kEncryptedString, 30, 30, false, 3,
- encrypted_bookmark);
+ mock_server_->AddBookmarkUpdateSpecifics(
+ 3, 1, kEncryptedString, 30, 30, false, 3, encrypted_bookmark);
SyncShareNudge();
{
// Items 2 and 4 should be the only ones with BASE_SERVER_SPECIFICS set.
@@ -989,7 +1007,7 @@ TEST_F(SyncerTest, EncryptionAwareConflicts) {
TEST_F(SyncerTest, TestGetUnsyncedAndSimpleCommit) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(),
"Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -997,7 +1015,7 @@ TEST_F(SyncerTest, TestGetUnsyncedAndSimpleCommit) {
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::BASE_VERSION, 1);
parent.Put(syncable::ID, parent_id_);
- MutableEntry child(&wtrans, syncable::CREATE, parent_id_, "Pete");
+ MutableEntry child(&wtrans, syncable::CREATE_BOOKMARK, parent_id_, "Pete");
ASSERT_TRUE(child.good());
child.Put(syncable::ID, child_id_);
child.Put(syncable::BASE_VERSION, 1);
@@ -1022,20 +1040,22 @@ TEST_F(SyncerTest, TestPurgeWhileUnsynced) {
syncable::Id pref_node_id = TestIdFactory::MakeServer("Tim");
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "Pete");
+ MutableEntry parent(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::BASE_VERSION, 1);
parent.Put(syncable::ID, parent_id_);
- MutableEntry child(&wtrans, syncable::CREATE, parent_id_, "Pete");
+ MutableEntry child(&wtrans, syncable::CREATE_BOOKMARK, parent_id_, "Pete");
ASSERT_TRUE(child.good());
child.Put(syncable::ID, child_id_);
child.Put(syncable::BASE_VERSION, 1);
WriteTestDataToEntry(&wtrans, &child);
- MutableEntry parent2(&wtrans, syncable::CREATE, wtrans.root_id(), "Tim");
+ MutableEntry parent2(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "Tim");
ASSERT_TRUE(parent2.good());
parent2.Put(syncable::IS_UNSYNCED, true);
parent2.Put(syncable::IS_DIR, true);
@@ -1069,7 +1089,8 @@ TEST_F(SyncerTest, TestPurgeWhileUnapplied) {
// Similar to above, but for unapplied items. Bug 49278.
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "Pete");
+ MutableEntry parent(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNAPPLIED_UPDATE, true);
parent.Put(syncable::IS_DIR, true);
@@ -1224,7 +1245,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
{
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(),
"Bob");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -1232,16 +1253,16 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::ID, ids_.FromNumber(100));
parent.Put(syncable::BASE_VERSION, 1);
- MutableEntry child(&wtrans, syncable::CREATE, ids_.FromNumber(100),
- "Bob");
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, ids_.FromNumber(100), "Bob");
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
child.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
child.Put(syncable::ID, ids_.FromNumber(101));
child.Put(syncable::BASE_VERSION, 1);
- MutableEntry grandchild(&wtrans, syncable::CREATE, ids_.FromNumber(101),
- "Bob");
+ MutableEntry grandchild(
+ &wtrans, syncable::CREATE_BOOKMARK, ids_.FromNumber(101), "Bob");
ASSERT_TRUE(grandchild.good());
grandchild.Put(syncable::ID, ids_.FromNumber(102));
grandchild.Put(syncable::IS_UNSYNCED, true);
@@ -1251,7 +1272,7 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
{
// Create three deleted items which deletions we expect to be sent to the
// server.
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(),
"Pete");
ASSERT_TRUE(parent.good());
parent.Put(syncable::ID, ids_.FromNumber(103));
@@ -1261,8 +1282,8 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
parent.Put(syncable::IS_DEL, true);
parent.Put(syncable::BASE_VERSION, 1);
parent.Put(syncable::MTIME, now_minus_2h);
- MutableEntry child(&wtrans, syncable::CREATE, ids_.FromNumber(103),
- "Pete");
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, ids_.FromNumber(103), "Pete");
ASSERT_TRUE(child.good());
child.Put(syncable::ID, ids_.FromNumber(104));
child.Put(syncable::IS_UNSYNCED, true);
@@ -1271,8 +1292,8 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
child.Put(syncable::IS_DEL, true);
child.Put(syncable::BASE_VERSION, 1);
child.Put(syncable::MTIME, now_minus_2h);
- MutableEntry grandchild(&wtrans, syncable::CREATE, ids_.FromNumber(104),
- "Pete");
+ MutableEntry grandchild(
+ &wtrans, syncable::CREATE_BOOKMARK, ids_.FromNumber(104), "Pete");
ASSERT_TRUE(grandchild.good());
grandchild.Put(syncable::ID, ids_.FromNumber(105));
grandchild.Put(syncable::IS_UNSYNCED, true);
@@ -1301,32 +1322,37 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNesting) {
}
TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
+ syncable::Id parent1_id = ids_.MakeServer("p1");
+ syncable::Id parent2_id = ids_.MakeServer("p2");
+
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "1");
+ MutableEntry parent(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "1");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
- parent.Put(syncable::ID, parent_id_);
- MutableEntry child(&wtrans, syncable::CREATE, wtrans.root_id(), "2");
+ parent.Put(syncable::ID, parent1_id);
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "2");
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
child.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
- child.Put(syncable::ID, child_id_);
+ child.Put(syncable::ID, parent2_id);
parent.Put(syncable::BASE_VERSION, 1);
child.Put(syncable::BASE_VERSION, 1);
}
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, parent_id_, "A");
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, parent1_id, "A");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::ID, ids_.FromNumber(102));
- MutableEntry child(&wtrans, syncable::CREATE, parent_id_, "B");
+ MutableEntry child(&wtrans, syncable::CREATE_BOOKMARK, parent1_id, "B");
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
@@ -1336,13 +1362,13 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
}
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, child_id_, "A");
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, parent2_id, "A");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::ID, ids_.FromNumber(-104));
- MutableEntry child(&wtrans, syncable::CREATE, child_id_, "B");
+ MutableEntry child(&wtrans, syncable::CREATE_BOOKMARK, parent2_id, "B");
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
@@ -1353,13 +1379,29 @@ TEST_F(SyncerTest, TestCommitListOrderingWithNewItems) {
SyncShareNudge();
ASSERT_EQ(6u, mock_server_->committed_ids().size());
- // If this test starts failing, be aware other sort orders could be valid.
- EXPECT_TRUE(parent_id_ == mock_server_->committed_ids()[0]);
- EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[1]);
- EXPECT_TRUE(ids_.FromNumber(102) == mock_server_->committed_ids()[2]);
- EXPECT_TRUE(ids_.FromNumber(-103) == mock_server_->committed_ids()[3]);
- EXPECT_TRUE(ids_.FromNumber(-104) == mock_server_->committed_ids()[4]);
- EXPECT_TRUE(ids_.FromNumber(105) == mock_server_->committed_ids()[5]);
+
+ // This strange iteration and std::count() usage is to allow the order to
+ // vary. All we really care about is that parent1_id and parent2_id are the
+ // first two IDs, and that the children make up the next four. Other than
+ // that, ordering doesn't matter.
+
+ vector<syncable::Id>::const_iterator i =
+ mock_server_->committed_ids().begin();
+ vector<syncable::Id>::const_iterator parents_begin = i;
+ i++;
+ i++;
+ vector<syncable::Id>::const_iterator parents_end = i;
+ vector<syncable::Id>::const_iterator children_begin = i;
+ vector<syncable::Id>::const_iterator children_end =
+ mock_server_->committed_ids().end();
+
+ EXPECT_EQ(1, count(parents_begin, parents_end, parent1_id));
+ EXPECT_EQ(1, count(parents_begin, parents_end, parent2_id));
+
+ EXPECT_EQ(1, count(children_begin, children_end, ids_.FromNumber(-103)));
+ EXPECT_EQ(1, count(children_begin, children_end, ids_.FromNumber(102)));
+ EXPECT_EQ(1, count(children_begin, children_end, ids_.FromNumber(105)));
+ EXPECT_EQ(1, count(children_begin, children_end, ids_.FromNumber(-104)));
}
TEST_F(SyncerTest, TestCommitListOrderingCounterexample) {
@@ -1367,18 +1409,19 @@ TEST_F(SyncerTest, TestCommitListOrderingCounterexample) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(), "P");
+ MutableEntry parent(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), "P");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(syncable::ID, parent_id_);
- MutableEntry child1(&wtrans, syncable::CREATE, parent_id_, "1");
+ MutableEntry child1(&wtrans, syncable::CREATE_BOOKMARK, parent_id_, "1");
ASSERT_TRUE(child1.good());
child1.Put(syncable::IS_UNSYNCED, true);
child1.Put(syncable::ID, child_id_);
child1.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
- MutableEntry child2(&wtrans, syncable::CREATE, parent_id_, "2");
+ MutableEntry child2(&wtrans, syncable::CREATE_BOOKMARK, parent_id_, "2");
ASSERT_TRUE(child2.good());
child2.Put(syncable::IS_UNSYNCED, true);
child2.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
@@ -1391,10 +1434,15 @@ TEST_F(SyncerTest, TestCommitListOrderingCounterexample) {
SyncShareNudge();
ASSERT_EQ(3u, mock_server_->committed_ids().size());
- // If this test starts failing, be aware other sort orders could be valid.
EXPECT_TRUE(parent_id_ == mock_server_->committed_ids()[0]);
- EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[1]);
- EXPECT_TRUE(child2_id == mock_server_->committed_ids()[2]);
+ // There are two possible valid orderings.
+ if (child2_id == mock_server_->committed_ids()[1]) {
+ EXPECT_TRUE(child2_id == mock_server_->committed_ids()[1]);
+ EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[2]);
+ } else {
+ EXPECT_TRUE(child_id_ == mock_server_->committed_ids()[1]);
+ EXPECT_TRUE(child2_id == mock_server_->committed_ids()[2]);
+ }
}
TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
@@ -1404,7 +1452,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, wtrans.root_id(),
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(),
parent1_name);
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
@@ -1418,14 +1466,16 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParent) {
syncable::Id child_id = ids_.NewServerId();
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent2(&wtrans, syncable::CREATE, parent_id_, parent2_name);
+ MutableEntry parent2(
+ &wtrans, syncable::CREATE_BOOKMARK, parent_id_, parent2_name);
ASSERT_TRUE(parent2.good());
parent2.Put(syncable::IS_UNSYNCED, true);
parent2.Put(syncable::IS_DIR, true);
parent2.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent2.Put(syncable::ID, parent2_id);
- MutableEntry child(&wtrans, syncable::CREATE, parent2_id, child_name);
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, parent2_id, child_name);
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
@@ -1472,7 +1522,7 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParentAndChild) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
MutableEntry parent(&wtrans,
- syncable::CREATE,
+ syncable::CREATE_BOOKMARK,
wtrans.root_id(),
parent_name);
ASSERT_TRUE(parent.good());
@@ -1488,14 +1538,16 @@ TEST_F(SyncerTest, TestCommitListOrderingAndNewParentAndChild) {
const Id child_local_id = ids_.NewLocalId();
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent2(&wtrans, syncable::CREATE, parent_id_, parent2_name);
+ MutableEntry parent2(
+ &wtrans, syncable::CREATE_BOOKMARK, parent_id_, parent2_name);
ASSERT_TRUE(parent2.good());
parent2.Put(syncable::IS_UNSYNCED, true);
parent2.Put(syncable::IS_DIR, true);
parent2.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent2.Put(syncable::ID, parent2_local_id);
- MutableEntry child(&wtrans, syncable::CREATE, parent2_local_id, child_name);
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, parent2_local_id, child_name);
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
@@ -1713,14 +1765,14 @@ TEST_F(SyncerTest, CommitTimeRename) {
// Create a folder and an entry.
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&trans, CREATE, root_id_, "Folder");
+ MutableEntry parent(&trans, CREATE_BOOKMARK, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
parent.Put(IS_UNSYNCED, true);
metahandle_folder = parent.Get(META_HANDLE);
- MutableEntry entry(&trans, CREATE, parent.Get(ID), "new_entry");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, parent.Get(ID), "new_entry");
ASSERT_TRUE(entry.good());
metahandle_new_entry = entry.Get(META_HANDLE);
WriteTestDataToEntry(&trans, &entry);
@@ -1761,7 +1813,7 @@ TEST_F(SyncerTest, CommitTimeRenameI18N) {
// Create a folder, expect a commit time rename.
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&trans, CREATE, root_id_, "Folder");
+ MutableEntry parent(&trans, CREATE_BOOKMARK, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
parent.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -1792,7 +1844,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
int64 metahandle_folder;
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "new_folder");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "new_folder");
ASSERT_TRUE(entry.good());
entry.Put(IS_DIR, true);
entry.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -1814,7 +1866,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateAdjustsChildren) {
// Create an entry in the newly created folder.
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, folder_id, "new_entry");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, folder_id, "new_entry");
ASSERT_TRUE(entry.good());
metahandle_entry = entry.Get(META_HANDLE);
WriteTestDataToEntry(&trans, &entry);
@@ -1883,7 +1935,7 @@ TEST_F(SyncerTest, CommitReuniteUpdate) {
int64 entry_metahandle;
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "new_entry");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "new_entry");
ASSERT_TRUE(entry.good());
entry_metahandle = entry.Get(META_HANDLE);
WriteTestDataToEntry(&trans, &entry);
@@ -1937,7 +1989,7 @@ TEST_F(SyncerTest, CommitReuniteUpdateDoesNotChokeOnDeletedLocalEntry) {
int64 entry_metahandle;
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "new_entry");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "new_entry");
ASSERT_TRUE(entry.good());
entry_metahandle = entry.Get(META_HANDLE);
WriteTestDataToEntry(&trans, &entry);
@@ -2101,8 +2153,8 @@ class EntryCreatedInNewFolderTest : public SyncerTest {
"bob"));
CHECK(bob.good());
- MutableEntry entry2(&trans, syncable::CREATE, bob.Get(syncable::ID),
- "bob");
+ MutableEntry entry2(
+ &trans, syncable::CREATE_BOOKMARK, bob.Get(syncable::ID), "bob");
CHECK(entry2.good());
entry2.Put(syncable::IS_DIR, true);
entry2.Put(syncable::IS_UNSYNCED, true);
@@ -2113,7 +2165,7 @@ class EntryCreatedInNewFolderTest : public SyncerTest {
TEST_F(EntryCreatedInNewFolderTest, EntryCreatedInNewFolderMidSync) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, syncable::CREATE, trans.root_id(),
+ MutableEntry entry(&trans, syncable::CREATE_BOOKMARK, trans.root_id(),
"bob");
ASSERT_TRUE(entry.good());
entry.Put(syncable::IS_DIR, true);
@@ -2152,7 +2204,7 @@ TEST_F(SyncerTest, UnappliedUpdateOnCreatedItemItemDoesNotCrash) {
{
// Create an item.
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry fred_match(&trans, CREATE, trans.root_id(),
+ MutableEntry fred_match(&trans, CREATE_BOOKMARK, trans.root_id(),
"fred_match");
ASSERT_TRUE(fred_match.good());
metahandle_fred = fred_match.Get(META_HANDLE);
@@ -2188,13 +2240,14 @@ TEST_F(SyncerTest, UnappliedUpdateOnCreatedItemItemDoesNotCrash) {
TEST_F(SyncerTest, DoublyChangedWithResolver) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, root_id_, "Folder");
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_DIR, true);
parent.Put(syncable::ID, parent_id_);
parent.Put(syncable::BASE_VERSION, 5);
parent.Put(syncable::SPECIFICS, DefaultBookmarkSpecifics());
- MutableEntry child(&wtrans, syncable::CREATE, parent_id_, "Pete.htm");
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, parent_id_, "Pete.htm");
ASSERT_TRUE(child.good());
child.Put(syncable::ID, child_id_);
child.Put(syncable::BASE_VERSION, 10);
@@ -2229,7 +2282,7 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
int64 entry_metahandle;
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&wtrans, syncable::CREATE, root_id_, "Pete");
+ MutableEntry entry(&wtrans, syncable::CREATE_BOOKMARK, root_id_, "Pete");
ASSERT_TRUE(entry.good());
EXPECT_FALSE(entry.Get(ID).ServerKnows());
entry.Put(syncable::IS_DIR, true);
@@ -2241,7 +2294,6 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
SyncShareNudge();
syncable::Id id;
int64 version;
- NodeOrdinal server_ordinal_in_parent;
{
syncable::ReadTransaction trans(FROM_HERE, directory());
Entry entry(&trans, syncable::GET_BY_HANDLE, entry_metahandle);
@@ -2249,16 +2301,12 @@ TEST_F(SyncerTest, CommitsUpdateDoesntAlterEntry) {
id = entry.Get(ID);
EXPECT_TRUE(id.ServerKnows());
version = entry.Get(BASE_VERSION);
- server_ordinal_in_parent = entry.Get(SERVER_ORDINAL_IN_PARENT);
}
sync_pb::SyncEntity* update = mock_server_->AddUpdateFromLastCommit();
EXPECT_EQ("Pete", update->name());
EXPECT_EQ(id.GetServerId(), update->id_string());
EXPECT_EQ(root_id_.GetServerId(), update->parent_id_string());
EXPECT_EQ(version, update->version());
- EXPECT_EQ(
- NodeOrdinalToInt64(server_ordinal_in_parent),
- update->position_in_parent());
SyncShareNudge();
{
syncable::ReadTransaction trans(FROM_HERE, directory());
@@ -2275,7 +2323,7 @@ TEST_F(SyncerTest, ParentAndChildBothMatch) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, CREATE, root_id_, "Folder");
+ MutableEntry parent(&wtrans, CREATE_BOOKMARK, root_id_, "Folder");
ASSERT_TRUE(parent.good());
parent.Put(IS_DIR, true);
parent.Put(IS_UNSYNCED, true);
@@ -2283,7 +2331,7 @@ TEST_F(SyncerTest, ParentAndChildBothMatch) {
parent.Put(BASE_VERSION, 1);
parent.Put(SPECIFICS, DefaultBookmarkSpecifics());
- MutableEntry child(&wtrans, CREATE, parent.Get(ID), "test.htm");
+ MutableEntry child(&wtrans, CREATE_BOOKMARK, parent.Get(ID), "test.htm");
ASSERT_TRUE(child.good());
child.Put(ID, child_id);
child.Put(BASE_VERSION, 1);
@@ -2316,7 +2364,7 @@ TEST_F(SyncerTest, ParentAndChildBothMatch) {
TEST_F(SyncerTest, CommittingNewDeleted) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "bob");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "bob");
entry.Put(IS_UNSYNCED, true);
entry.Put(IS_DEL, true);
}
@@ -2337,7 +2385,7 @@ TEST_F(SyncerTest, UnappliedUpdateDuringCommit) {
// This test is a little fake.
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "bob");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "bob");
entry.Put(ID, ids_.FromNumber(20));
entry.Put(BASE_VERSION, 1);
entry.Put(SERVER_VERSION, 1);
@@ -2369,7 +2417,7 @@ TEST_F(SyncerTest, DeletingEntryInFolder) {
int64 existing_metahandle;
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "existing");
+ MutableEntry entry(&trans, CREATE_BOOKMARK, trans.root_id(), "existing");
ASSERT_TRUE(entry.good());
entry.Put(IS_DIR, true);
entry.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -2379,7 +2427,7 @@ TEST_F(SyncerTest, DeletingEntryInFolder) {
syncer_->SyncShare(session_.get(), SYNCER_BEGIN, SYNCER_END);
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry newfolder(&trans, CREATE, trans.root_id(), "new");
+ MutableEntry newfolder(&trans, CREATE_BOOKMARK, trans.root_id(), "new");
ASSERT_TRUE(newfolder.good());
newfolder.Put(IS_DIR, true);
newfolder.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -2405,7 +2453,8 @@ TEST_F(SyncerTest, DeletingEntryWithLocalEdits) {
SyncShareNudge();
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry newfolder(&trans, CREATE, ids_.FromNumber(1), "local");
+ MutableEntry newfolder(
+ &trans, CREATE_BOOKMARK, ids_.FromNumber(1), "local");
ASSERT_TRUE(newfolder.good());
newfolder.Put(IS_UNSYNCED, true);
newfolder.Put(IS_DIR, true);
@@ -2496,7 +2545,7 @@ TEST_F(SyncerTest, CommitManyItemsInOneGo_Success) {
for (uint32 i = 0; i < items_to_commit; i++) {
string nameutf8 = base::StringPrintf("%d", i);
string name(nameutf8.begin(), nameutf8.end());
- MutableEntry e(&trans, CREATE, trans.root_id(), name);
+ MutableEntry e(&trans, CREATE_BOOKMARK, trans.root_id(), name);
e.Put(IS_UNSYNCED, true);
e.Put(IS_DIR, true);
e.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -2519,7 +2568,7 @@ TEST_F(SyncerTest, CommitManyItemsInOneGo_PostBufferFail) {
for (uint32 i = 0; i < items_to_commit; i++) {
string nameutf8 = base::StringPrintf("%d", i);
string name(nameutf8.begin(), nameutf8.end());
- MutableEntry e(&trans, CREATE, trans.root_id(), name);
+ MutableEntry e(&trans, CREATE_BOOKMARK, trans.root_id(), name);
e.Put(IS_UNSYNCED, true);
e.Put(IS_DIR, true);
e.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -2549,7 +2598,7 @@ TEST_F(SyncerTest, CommitManyItemsInOneGo_CommitConflict) {
for (uint32 i = 0; i < items_to_commit; i++) {
string nameutf8 = base::StringPrintf("%d", i);
string name(nameutf8.begin(), nameutf8.end());
- MutableEntry e(&trans, CREATE, trans.root_id(), name);
+ MutableEntry e(&trans, CREATE_BOOKMARK, trans.root_id(), name);
e.Put(IS_UNSYNCED, true);
e.Put(IS_DIR, true);
e.Put(SPECIFICS, DefaultBookmarkSpecifics());
@@ -2647,7 +2696,8 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath) {
syncable::Id local_folder_id;
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry new_entry(&wtrans, CREATE, wtrans.root_id(), "Bar.htm");
+ MutableEntry new_entry(
+ &wtrans, CREATE_BOOKMARK, wtrans.root_id(), "Bar.htm");
ASSERT_TRUE(new_entry.good());
local_folder_id = new_entry.Get(ID);
local_folder_handle = new_entry.Get(META_HANDLE);
@@ -2713,7 +2763,8 @@ TEST_F(SyncerTest, NewEntryAndAlteredServerEntrySharePath_OldBookmarksProto) {
syncable::Id local_folder_id;
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry new_entry(&wtrans, CREATE, wtrans.root_id(), "Bar.htm");
+ MutableEntry new_entry(
+ &wtrans, CREATE_BOOKMARK, wtrans.root_id(), "Bar.htm");
ASSERT_TRUE(new_entry.good());
local_folder_id = new_entry.Get(ID);
local_folder_handle = new_entry.Get(META_HANDLE);
@@ -2885,12 +2936,12 @@ TEST_F(SyncerTest, ResolveWeWroteTheyDeleted) {
TEST_F(SyncerTest, DuplicateIDReturn) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry folder(&trans, CREATE, trans.root_id(), "bob");
+ MutableEntry folder(&trans, CREATE_BOOKMARK, trans.root_id(), "bob");
ASSERT_TRUE(folder.good());
folder.Put(IS_UNSYNCED, true);
folder.Put(IS_DIR, true);
folder.Put(SPECIFICS, DefaultBookmarkSpecifics());
- MutableEntry folder2(&trans, CREATE, trans.root_id(), "fred");
+ MutableEntry folder2(&trans, CREATE_BOOKMARK, trans.root_id(), "fred");
ASSERT_TRUE(folder2.good());
folder2.Put(IS_UNSYNCED, false);
folder2.Put(IS_DIR, true);
@@ -2929,7 +2980,8 @@ TEST_F(SyncerTest, ConflictResolverMergesLocalDeleteAndServerUpdate) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry local_deleted(&trans, CREATE, trans.root_id(), "name");
+ MutableEntry local_deleted(
+ &trans, CREATE_BOOKMARK, trans.root_id(), "name");
local_deleted.Put(ID, ids_.FromNumber(1));
local_deleted.Put(BASE_VERSION, 1);
local_deleted.Put(IS_DEL, true);
@@ -2962,7 +3014,8 @@ TEST_F(SyncerTest, UpdateFlipsTheFolderBit) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry local_deleted(&trans, CREATE, trans.root_id(), "name");
+ MutableEntry local_deleted(
+ &trans, CREATE_BOOKMARK, trans.root_id(), "name");
local_deleted.Put(ID, ids_.FromNumber(1));
local_deleted.Put(BASE_VERSION, 1);
local_deleted.Put(IS_DEL, true);
@@ -3000,7 +3053,8 @@ TEST_F(SyncerTest, MergingExistingItems) {
SyncShareNudge();
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&trans, CREATE, trans.root_id(), "Copy of base");
+ MutableEntry entry(
+ &trans, CREATE_BOOKMARK, trans.root_id(), "Copy of base");
WriteTestDataToEntry(&trans, &entry);
}
mock_server_->AddUpdateBookmark(1, 0, "Copy of base", 50, 50);
@@ -3190,7 +3244,7 @@ TEST_F(SyncerTest, DirectoryCommitTest) {
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry parent(&wtrans, syncable::CREATE, root_id_, "foo");
+ MutableEntry parent(&wtrans, syncable::CREATE_BOOKMARK, root_id_, "foo");
ASSERT_TRUE(parent.good());
parent.Put(syncable::IS_UNSYNCED, true);
parent.Put(syncable::IS_DIR, true);
@@ -3198,7 +3252,8 @@ TEST_F(SyncerTest, DirectoryCommitTest) {
in_root_id = parent.Get(syncable::ID);
foo_metahandle = parent.Get(META_HANDLE);
- MutableEntry child(&wtrans, syncable::CREATE, parent.Get(ID), "bar");
+ MutableEntry child(
+ &wtrans, syncable::CREATE_BOOKMARK, parent.Get(ID), "bar");
ASSERT_TRUE(child.good());
child.Put(syncable::IS_UNSYNCED, true);
child.Put(syncable::IS_DIR, true);
@@ -3310,7 +3365,7 @@ TEST_F(SyncerTest, EnsureWeSendUpOldParent) {
entry.Put(PARENT_ID, folder_two_id);
entry.Put(IS_UNSYNCED, true);
// A new entry should send no "old parent."
- MutableEntry create(&trans, CREATE, trans.root_id(), "new_folder");
+ MutableEntry create(&trans, CREATE_BOOKMARK, trans.root_id(), "new_folder");
create.Put(IS_UNSYNCED, true);
create.Put(SPECIFICS, DefaultBookmarkSpecifics());
}
@@ -3330,7 +3385,8 @@ TEST_F(SyncerTest, Test64BitVersionSupport) {
// Try writing max int64 to the version fields of a meta entry.
{
WriteTransaction wtrans(FROM_HERE, UNITTEST, directory());
- MutableEntry entry(&wtrans, syncable::CREATE, wtrans.root_id(), name);
+ MutableEntry entry(
+ &wtrans, syncable::CREATE_BOOKMARK, wtrans.root_id(), name);
ASSERT_TRUE(entry.good());
entry.Put(syncable::BASE_VERSION, really_big_int);
entry.Put(syncable::SERVER_VERSION, really_big_int);
@@ -3541,7 +3597,8 @@ TEST_F(SyncerTest, ClientTagUncommittedTagMatchesUpdate) {
{
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname");
+ MutableEntry perm_folder(
+ &trans, CREATE_BOOKMARK, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
perm_folder.Put(UNIQUE_CLIENT_TAG, "clientperm");
perm_folder.Put(SPECIFICS, local_bookmark);
@@ -3606,7 +3663,8 @@ 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");
+ MutableEntry perm_folder(
+ &trans, CREATE_BOOKMARK, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
ASSERT_FALSE(perm_folder.Get(ID).ServerKnows());
perm_folder.Put(UNIQUE_CLIENT_TAG, "clientperm");
@@ -4068,7 +4126,8 @@ class SyncerUndeletionTest : public SyncerTest {
void Create() {
WriteTransaction trans(FROM_HERE, UNITTEST, directory());
- MutableEntry perm_folder(&trans, CREATE, ids_.root(), "clientname");
+ MutableEntry perm_folder(
+ &trans, CREATE_BOOKMARK, ids_.root(), "clientname");
ASSERT_TRUE(perm_folder.good());
perm_folder.Put(UNIQUE_CLIENT_TAG, client_tag_);
perm_folder.Put(IS_UNSYNCED, true);
@@ -4489,220 +4548,4 @@ TEST_F(SyncerUndeletionTest, OtherClientUndeletesImmediately) {
EXPECT_EQ("Thadeusz", Get(metahandle_, NON_UNIQUE_NAME));
}
-// A group of tests exercising the syncer's handling of sibling ordering, as
-// represented in the sync protocol.
-class SyncerPositionUpdateTest : public SyncerTest {
- public:
- SyncerPositionUpdateTest() : next_update_id_(1), next_revision_(1) {}
-
- protected:
- void ExpectLocalItemsInServerOrder() {
- if (position_map_.empty())
- return;
-
- syncable::ReadTransaction trans(FROM_HERE, directory());
-
- Id prev_id;
- DCHECK(prev_id.IsRoot());
- PosMap::iterator next = position_map_.begin();
- for (PosMap::iterator i = next++; i != position_map_.end(); ++i) {
- Id id = i->second;
- Entry entry_with_id(&trans, GET_BY_ID, id);
- EXPECT_TRUE(entry_with_id.good());
- EXPECT_EQ(prev_id, entry_with_id.Get(PREV_ID));
- EXPECT_EQ(
- i->first,
- NodeOrdinalToInt64(entry_with_id.Get(SERVER_ORDINAL_IN_PARENT)));
- if (next == position_map_.end()) {
- EXPECT_EQ(Id(), entry_with_id.Get(NEXT_ID));
- } else {
- EXPECT_EQ(next->second, entry_with_id.Get(NEXT_ID));
- next++;
- }
- prev_id = id;
- }
- }
-
- void AddRootItemWithPosition(int64 position) {
- string id = string("ServerId") + base::Int64ToString(next_update_id_++);
- string name = "my name is my id -- " + id;
- int revision = next_revision_++;
- mock_server_->AddUpdateDirectory(id, kRootId, name, revision, revision);
- mock_server_->SetLastUpdatePosition(position);
- position_map_.insert(
- PosMap::value_type(position, Id::CreateFromServerId(id)));
- }
- private:
- typedef multimap<int64, Id> PosMap;
- PosMap position_map_;
- int next_update_id_;
- int next_revision_;
- DISALLOW_COPY_AND_ASSIGN(SyncerPositionUpdateTest);
-};
-
-TEST_F(SyncerPositionUpdateTest, InOrderPositive) {
- // Add a bunch of items in increasing order, starting with just positive
- // position values.
- AddRootItemWithPosition(100);
- AddRootItemWithPosition(199);
- AddRootItemWithPosition(200);
- AddRootItemWithPosition(201);
- AddRootItemWithPosition(400);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-}
-
-TEST_F(SyncerPositionUpdateTest, InOrderNegative) {
- // Test negative position values, but in increasing order.
- AddRootItemWithPosition(-400);
- AddRootItemWithPosition(-201);
- AddRootItemWithPosition(-200);
- AddRootItemWithPosition(-150);
- AddRootItemWithPosition(100);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-}
-
-TEST_F(SyncerPositionUpdateTest, ReverseOrder) {
- // Test when items are sent in the reverse order.
- AddRootItemWithPosition(400);
- AddRootItemWithPosition(201);
- AddRootItemWithPosition(200);
- AddRootItemWithPosition(100);
- AddRootItemWithPosition(-150);
- AddRootItemWithPosition(-201);
- AddRootItemWithPosition(-200);
- AddRootItemWithPosition(-400);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-}
-
-TEST_F(SyncerPositionUpdateTest, RandomOrderInBatches) {
- // Mix it all up, interleaving position values, and try multiple batches of
- // updates.
- AddRootItemWithPosition(400);
- AddRootItemWithPosition(201);
- AddRootItemWithPosition(-400);
- AddRootItemWithPosition(100);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-
- AddRootItemWithPosition(-150);
- AddRootItemWithPosition(-200);
- AddRootItemWithPosition(200);
- AddRootItemWithPosition(-201);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-
- AddRootItemWithPosition(-144);
-
- SyncShareNudge();
- ExpectLocalItemsInServerOrder();
-}
-
-class SyncerPositionTiebreakingTest : public SyncerTest {
- public:
- SyncerPositionTiebreakingTest()
- : low_id_(Id::CreateFromServerId("A")),
- mid_id_(Id::CreateFromServerId("M")),
- high_id_(Id::CreateFromServerId("Z")),
- next_revision_(1) {
- DCHECK(low_id_ < mid_id_);
- DCHECK(mid_id_ < high_id_);
- DCHECK(low_id_ < high_id_);
- }
-
- // Adds the item by its Id, using a constant value for the position
- // so that the syncer has to resolve the order some other way.
- void Add(const Id& id) {
- int revision = next_revision_++;
- mock_server_->AddUpdateDirectory(id.GetServerId(), kRootId,
- id.GetServerId(), revision, revision);
- // The update position doesn't vary.
- mock_server_->SetLastUpdatePosition(90210);
- }
-
- void ExpectLocalOrderIsByServerId() {
- syncable::ReadTransaction trans(FROM_HERE, directory());
- Id null_id;
- Entry low(&trans, GET_BY_ID, low_id_);
- Entry mid(&trans, GET_BY_ID, mid_id_);
- Entry high(&trans, GET_BY_ID, high_id_);
- EXPECT_TRUE(low.good());
- EXPECT_TRUE(mid.good());
- EXPECT_TRUE(high.good());
- EXPECT_TRUE(low.Get(PREV_ID) == null_id);
- EXPECT_TRUE(mid.Get(PREV_ID) == low_id_);
- EXPECT_TRUE(high.Get(PREV_ID) == mid_id_);
- EXPECT_TRUE(high.Get(NEXT_ID) == null_id);
- EXPECT_TRUE(mid.Get(NEXT_ID) == high_id_);
- EXPECT_TRUE(low.Get(NEXT_ID) == mid_id_);
- }
-
- protected:
- // When there's a tiebreak on the numeric position, it's supposed to be
- // broken by string comparison of the ids. These ids are in increasing
- // order.
- const Id low_id_;
- const Id mid_id_;
- const Id high_id_;
-
- private:
- int next_revision_;
- DISALLOW_COPY_AND_ASSIGN(SyncerPositionTiebreakingTest);
-};
-
-TEST_F(SyncerPositionTiebreakingTest, LowMidHigh) {
- Add(low_id_);
- Add(mid_id_);
- Add(high_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
-TEST_F(SyncerPositionTiebreakingTest, LowHighMid) {
- Add(low_id_);
- Add(high_id_);
- Add(mid_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
-TEST_F(SyncerPositionTiebreakingTest, HighMidLow) {
- Add(high_id_);
- Add(mid_id_);
- Add(low_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
-TEST_F(SyncerPositionTiebreakingTest, HighLowMid) {
- Add(high_id_);
- Add(low_id_);
- Add(mid_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
-TEST_F(SyncerPositionTiebreakingTest, MidHighLow) {
- Add(mid_id_);
- Add(high_id_);
- Add(low_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
-TEST_F(SyncerPositionTiebreakingTest, MidLowHigh) {
- Add(mid_id_);
- Add(low_id_);
- Add(high_id_);
- SyncShareNudge();
- ExpectLocalOrderIsByServerId();
-}
-
} // namespace syncer
« no previous file with comments | « sync/engine/syncer.cc ('k') | sync/engine/syncer_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698