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

Side by Side Diff: sync/syncable/parent_child_index_unittest.cc

Issue 805633004: Enable Null Syncable ID which is different than Root ID. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed CR feedback Created 6 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 unified diff | Download patch
« no previous file with comments | « sync/syncable/nigori_util.cc ('k') | sync/syncable/syncable_base_transaction.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/syncable/parent_child_index.h" 5 #include "sync/syncable/parent_child_index.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 return syncable::Id::CreateFromServerId("c" + base::IntToString(n)); 42 return syncable::Id::CreateFromServerId("c" + base::IntToString(n));
43 } 43 }
44 44
45 EntryKernel* MakeRoot() { 45 EntryKernel* MakeRoot() {
46 // Mimics the root node. 46 // Mimics the root node.
47 EntryKernel* root = new EntryKernel(); 47 EntryKernel* root = new EntryKernel();
48 root->put(META_HANDLE, 1); 48 root->put(META_HANDLE, 1);
49 root->put(BASE_VERSION, -1); 49 root->put(BASE_VERSION, -1);
50 root->put(SERVER_VERSION, 0); 50 root->put(SERVER_VERSION, 0);
51 root->put(IS_DIR, true); 51 root->put(IS_DIR, true);
52 root->put(ID, syncable::Id()); 52 root->put(ID, syncable::Id::GetRoot());
53 root->put(PARENT_ID, syncable::Id()); 53 root->put(PARENT_ID, syncable::Id::GetRoot());
54 root->put(SERVER_PARENT_ID, syncable::Id());
55 54
56 owned_entry_kernels_.push_back(root); 55 owned_entry_kernels_.push_back(root);
57 return root; 56 return root;
58 } 57 }
59 58
60 EntryKernel* MakeBookmarkRoot() { 59 EntryKernel* MakeBookmarkRoot() {
61 // Mimics a server-created bookmark folder. 60 // Mimics a server-created bookmark folder.
62 EntryKernel* folder = new EntryKernel; 61 EntryKernel* folder = new EntryKernel;
63 folder->put(META_HANDLE, 1); 62 folder->put(META_HANDLE, 1);
64 folder->put(BASE_VERSION, 9); 63 folder->put(BASE_VERSION, 9);
65 folder->put(SERVER_VERSION, 9); 64 folder->put(SERVER_VERSION, 9);
66 folder->put(IS_DIR, true); 65 folder->put(IS_DIR, true);
67 folder->put(ID, GetBookmarkRootId()); 66 folder->put(ID, GetBookmarkRootId());
68 folder->put(SERVER_PARENT_ID, syncable::Id()); 67 folder->put(PARENT_ID, syncable::Id::GetRoot());
69 folder->put(PARENT_ID, syncable::Id());
70 folder->put(UNIQUE_SERVER_TAG, "google_chrome_bookmarks"); 68 folder->put(UNIQUE_SERVER_TAG, "google_chrome_bookmarks");
71 69
72 owned_entry_kernels_.push_back(folder); 70 owned_entry_kernels_.push_back(folder);
73 return folder; 71 return folder;
74 } 72 }
75 73
76 EntryKernel* MakeBookmark(int n, int pos, bool is_dir) { 74 EntryKernel* MakeBookmark(int n, int pos, bool is_dir) {
77 // Mimics a regular bookmark or folder. 75 // Mimics a regular bookmark or folder.
78 EntryKernel* bm = new EntryKernel(); 76 EntryKernel* bm = new EntryKernel();
79 bm->put(META_HANDLE, n); 77 bm->put(META_HANDLE, n);
80 bm->put(BASE_VERSION, 10); 78 bm->put(BASE_VERSION, 10);
81 bm->put(SERVER_VERSION, 10); 79 bm->put(SERVER_VERSION, 10);
82 bm->put(IS_DIR, is_dir); 80 bm->put(IS_DIR, is_dir);
83 bm->put(ID, GetBookmarkId(n)); 81 bm->put(ID, GetBookmarkId(n));
84 bm->put(PARENT_ID, GetBookmarkRootId()); 82 bm->put(PARENT_ID, GetBookmarkRootId());
85 bm->put(SERVER_PARENT_ID, GetBookmarkRootId());
86 83
87 bm->put(UNIQUE_BOOKMARK_TAG, 84 bm->put(UNIQUE_BOOKMARK_TAG,
88 syncable::GenerateSyncableBookmarkHash(kCacheGuid, 85 syncable::GenerateSyncableBookmarkHash(kCacheGuid,
89 bm->ref(ID).GetServerId())); 86 bm->ref(ID).GetServerId()));
90 87
91 UniquePosition unique_pos = 88 UniquePosition unique_pos =
92 UniquePosition::FromInt64(pos, bm->ref(UNIQUE_BOOKMARK_TAG)); 89 UniquePosition::FromInt64(pos, bm->ref(UNIQUE_BOOKMARK_TAG));
93 bm->put(UNIQUE_POSITION, unique_pos); 90 bm->put(UNIQUE_POSITION, unique_pos);
94 bm->put(SERVER_UNIQUE_POSITION, unique_pos); 91 bm->put(SERVER_UNIQUE_POSITION, unique_pos);
95 92
96 owned_entry_kernels_.push_back(bm); 93 owned_entry_kernels_.push_back(bm);
97 return bm; 94 return bm;
98 } 95 }
99 96
100 EntryKernel* MakeUniqueClientItem(int n) { 97 EntryKernel* MakeUniqueClientItem(int n) {
101 EntryKernel* item = new EntryKernel(); 98 EntryKernel* item = new EntryKernel();
102 item->put(META_HANDLE, n); 99 item->put(META_HANDLE, n);
103 item->put(BASE_VERSION, 10); 100 item->put(BASE_VERSION, 10);
104 item->put(SERVER_VERSION, 10); 101 item->put(SERVER_VERSION, 10);
105 item->put(IS_DIR, false); 102 item->put(IS_DIR, false);
106 item->put(ID, GetClientUniqueId(n)); 103 item->put(ID, GetClientUniqueId(n));
107 item->put(PARENT_ID, syncable::Id()); 104 item->put(PARENT_ID, syncable::Id::GetRoot());
108 item->put(SERVER_PARENT_ID, syncable::Id());
109 item->put(UNIQUE_CLIENT_TAG, base::IntToString(n)); 105 item->put(UNIQUE_CLIENT_TAG, base::IntToString(n));
110 106
111 owned_entry_kernels_.push_back(item); 107 owned_entry_kernels_.push_back(item);
112 return item; 108 return item;
113 } 109 }
114 110
115 ParentChildIndex index_; 111 ParentChildIndex index_;
116 112
117 private: 113 private:
118 std::list<EntryKernel*> owned_entry_kernels_; 114 std::list<EntryKernel*> owned_entry_kernels_;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 // Make two unique client tag items under the root node. 291 // Make two unique client tag items under the root node.
296 EntryKernel* u1 = MakeUniqueClientItem(1); 292 EntryKernel* u1 = MakeUniqueClientItem(1);
297 EntryKernel* u2 = MakeUniqueClientItem(2); 293 EntryKernel* u2 = MakeUniqueClientItem(2);
298 294
299 EXPECT_FALSE(u1->ShouldMaintainPosition()); 295 EXPECT_FALSE(u1->ShouldMaintainPosition());
300 EXPECT_FALSE(u2->ShouldMaintainPosition()); 296 EXPECT_FALSE(u2->ShouldMaintainPosition());
301 297
302 index_.Insert(u1); 298 index_.Insert(u1);
303 index_.Insert(u2); 299 index_.Insert(u2);
304 300
305 const OrderedChildSet* children = index_.GetChildren(syncable::Id()); 301 const OrderedChildSet* children = index_.GetChildren(syncable::Id::GetRoot());
306 EXPECT_EQ(children->count(u1), 1UL); 302 EXPECT_EQ(children->count(u1), 1UL);
307 EXPECT_EQ(children->count(u2), 1UL); 303 EXPECT_EQ(children->count(u2), 1UL);
308 EXPECT_EQ(children->size(), 2UL); 304 EXPECT_EQ(children->size(), 2UL);
309 } 305 }
310 306
311 // Test ordered and non-ordered entries under the same parent. 307 // Test ordered and non-ordered entries under the same parent.
312 // TODO(rlarocque): We should not need to support this. 308 // TODO(rlarocque): We should not need to support this.
313 TEST_F(ParentChildIndexTest, OrderedAndUnorderedChildren) { 309 TEST_F(ParentChildIndexTest, OrderedAndUnorderedChildren) {
314 EntryKernel* bm_folder = MakeBookmarkRoot(); 310 EntryKernel* bm_folder = MakeBookmarkRoot();
315 index_.Insert(bm_folder); 311 index_.Insert(bm_folder);
(...skipping 19 matching lines...) Expand all
335 it++; 331 it++;
336 EXPECT_EQ(*it, u1); 332 EXPECT_EQ(*it, u1);
337 it++; 333 it++;
338 EXPECT_TRUE(it == children->end()); 334 EXPECT_TRUE(it == children->end());
339 } 335 }
340 336
341 } // namespace 337 } // namespace
342 } // namespace syncable 338 } // namespace syncable
343 } // namespace syncer 339 } // namespace syncer
344 340
OLDNEW
« no previous file with comments | « sync/syncable/nigori_util.cc ('k') | sync/syncable/syncable_base_transaction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698