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

Side by Side Diff: components/sync/engine_impl/uss_migrator_unittest.cc

Issue 2630613002: [Sync] USS: Filter out tombstones for initial sync. (Closed)
Patch Set: Fix TestEntryFactory for realz. Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/sync/engine_impl/uss_migrator.h" 5 #include "components/sync/engine_impl/uss_migrator.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 directory()->SetDownloadProgress(kModelType, progress_marker); 74 directory()->SetDownloadProgress(kModelType, progress_marker);
75 } 75 }
76 76
77 void CreateTypeRoot() { entry_factory_->CreateTypeRootNode(kModelType); } 77 void CreateTypeRoot() { entry_factory_->CreateTypeRootNode(kModelType); }
78 78
79 int64_t InsertEntity(const std::string& key, const std::string& value) { 79 int64_t InsertEntity(const std::string& key, const std::string& value) {
80 const sync_pb::EntitySpecifics specifics = GenerateSpecifics(key, value); 80 const sync_pb::EntitySpecifics specifics = GenerateSpecifics(key, value);
81 return entry_factory_->CreateSyncedItem(key, kModelType, false, specifics); 81 return entry_factory_->CreateSyncedItem(key, kModelType, false, specifics);
82 } 82 }
83 83
84 int64_t DeleteEntity(const std::string& key) {
85 return entry_factory_->CreateTombstone(key, kModelType);
86 }
87
84 base::Time GetCtimeForEntity(int64_t metahandle) { 88 base::Time GetCtimeForEntity(int64_t metahandle) {
85 ReadTransaction trans(FROM_HERE, user_share()); 89 ReadTransaction trans(FROM_HERE, user_share());
86 ReadNode read_node(&trans); 90 ReadNode read_node(&trans);
87 auto result = read_node.InitByIdLookup(metahandle); 91 auto result = read_node.InitByIdLookup(metahandle);
88 DCHECK_EQ(BaseNode::INIT_OK, result); 92 DCHECK_EQ(BaseNode::INIT_OK, result);
89 return read_node.GetEntry()->GetServerCtime(); 93 return read_node.GetEntry()->GetServerCtime();
90 } 94 }
91 95
92 UserShare* user_share() { return test_user_share_.user_share(); } 96 UserShare* user_share() { return test_user_share_.user_share(); }
93 MockNudgeHandler* nudge_handler() { return &nudge_handler_; } 97 MockNudgeHandler* nudge_handler() { return &nudge_handler_; }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 172
169 EXPECT_EQ(1U, processor()->GetNumUpdateResponses()); 173 EXPECT_EQ(1U, processor()->GetNumUpdateResponses());
170 EXPECT_EQ(3U, processor()->GetNthUpdateResponse(0).size()); 174 EXPECT_EQ(3U, processor()->GetNthUpdateResponse(0).size());
171 175
172 UpdateResponseDataList updates = processor()->GetNthUpdateResponse(0); 176 UpdateResponseDataList updates = processor()->GetNthUpdateResponse(0);
173 EXPECT_EQ(kTag1, updates.at(0).entity.value().specifics.preference().name()); 177 EXPECT_EQ(kTag1, updates.at(0).entity.value().specifics.preference().name());
174 EXPECT_EQ(kTag2, updates.at(1).entity.value().specifics.preference().name()); 178 EXPECT_EQ(kTag2, updates.at(1).entity.value().specifics.preference().name());
175 EXPECT_EQ(kTag3, updates.at(2).entity.value().specifics.preference().name()); 179 EXPECT_EQ(kTag3, updates.at(2).entity.value().specifics.preference().name());
176 } 180 }
177 181
182 TEST_F(UssMigratorTest, MigrateIgnoresTombstone) {
183 CreateTypeRoot();
184 SetProgressMarkerToken(kToken1);
185 DeleteEntity(kTag1);
186
187 ASSERT_TRUE(MigrateDirectoryData(kModelType, user_share(), worker()));
188
189 EXPECT_EQ(0, nudge_handler()->GetNumInitialDownloadNudges());
190 EXPECT_EQ(1U, processor()->GetNumUpdateResponses());
191 EXPECT_EQ(0U, processor()->GetNthUpdateResponse(0).size());
192 }
193
178 TEST_F(UssMigratorTest, MigrateZero) { 194 TEST_F(UssMigratorTest, MigrateZero) {
179 CreateTypeRoot(); 195 CreateTypeRoot();
180 SetProgressMarkerToken(kToken1); 196 SetProgressMarkerToken(kToken1);
181 197
182 ASSERT_TRUE(MigrateDirectoryData(kModelType, user_share(), worker())); 198 ASSERT_TRUE(MigrateDirectoryData(kModelType, user_share(), worker()));
183 199
184 EXPECT_EQ(0, nudge_handler()->GetNumInitialDownloadNudges()); 200 EXPECT_EQ(0, nudge_handler()->GetNumInitialDownloadNudges());
185 EXPECT_EQ(1U, processor()->GetNumUpdateResponses()); 201 EXPECT_EQ(1U, processor()->GetNumUpdateResponses());
186 EXPECT_EQ(0U, processor()->GetNthUpdateResponse(0).size()); 202 EXPECT_EQ(0U, processor()->GetNthUpdateResponse(0).size());
187 } 203 }
188 204
189 TEST_F(UssMigratorTest, MissingTypeRoot) { 205 TEST_F(UssMigratorTest, MissingTypeRoot) {
190 EXPECT_EQ(0, nudge_handler()->GetNumInitialDownloadNudges()); 206 EXPECT_EQ(0, nudge_handler()->GetNumInitialDownloadNudges());
191 ASSERT_FALSE(MigrateDirectoryData(kModelType, user_share(), worker())); 207 ASSERT_FALSE(MigrateDirectoryData(kModelType, user_share(), worker()));
192 EXPECT_EQ(1, nudge_handler()->GetNumInitialDownloadNudges()); 208 EXPECT_EQ(1, nudge_handler()->GetNumInitialDownloadNudges());
193 EXPECT_EQ(0U, processor()->GetNumUpdateResponses()); 209 EXPECT_EQ(0U, processor()->GetNumUpdateResponses());
194 } 210 }
195 211
196 } // namespace syncer 212 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/engine_impl/uss_migrator.cc ('k') | components/sync/model/fake_model_type_sync_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698