Index: sync/internal_api/public/simple_metadata_change_list_unittest.cc |
diff --git a/sync/internal_api/public/simple_metadata_change_list_unittest.cc b/sync/internal_api/public/simple_metadata_change_list_unittest.cc |
deleted file mode 100644 |
index ff2fea668724c9dfd2586b5647d43951ee6bd9e9..0000000000000000000000000000000000000000 |
--- a/sync/internal_api/public/simple_metadata_change_list_unittest.cc |
+++ /dev/null |
@@ -1,188 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
-#include "sync/internal_api/public/simple_metadata_change_list.h" |
- |
-#include "base/bind.h" |
-#include "base/run_loop.h" |
-#include "sync/api/mock_model_type_store.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace syncer_v2 { |
-namespace { |
- |
-using WriteBatch = ModelTypeStore::WriteBatch; |
- |
-void RecordMetadataWrite(std::map<std::string, std::string>* map, |
- WriteBatch* batch, |
- const std::string& key, |
- const std::string& value) { |
- (*map)[key] = value; |
-} |
- |
-void RecordGlobalMetadataWrite(std::string* str, |
- WriteBatch* batch, |
- const std::string& value) { |
- *str = value; |
-} |
- |
-void RecordMetadataDelete(std::set<std::string>* set, |
- WriteBatch* batch, |
- const std::string& id) { |
- set->insert(id); |
-} |
- |
-void RecordGlobalMetadataDelete(bool* was_delete_called, WriteBatch* batch) { |
- *was_delete_called = true; |
-} |
- |
-class SimpleMetadataChangeListTest : public testing::Test { |
- protected: |
- SimpleMetadataChangeListTest() {} |
- |
- MockModelTypeStore* store() { return &store_; } |
- |
- private: |
- // MockModelTypeStore needs MessageLoop |
- base::MessageLoop message_loop_; |
- |
- MockModelTypeStore store_; |
-}; |
- |
-TEST_F(SimpleMetadataChangeListTest, TransferChangesEmptyChangeList) { |
- SimpleMetadataChangeList cl; |
- std::unique_ptr<WriteBatch> batch = store()->CreateWriteBatch(); |
- |
- std::map<std::string, std::string> change_map; |
- std::set<std::string> delete_set; |
- std::string global_metadata; |
- store()->RegisterWriteMetadataHandler( |
- base::Bind(&RecordMetadataWrite, &change_map)); |
- store()->RegisterWriteGlobalMetadataHandler( |
- base::Bind(&RecordGlobalMetadataWrite, &global_metadata)); |
- store()->RegisterDeleteMetadataHandler( |
- base::Bind(&RecordMetadataDelete, &delete_set)); |
- |
- cl.TransferChanges(store(), batch.get()); |
- |
- EXPECT_EQ(change_map.size(), 0ul); |
- EXPECT_EQ(delete_set.size(), 0ul); |
- EXPECT_EQ(global_metadata.size(), 0ul); |
-} |
- |
-TEST_F(SimpleMetadataChangeListTest, TransferChangesClearsLocalState) { |
- SimpleMetadataChangeList cl; |
- sync_pb::EntityMetadata metadata; |
- metadata.set_client_tag_hash("some_hash"); |
- cl.UpdateMetadata("client_tag", metadata); |
- |
- sync_pb::DataTypeState state; |
- state.set_encryption_key_name("ekn"); |
- cl.UpdateDataTypeState(state); |
- |
- EXPECT_NE(cl.GetMetadataChanges().size(), 0ul); |
- EXPECT_TRUE(cl.HasDataTypeStateChange()); |
- |
- std::unique_ptr<WriteBatch> batch = store()->CreateWriteBatch(); |
- cl.TransferChanges(store(), batch.get()); |
- |
- EXPECT_EQ(cl.GetMetadataChanges().size(), 0ul); |
- EXPECT_FALSE(cl.HasDataTypeStateChange()); |
-} |
- |
-TEST_F(SimpleMetadataChangeListTest, TransferChangesMultipleInvocationsSafe) { |
- SimpleMetadataChangeList cl; |
- sync_pb::EntityMetadata metadata; |
- metadata.set_client_tag_hash("some_hash"); |
- cl.UpdateMetadata("client_tag", metadata); |
- |
- sync_pb::DataTypeState state; |
- state.set_encryption_key_name("ekn"); |
- cl.UpdateDataTypeState(state); |
- |
- std::string global_metadata; |
- std::map<std::string, std::string> change_map; |
- store()->RegisterWriteMetadataHandler( |
- base::Bind(&RecordMetadataWrite, &change_map)); |
- store()->RegisterWriteGlobalMetadataHandler( |
- base::Bind(&RecordGlobalMetadataWrite, &global_metadata)); |
- |
- std::unique_ptr<WriteBatch> batch = store()->CreateWriteBatch(); |
- cl.TransferChanges(store(), batch.get()); |
- cl.TransferChanges(store(), batch.get()); |
- cl.TransferChanges(store(), batch.get()); |
- |
- EXPECT_EQ(state.SerializeAsString(), global_metadata); |
- EXPECT_EQ(metadata.SerializeAsString(), change_map["client_tag"]); |
-} |
- |
-TEST_F(SimpleMetadataChangeListTest, TransferChangesMultipleChanges) { |
- SimpleMetadataChangeList cl; |
- |
- sync_pb::EntityMetadata metadata; |
- metadata.set_client_tag_hash("some_hash"); |
- cl.UpdateMetadata("client_tag", metadata); |
- metadata.set_specifics_hash("specifics_hash"); |
- cl.UpdateMetadata("client_tag", metadata); |
- |
- sync_pb::EntityMetadata metadata2; |
- metadata2.set_client_tag_hash("some_other_hash"); |
- cl.UpdateMetadata("client_tag2", metadata2); |
- |
- sync_pb::DataTypeState state; |
- state.set_encryption_key_name("ekn"); |
- cl.UpdateDataTypeState(state); |
- state.set_encryption_key_name("ekn2"); |
- cl.UpdateDataTypeState(state); |
- |
- std::string global_metadata; |
- std::map<std::string, std::string> change_map; |
- store()->RegisterWriteGlobalMetadataHandler( |
- base::Bind(&RecordGlobalMetadataWrite, &global_metadata)); |
- store()->RegisterWriteMetadataHandler( |
- base::Bind(&RecordMetadataWrite, &change_map)); |
- |
- std::unique_ptr<WriteBatch> batch = store()->CreateWriteBatch(); |
- cl.TransferChanges(store(), batch.get()); |
- |
- EXPECT_EQ(metadata.SerializeAsString(), change_map["client_tag"]); |
- EXPECT_EQ(metadata2.SerializeAsString(), change_map["client_tag2"]); |
- EXPECT_EQ(state.SerializeAsString(), global_metadata); |
-} |
- |
-TEST_F(SimpleMetadataChangeListTest, TransferChangesDeletesClearedItems) { |
- SimpleMetadataChangeList cl; |
- sync_pb::EntityMetadata metadata; |
- metadata.set_client_tag_hash("some_hash"); |
- cl.UpdateMetadata("client_tag", metadata); |
- cl.ClearMetadata("client_tag"); |
- |
- sync_pb::DataTypeState state; |
- state.set_encryption_key_name("ekn"); |
- cl.UpdateDataTypeState(state); |
- cl.ClearDataTypeState(); |
- |
- std::map<std::string, std::string> change_map; |
- std::set<std::string> delete_set; |
- std::string global_metadata; |
- bool delete_called = false; |
- store()->RegisterWriteMetadataHandler( |
- base::Bind(&RecordMetadataWrite, &change_map)); |
- store()->RegisterWriteGlobalMetadataHandler( |
- base::Bind(&RecordGlobalMetadataWrite, &global_metadata)); |
- store()->RegisterDeleteMetadataHandler( |
- base::Bind(&RecordMetadataDelete, &delete_set)); |
- store()->RegisterDeleteGlobalMetadataHandler( |
- base::Bind(&RecordGlobalMetadataDelete, &delete_called)); |
- |
- std::unique_ptr<WriteBatch> batch = store()->CreateWriteBatch(); |
- cl.TransferChanges(store(), batch.get()); |
- |
- EXPECT_TRUE(delete_set.find("client_tag") != delete_set.end()); |
- EXPECT_TRUE(change_map.find("client_tag") == change_map.end()); |
- EXPECT_TRUE(delete_called); |
- EXPECT_TRUE(global_metadata.empty()); |
-} |
- |
-} // namespace |
-} // namespace syncer_v2 |