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

Unified Diff: components/sync/model/fake_model_type_sync_bridge.cc

Issue 2473553003: [Sync] Improve MetadataChangeList usage for types using ModelTypeStore. (Closed)
Patch Set: Fix comments + protected constructor. Created 4 years, 1 month 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
Index: components/sync/model/fake_model_type_sync_bridge.cc
diff --git a/components/sync/model/fake_model_type_sync_bridge.cc b/components/sync/model/fake_model_type_sync_bridge.cc
index 3c53b4d447b34b7c0a68c239c21ed82e180b3a17..bfce7597df474e359d277170b74ba4ad51a30637 100644
--- a/components/sync/model/fake_model_type_sync_bridge.cc
+++ b/components/sync/model/fake_model_type_sync_bridge.cc
@@ -9,7 +9,7 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "components/sync/model/mutable_data_batch.h"
-#include "components/sync/model/simple_metadata_change_list.h"
+#include "components/sync/model_impl/in_memory_metadata_change_list.h"
#include "components/sync/syncable/syncable_util.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -35,6 +35,25 @@ std::unique_ptr<EntityData> CopyEntityData(const EntityData& old_data) {
return new_data;
}
+// A simple InMemoryMetadataChangeList that provides accessors for its data.
+class TestMetadataChangeList : public InMemoryMetadataChangeList {
+ public:
+ TestMetadataChangeList() {}
+ ~TestMetadataChangeList() override {}
+
+ const std::map<std::string, MetadataChange>& GetMetadataChanges() const {
+ return metadata_changes_;
+ }
+
+ bool HasModelTypeStateChange() const {
+ return state_change_.get() != nullptr;
+ }
+
+ const ModelTypeStateChange& GetModelTypeStateChange() const {
+ return *state_change_.get();
+ }
+};
+
} // namespace
// static
@@ -159,8 +178,7 @@ void FakeModelTypeSyncBridge::WriteItem(
std::unique_ptr<EntityData> entity_data) {
db_->PutData(key, *entity_data);
if (change_processor()) {
- std::unique_ptr<MetadataChangeList> change_list(
- new SimpleMetadataChangeList());
+ auto change_list = CreateMetadataChangeList();
change_processor()->Put(key, std::move(entity_data), change_list.get());
ApplyMetadataChangeList(std::move(change_list));
}
@@ -169,8 +187,7 @@ void FakeModelTypeSyncBridge::WriteItem(
void FakeModelTypeSyncBridge::DeleteItem(const std::string& key) {
db_->RemoveData(key);
if (change_processor()) {
- std::unique_ptr<MetadataChangeList> change_list(
- new SimpleMetadataChangeList());
+ auto change_list = CreateMetadataChangeList();
change_processor()->Delete(key, change_list.get());
ApplyMetadataChangeList(std::move(change_list));
}
@@ -178,7 +195,7 @@ void FakeModelTypeSyncBridge::DeleteItem(const std::string& key) {
std::unique_ptr<MetadataChangeList>
FakeModelTypeSyncBridge::CreateMetadataChangeList() {
- return std::unique_ptr<MetadataChangeList>(new SimpleMetadataChangeList());
+ return base::MakeUnique<TestMetadataChangeList>();
}
SyncError FakeModelTypeSyncBridge::MergeSyncData(
@@ -233,30 +250,29 @@ SyncError FakeModelTypeSyncBridge::ApplySyncChanges(
}
void FakeModelTypeSyncBridge::ApplyMetadataChangeList(
- std::unique_ptr<MetadataChangeList> change_list) {
- DCHECK(change_list);
- SimpleMetadataChangeList* changes =
- static_cast<SimpleMetadataChangeList*>(change_list.get());
- const auto& metadata_changes = changes->GetMetadataChanges();
+ std::unique_ptr<MetadataChangeList> mcl) {
+ DCHECK(mcl);
+ TestMetadataChangeList* tmcl =
+ static_cast<TestMetadataChangeList*>(mcl.get());
+ const auto& metadata_changes = tmcl->GetMetadataChanges();
for (const auto& kv : metadata_changes) {
switch (kv.second.type) {
- case SimpleMetadataChangeList::UPDATE:
+ case TestMetadataChangeList::UPDATE:
db_->PutMetadata(kv.first, kv.second.metadata);
break;
- case SimpleMetadataChangeList::CLEAR:
+ case TestMetadataChangeList::CLEAR:
EXPECT_TRUE(db_->HasMetadata(kv.first));
db_->RemoveMetadata(kv.first);
break;
}
}
- if (changes->HasModelTypeStateChange()) {
- const SimpleMetadataChangeList::ModelTypeStateChange& state_change =
- changes->GetModelTypeStateChange();
+ if (tmcl->HasModelTypeStateChange()) {
+ const auto& state_change = tmcl->GetModelTypeStateChange();
switch (state_change.type) {
- case SimpleMetadataChangeList::UPDATE:
+ case TestMetadataChangeList::UPDATE:
db_->set_model_type_state(state_change.state);
break;
- case SimpleMetadataChangeList::CLEAR:
+ case TestMetadataChangeList::CLEAR:
db_->set_model_type_state(ModelTypeState());
break;
}
« no previous file with comments | « components/sync/device_info/device_info_sync_bridge.cc ('k') | components/sync/model/mock_model_type_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698