Chromium Code Reviews| Index: components/sync/model/model_type_service_unittest.cc |
| diff --git a/components/sync/model/model_type_service_unittest.cc b/components/sync/model/model_type_service_unittest.cc |
| index 15db0d7cfeae956e1020e8cc0e1963b574e5394a..55ec72e95270975f323f630e743e2b16e51a155f 100644 |
| --- a/components/sync/model/model_type_service_unittest.cc |
| +++ b/components/sync/model/model_type_service_unittest.cc |
| @@ -4,11 +4,15 @@ |
| #include "components/sync/model/model_type_service.h" |
| +#include <utility> |
| + |
| #include "base/bind.h" |
| #include "base/memory/ptr_util.h" |
| #include "components/sync/model/data_type_error_handler_mock.h" |
| #include "components/sync/model/fake_model_type_change_processor.h" |
| +#include "components/sync/model/metadata_batch.h" |
| #include "components/sync/model/stub_model_type_service.h" |
| +#include "components/sync/protocol/model_type_state.pb.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace syncer { |
| @@ -22,8 +26,24 @@ class MockModelTypeChangeProcessor : public FakeModelTypeChangeProcessor { |
| void DisableSync() override { disabled_callback_.Run(); } |
| + void OnMetadataLoaded(SyncError error, |
| + std::unique_ptr<MetadataBatch> batch) override { |
| + on_metadata_loaded_error_ = error; |
| + on_metadata_loaded_batch_ = std::move(batch); |
| + } |
| + |
| + const SyncError& on_metadata_loaded_error() const { |
| + return on_metadata_loaded_error_; |
| + } |
| + MetadataBatch* on_metadata_loaded_batch() { |
| + return on_metadata_loaded_batch_.get(); |
| + } |
| + |
| private: |
| base::Closure disabled_callback_; |
| + |
| + SyncError on_metadata_loaded_error_; |
| + std::unique_ptr<MetadataBatch> on_metadata_loaded_batch_; |
| }; |
| class MockModelTypeService : public StubModelTypeService { |
| @@ -33,15 +53,11 @@ class MockModelTypeService : public StubModelTypeService { |
| base::Unretained(this))) {} |
| ~MockModelTypeService() override {} |
| - void CreateChangeProcessor() { ModelTypeService::CreateChangeProcessor(); } |
| - |
| MockModelTypeChangeProcessor* change_processor() const { |
| return static_cast<MockModelTypeChangeProcessor*>( |
| ModelTypeService::change_processor()); |
| } |
| - bool on_processor_set_called() const { return on_processor_set_called_; } |
| - void clear_on_processor_set_called() { on_processor_set_called_ = false; } |
| bool processor_disable_sync_called() const { |
| return processor_disable_sync_called_; |
| } |
| @@ -54,11 +70,8 @@ class MockModelTypeService : public StubModelTypeService { |
| &MockModelTypeService::OnProcessorDisableSync, base::Unretained(this))); |
| } |
| - void OnChangeProcessorSet() override { on_processor_set_called_ = true; } |
| - |
| void OnProcessorDisableSync() { processor_disable_sync_called_ = true; } |
| - bool on_processor_set_called_ = false; |
| bool processor_disable_sync_called_ = false; |
| }; |
| @@ -84,32 +97,15 @@ class ModelTypeServiceTest : public ::testing::Test { |
| start_callback_called_ = true; |
| } |
| - bool start_callback_called_; |
| + bool start_callback_called_ = false; |
| MockModelTypeService service_; |
| }; |
| -// CreateChangeProcessor should construct a processor and call |
| -// OnChangeProcessorSet if and only if one doesn't already exist. |
| -TEST_F(ModelTypeServiceTest, CreateChangeProcessor) { |
| - EXPECT_FALSE(service()->change_processor()); |
| - EXPECT_FALSE(service()->on_processor_set_called()); |
| - service()->CreateChangeProcessor(); |
| - ModelTypeChangeProcessor* processor = service()->change_processor(); |
| - EXPECT_TRUE(processor); |
| - EXPECT_TRUE(service()->on_processor_set_called()); |
| - |
| - // A second call shouldn't make a new processor. |
| - service()->clear_on_processor_set_called(); |
| - service()->CreateChangeProcessor(); |
| - EXPECT_EQ(processor, service()->change_processor()); |
| - EXPECT_FALSE(service()->on_processor_set_called()); |
| -} |
| - |
| // OnSyncStarting should create a processor and call OnSyncStarting on it. |
| TEST_F(ModelTypeServiceTest, OnSyncStarting) { |
| - EXPECT_FALSE(service()->change_processor()); |
| + EXPECT_FALSE(start_callback_called()); |
| OnSyncStarting(); |
| - EXPECT_TRUE(service()->change_processor()); |
| + |
| // FakeModelTypeProcessor is the one that calls the callback, so if it was |
| // called then we know the call on the processor was made. |
| EXPECT_TRUE(start_callback_called()); |
| @@ -117,13 +113,20 @@ TEST_F(ModelTypeServiceTest, OnSyncStarting) { |
| // DisableSync should call DisableSync on the processor and then delete it. |
| TEST_F(ModelTypeServiceTest, DisableSync) { |
| - service()->CreateChangeProcessor(); |
| - EXPECT_TRUE(service()->change_processor()); |
| EXPECT_FALSE(service()->processor_disable_sync_called()); |
| - |
| service()->DisableSync(); |
| - EXPECT_FALSE(service()->change_processor()); |
| + |
| + // Disabling also wipes out metadata, and the service should have told the new |
| + // processor about this. |
| EXPECT_TRUE(service()->processor_disable_sync_called()); |
|
maxbogue
2016/10/12 23:40:35
I'd move this line right under 117.
skym
2016/10/13 19:21:38
Why? I like this formatting because it's broken in
maxbogue
2016/10/13 20:11:04
My suggestion was for symmetry and because the com
skym
2016/10/13 20:36:27
Good point, added a space after the EXPECT_TRUE so
|
| + EXPECT_FALSE( |
| + service()->change_processor()->on_metadata_loaded_error().IsSet()); |
| + MetadataBatch* batch = |
| + service()->change_processor()->on_metadata_loaded_batch(); |
| + EXPECT_NE(nullptr, batch); |
| + EXPECT_EQ(sync_pb::ModelTypeState().SerializeAsString(), |
| + batch->GetModelTypeState().SerializeAsString()); |
| + EXPECT_EQ(0U, batch->TakeAllMetadata().size()); |
| } |
| // ResolveConflicts should return USE_REMOTE unless the remote data is deleted. |