| 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/autofill/core/browser/webdata/autocomplete_sync_bridge.h" | 5 #include "components/autofill/core/browser/webdata/autocomplete_sync_bridge.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 using base::TimeDelta; | 36 using base::TimeDelta; |
| 37 using sync_pb::AutofillSpecifics; | 37 using sync_pb::AutofillSpecifics; |
| 38 using sync_pb::EntityMetadata; | 38 using sync_pb::EntityMetadata; |
| 39 using sync_pb::EntitySpecifics; | 39 using sync_pb::EntitySpecifics; |
| 40 using sync_pb::ModelTypeState; | 40 using sync_pb::ModelTypeState; |
| 41 using syncer::DataBatch; | 41 using syncer::DataBatch; |
| 42 using syncer::EntityChange; | 42 using syncer::EntityChange; |
| 43 using syncer::EntityChangeList; | 43 using syncer::EntityChangeList; |
| 44 using syncer::EntityData; | 44 using syncer::EntityData; |
| 45 using syncer::EntityDataPtr; | 45 using syncer::EntityDataPtr; |
| 46 using syncer::EntityDataMap; | |
| 47 using syncer::FakeModelTypeChangeProcessor; | 46 using syncer::FakeModelTypeChangeProcessor; |
| 48 using syncer::KeyAndData; | 47 using syncer::KeyAndData; |
| 49 using syncer::ModelError; | 48 using syncer::ModelError; |
| 50 using syncer::ModelType; | 49 using syncer::ModelType; |
| 51 using syncer::ModelTypeChangeProcessor; | 50 using syncer::ModelTypeChangeProcessor; |
| 52 using syncer::ModelTypeSyncBridge; | 51 using syncer::ModelTypeSyncBridge; |
| 53 using syncer::RecordingModelTypeChangeProcessor; | 52 using syncer::RecordingModelTypeChangeProcessor; |
| 54 | 53 |
| 55 namespace autofill { | 54 namespace autofill { |
| 56 | 55 |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 return tag; | 186 return tag; |
| 188 } | 187 } |
| 189 | 188 |
| 190 std::string GetStorageKey(const AutofillSpecifics& specifics) { | 189 std::string GetStorageKey(const AutofillSpecifics& specifics) { |
| 191 std::string key = | 190 std::string key = |
| 192 bridge()->GetStorageKey(SpecificsToEntity(specifics).value()); | 191 bridge()->GetStorageKey(SpecificsToEntity(specifics).value()); |
| 193 EXPECT_FALSE(key.empty()); | 192 EXPECT_FALSE(key.empty()); |
| 194 return key; | 193 return key; |
| 195 } | 194 } |
| 196 | 195 |
| 197 EntityChangeList EntityAddList( | 196 EntityChangeList CreateEntityAddList( |
| 198 const std::vector<AutofillSpecifics>& specifics_vector) { | 197 const std::vector<AutofillSpecifics>& specifics_vector) { |
| 199 EntityChangeList changes; | 198 EntityChangeList changes; |
| 200 for (const auto& specifics : specifics_vector) { | 199 for (const auto& specifics : specifics_vector) { |
| 201 changes.push_back(EntityChange::CreateAdd(GetStorageKey(specifics), | 200 changes.push_back(EntityChange::CreateAdd(GetStorageKey(specifics), |
| 202 SpecificsToEntity(specifics))); | 201 SpecificsToEntity(specifics))); |
| 203 } | 202 } |
| 204 return changes; | 203 return changes; |
| 205 } | 204 } |
| 206 | 205 |
| 207 EntityDataMap CreateEntityDataMap( | 206 void VerifyApplyChanges(const EntityChangeList& changes) { |
| 208 const std::vector<AutofillSpecifics>& specifics_vector) { | |
| 209 EntityDataMap map; | |
| 210 for (const auto& specifics : specifics_vector) { | |
| 211 map[GetStorageKey(specifics)] = SpecificsToEntity(specifics); | |
| 212 } | |
| 213 return map; | |
| 214 } | |
| 215 | |
| 216 void VerifyApplyChanges(const std::vector<EntityChange>& changes) { | |
| 217 const auto error = bridge()->ApplySyncChanges( | 207 const auto error = bridge()->ApplySyncChanges( |
| 218 bridge()->CreateMetadataChangeList(), changes); | 208 bridge()->CreateMetadataChangeList(), changes); |
| 219 EXPECT_FALSE(error); | 209 EXPECT_FALSE(error); |
| 220 } | 210 } |
| 221 | 211 |
| 222 void VerifyApplyAdds(const std::vector<AutofillSpecifics>& specifics) { | 212 void VerifyApplyAdds(const std::vector<AutofillSpecifics>& specifics) { |
| 223 VerifyApplyChanges(EntityAddList(specifics)); | 213 VerifyApplyChanges(CreateEntityAddList(specifics)); |
| 224 } | 214 } |
| 225 | 215 |
| 226 void VerifyMerge(const std::vector<AutofillSpecifics>& specifics) { | 216 void VerifyMerge(const std::vector<AutofillSpecifics>& specifics) { |
| 227 const auto error = bridge()->MergeSyncData( | 217 const auto error = bridge()->MergeSyncData( |
| 228 bridge()->CreateMetadataChangeList(), CreateEntityDataMap(specifics)); | 218 bridge()->CreateMetadataChangeList(), CreateEntityAddList(specifics)); |
| 229 EXPECT_FALSE(error); | 219 EXPECT_FALSE(error); |
| 230 } | 220 } |
| 231 | 221 |
| 232 std::map<std::string, AutofillSpecifics> ExpectedMap( | 222 std::map<std::string, AutofillSpecifics> ExpectedMap( |
| 233 const std::vector<AutofillSpecifics>& specifics_vector) { | 223 const std::vector<AutofillSpecifics>& specifics_vector) { |
| 234 std::map<std::string, AutofillSpecifics> map; | 224 std::map<std::string, AutofillSpecifics> map; |
| 235 for (const auto& specifics : specifics_vector) { | 225 for (const auto& specifics : specifics_vector) { |
| 236 map[GetStorageKey(specifics)] = specifics; | 226 map[GetStorageKey(specifics)] = specifics; |
| 237 } | 227 } |
| 238 return map; | 228 return map; |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 VerifyMerge({remote2, specifics3, remote4}); | 669 VerifyMerge({remote2, specifics3, remote4}); |
| 680 | 670 |
| 681 VerifyAllData({local1, remote2, specifics3, merged4}); | 671 VerifyAllData({local1, remote2, specifics3, merged4}); |
| 682 EXPECT_EQ(2u, processor().put_multimap().size()); | 672 EXPECT_EQ(2u, processor().put_multimap().size()); |
| 683 VerifyProcessorRecordedPut(local1); | 673 VerifyProcessorRecordedPut(local1); |
| 684 VerifyProcessorRecordedPut(merged4); | 674 VerifyProcessorRecordedPut(merged4); |
| 685 EXPECT_EQ(0u, processor().delete_set().size()); | 675 EXPECT_EQ(0u, processor().delete_set().size()); |
| 686 } | 676 } |
| 687 | 677 |
| 688 } // namespace autofill | 678 } // namespace autofill |
| OLD | NEW |