| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |