| Index: sync/internal_api/shared_model_type_processor_unittest.cc
|
| diff --git a/sync/engine/model_type_processor_impl_unittest.cc b/sync/internal_api/shared_model_type_processor_unittest.cc
|
| similarity index 85%
|
| rename from sync/engine/model_type_processor_impl_unittest.cc
|
| rename to sync/internal_api/shared_model_type_processor_unittest.cc
|
| index 31fd29f3fe7fff6ea06703e3883801770ead71e2..34daa6f05956dad913adf7d5a602b6365e708f6f 100644
|
| --- a/sync/engine/model_type_processor_impl_unittest.cc
|
| +++ b/sync/internal_api/shared_model_type_processor_unittest.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "sync/engine/model_type_processor_impl.h"
|
| +#include "sync/internal_api/public/shared_model_type_processor.h"
|
|
|
| #include "base/bind.h"
|
| #include "base/message_loop/message_loop.h"
|
| @@ -19,9 +19,9 @@ namespace syncer_v2 {
|
|
|
| static const syncer::ModelType kModelType = syncer::PREFERENCES;
|
|
|
| -// Tests the sync engine parts of ModelTypeProcessorImpl.
|
| +// Tests the sync engine parts of SharedModelTypeProcessor.
|
| //
|
| -// The ModelTypeProcessorImpl contains a non-trivial amount of code dedicated
|
| +// The SharedModelTypeProcessor contains a non-trivial amount of code dedicated
|
| // to turning the sync engine on and off again. That code is fairly well
|
| // tested in the NonBlockingDataTypeController unit tests and it doesn't need
|
| // to be re-tested here.
|
| @@ -40,22 +40,22 @@ static const syncer::ModelType kModelType = syncer::PREFERENCES;
|
| // - Writes to permanent storage. (TODO)
|
| // - Callbacks into the model. (TODO)
|
| // - Requests to the sync thread. Tested with MockCommitQueue.
|
| -class ModelTypeProcessorImplTest : public ::testing::Test {
|
| +class SharedModelTypeProcessorTest : public ::testing::Test {
|
| public:
|
| - ModelTypeProcessorImplTest();
|
| - ~ModelTypeProcessorImplTest() override;
|
| + SharedModelTypeProcessorTest();
|
| + ~SharedModelTypeProcessorTest() override;
|
|
|
| // Initialize to a "ready-to-commit" state.
|
| void InitializeToReadyState();
|
|
|
| - // Start our ModelTypeProcessorImpl, which will be unable to commit until it
|
| + // Start our SharedModelTypeProcessor, which will be unable to commit until it
|
| // receives notification that initial sync has completed.
|
| void Start();
|
|
|
| - // Stop and disconnect the CommitQueue from our ModelTypeProcessorImpl.
|
| + // Stop and disconnect the CommitQueue from our SharedModelTypeProcessor.
|
| void Stop();
|
|
|
| - // Disable sync for this ModelTypeProcessorImpl. Should cause sync state to
|
| + // Disable sync for this SharedModelTypeProcessor. Should cause sync state to
|
| // be discarded.
|
| void Disable();
|
|
|
| @@ -131,24 +131,23 @@ class ModelTypeProcessorImplTest : public ::testing::Test {
|
| // |type_processor_|.
|
| MockCommitQueue* mock_queue_;
|
| scoped_ptr<MockCommitQueue> mock_queue_ptr_;
|
| - scoped_ptr<ModelTypeProcessorImpl> type_processor_;
|
| + scoped_ptr<SharedModelTypeProcessor> type_processor_;
|
|
|
| DataTypeState data_type_state_;
|
| // This sets ThreadTaskRunnerHandle on the current thread.
|
| base::MessageLoop message_loop_;
|
| };
|
|
|
| -ModelTypeProcessorImplTest::ModelTypeProcessorImplTest()
|
| +SharedModelTypeProcessorTest::SharedModelTypeProcessorTest()
|
| : mock_queue_(new MockCommitQueue()),
|
| mock_queue_ptr_(mock_queue_),
|
| type_processor_(
|
| - new ModelTypeProcessorImpl(kModelType,
|
| - base::WeakPtr<ModelTypeStore>())) {}
|
| + new SharedModelTypeProcessor(kModelType,
|
| + base::WeakPtr<ModelTypeStore>())) {}
|
|
|
| -ModelTypeProcessorImplTest::~ModelTypeProcessorImplTest() {
|
| -}
|
| +SharedModelTypeProcessorTest::~SharedModelTypeProcessorTest() {}
|
|
|
| -void ModelTypeProcessorImplTest::InitializeToReadyState() {
|
| +void SharedModelTypeProcessorTest::InitializeToReadyState() {
|
| // TODO(rlarocque): This should be updated to inject on-disk state.
|
| // At the time this code was written, there was no support for on-disk
|
| // state so this was the only way to inject a data_type_state into
|
| @@ -157,24 +156,24 @@ void ModelTypeProcessorImplTest::InitializeToReadyState() {
|
| OnInitialSyncDone();
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::Start() {
|
| - type_processor_->Start(base::Bind(&ModelTypeProcessorImplTest::StartDone,
|
| +void SharedModelTypeProcessorTest::Start() {
|
| + type_processor_->Start(base::Bind(&SharedModelTypeProcessorTest::StartDone,
|
| base::Unretained(this)));
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::Stop() {
|
| +void SharedModelTypeProcessorTest::Stop() {
|
| type_processor_->Stop();
|
| mock_queue_ = NULL;
|
| mock_queue_ptr_.reset();
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::Disable() {
|
| +void SharedModelTypeProcessorTest::Disable() {
|
| type_processor_->Disable();
|
| mock_queue_ = NULL;
|
| mock_queue_ptr_.reset();
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::Restart() {
|
| +void SharedModelTypeProcessorTest::Restart() {
|
| DCHECK(!type_processor_->IsConnected());
|
|
|
| // Prepare a new MockCommitQueue instance, just as we would
|
| @@ -185,7 +184,7 @@ void ModelTypeProcessorImplTest::Restart() {
|
| Start();
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::StartDone(
|
| +void SharedModelTypeProcessorTest::StartDone(
|
| /*syncer::SyncError,*/ scoped_ptr<ActivationContext> context) {
|
| // Hand off ownership of |mock_queue_ptr_|, while keeping
|
| // an unsafe pointer to it. This is why we can only connect once.
|
| @@ -193,17 +192,17 @@ void ModelTypeProcessorImplTest::StartDone(
|
| context->type_processor->OnConnect(mock_queue_ptr_.Pass());
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::WriteItem(const std::string& tag,
|
| - const std::string& value) {
|
| +void SharedModelTypeProcessorTest::WriteItem(const std::string& tag,
|
| + const std::string& value) {
|
| const std::string tag_hash = GenerateTagHash(tag);
|
| type_processor_->Put(tag, GenerateSpecifics(tag, value));
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::DeleteItem(const std::string& tag) {
|
| +void SharedModelTypeProcessorTest::DeleteItem(const std::string& tag) {
|
| type_processor_->Delete(tag);
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::OnInitialSyncDone() {
|
| +void SharedModelTypeProcessorTest::OnInitialSyncDone() {
|
| data_type_state_.initial_sync_done = true;
|
| UpdateResponseDataList empty_update_list;
|
|
|
| @@ -211,9 +210,9 @@ void ModelTypeProcessorImplTest::OnInitialSyncDone() {
|
| empty_update_list);
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::UpdateFromServer(int64 version_offset,
|
| - const std::string& tag,
|
| - const std::string& value) {
|
| +void SharedModelTypeProcessorTest::UpdateFromServer(int64 version_offset,
|
| + const std::string& tag,
|
| + const std::string& value) {
|
| const std::string tag_hash = GenerateTagHash(tag);
|
| UpdateResponseData data = mock_queue_->UpdateFromServer(
|
| version_offset, tag_hash, GenerateSpecifics(tag, value));
|
| @@ -224,7 +223,7 @@ void ModelTypeProcessorImplTest::UpdateFromServer(int64 version_offset,
|
| UpdateResponseDataList());
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::PendingUpdateFromServer(
|
| +void SharedModelTypeProcessorTest::PendingUpdateFromServer(
|
| int64 version_offset,
|
| const std::string& tag,
|
| const std::string& value,
|
| @@ -240,8 +239,8 @@ void ModelTypeProcessorImplTest::PendingUpdateFromServer(
|
| list);
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::TombstoneFromServer(int64 version_offset,
|
| - const std::string& tag) {
|
| +void SharedModelTypeProcessorTest::TombstoneFromServer(int64 version_offset,
|
| + const std::string& tag) {
|
| // Overwrite the existing server version if this is the new highest version.
|
| std::string tag_hash = GenerateTagHash(tag);
|
|
|
| @@ -254,7 +253,7 @@ void ModelTypeProcessorImplTest::TombstoneFromServer(int64 version_offset,
|
| UpdateResponseDataList());
|
| }
|
|
|
| -bool ModelTypeProcessorImplTest::HasPendingUpdate(
|
| +bool SharedModelTypeProcessorTest::HasPendingUpdate(
|
| const std::string& tag) const {
|
| const std::string client_tag_hash = GenerateTagHash(tag);
|
| const UpdateResponseDataList list = type_processor_->GetPendingUpdates();
|
| @@ -266,7 +265,7 @@ bool ModelTypeProcessorImplTest::HasPendingUpdate(
|
| return false;
|
| }
|
|
|
| -UpdateResponseData ModelTypeProcessorImplTest::GetPendingUpdate(
|
| +UpdateResponseData SharedModelTypeProcessorTest::GetPendingUpdate(
|
| const std::string& tag) const {
|
| DCHECK(HasPendingUpdate(tag));
|
| const std::string client_tag_hash = GenerateTagHash(tag);
|
| @@ -280,35 +279,35 @@ UpdateResponseData ModelTypeProcessorImplTest::GetPendingUpdate(
|
| return UpdateResponseData();
|
| }
|
|
|
| -size_t ModelTypeProcessorImplTest::GetNumPendingUpdates() const {
|
| +size_t SharedModelTypeProcessorTest::GetNumPendingUpdates() const {
|
| return type_processor_->GetPendingUpdates().size();
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::SuccessfulCommitResponse(
|
| +void SharedModelTypeProcessorTest::SuccessfulCommitResponse(
|
| const CommitRequestData& request_data) {
|
| CommitResponseDataList list;
|
| list.push_back(mock_queue_->SuccessfulCommitResponse(request_data));
|
| type_processor_->OnCommitCompleted(data_type_state_, list);
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::UpdateDesiredEncryptionKey(
|
| +void SharedModelTypeProcessorTest::UpdateDesiredEncryptionKey(
|
| const std::string& key_name) {
|
| data_type_state_.encryption_key_name = key_name;
|
| type_processor_->OnUpdateReceived(data_type_state_, UpdateResponseDataList(),
|
| UpdateResponseDataList());
|
| }
|
|
|
| -void ModelTypeProcessorImplTest::SetServerEncryptionKey(
|
| +void SharedModelTypeProcessorTest::SetServerEncryptionKey(
|
| const std::string& key_name) {
|
| mock_queue_->SetServerEncryptionKey(key_name);
|
| }
|
|
|
| -std::string ModelTypeProcessorImplTest::GenerateTagHash(
|
| +std::string SharedModelTypeProcessorTest::GenerateTagHash(
|
| const std::string& tag) {
|
| return syncer::syncable::GenerateSyncableHash(kModelType, tag);
|
| }
|
|
|
| -sync_pb::EntitySpecifics ModelTypeProcessorImplTest::GenerateSpecifics(
|
| +sync_pb::EntitySpecifics SharedModelTypeProcessorTest::GenerateSpecifics(
|
| const std::string& tag,
|
| const std::string& value) {
|
| sync_pb::EntitySpecifics specifics;
|
| @@ -319,7 +318,8 @@ sync_pb::EntitySpecifics ModelTypeProcessorImplTest::GenerateSpecifics(
|
|
|
| // These tests never decrypt anything, so we can get away with faking the
|
| // encryption for now.
|
| -sync_pb::EntitySpecifics ModelTypeProcessorImplTest::GenerateEncryptedSpecifics(
|
| +sync_pb::EntitySpecifics
|
| +SharedModelTypeProcessorTest::GenerateEncryptedSpecifics(
|
| const std::string& tag,
|
| const std::string& value,
|
| const std::string& key_name) {
|
| @@ -330,22 +330,22 @@ sync_pb::EntitySpecifics ModelTypeProcessorImplTest::GenerateEncryptedSpecifics(
|
| return specifics;
|
| }
|
|
|
| -size_t ModelTypeProcessorImplTest::GetNumCommitRequestLists() {
|
| +size_t SharedModelTypeProcessorTest::GetNumCommitRequestLists() {
|
| return mock_queue_->GetNumCommitRequestLists();
|
| }
|
|
|
| -CommitRequestDataList ModelTypeProcessorImplTest::GetNthCommitRequestList(
|
| +CommitRequestDataList SharedModelTypeProcessorTest::GetNthCommitRequestList(
|
| size_t n) {
|
| return mock_queue_->GetNthCommitRequestList(n);
|
| }
|
|
|
| -bool ModelTypeProcessorImplTest::HasCommitRequestForTag(
|
| +bool SharedModelTypeProcessorTest::HasCommitRequestForTag(
|
| const std::string& tag) {
|
| const std::string tag_hash = GenerateTagHash(tag);
|
| return mock_queue_->HasCommitRequestForTagHash(tag_hash);
|
| }
|
|
|
| -CommitRequestData ModelTypeProcessorImplTest::GetLatestCommitRequestForTag(
|
| +CommitRequestData SharedModelTypeProcessorTest::GetLatestCommitRequestForTag(
|
| const std::string& tag) {
|
| const std::string tag_hash = GenerateTagHash(tag);
|
| return mock_queue_->GetLatestCommitRequestForTagHash(tag_hash);
|
| @@ -353,7 +353,7 @@ CommitRequestData ModelTypeProcessorImplTest::GetLatestCommitRequestForTag(
|
|
|
| // Creates a new item locally.
|
| // Thoroughly tests the data generated by a local item creation.
|
| -TEST_F(ModelTypeProcessorImplTest, CreateLocalItem) {
|
| +TEST_F(SharedModelTypeProcessorTest, CreateLocalItem) {
|
| InitializeToReadyState();
|
| EXPECT_EQ(0U, GetNumCommitRequestLists());
|
|
|
| @@ -376,7 +376,7 @@ TEST_F(ModelTypeProcessorImplTest, CreateLocalItem) {
|
|
|
| // Creates a new local item then modifies it.
|
| // Thoroughly tests data generated by modification of server-unknown item.
|
| -TEST_F(ModelTypeProcessorImplTest, CreateAndModifyLocalItem) {
|
| +TEST_F(SharedModelTypeProcessorTest, CreateAndModifyLocalItem) {
|
| InitializeToReadyState();
|
| EXPECT_EQ(0U, GetNumCommitRequestLists());
|
|
|
| @@ -408,7 +408,7 @@ TEST_F(ModelTypeProcessorImplTest, CreateAndModifyLocalItem) {
|
|
|
| // Deletes an item we've never seen before.
|
| // Should have no effect and not crash.
|
| -TEST_F(ModelTypeProcessorImplTest, DeleteUnknown) {
|
| +TEST_F(SharedModelTypeProcessorTest, DeleteUnknown) {
|
| InitializeToReadyState();
|
|
|
| DeleteItem("tag1");
|
| @@ -420,7 +420,7 @@ TEST_F(ModelTypeProcessorImplTest, DeleteUnknown) {
|
| // In this test, no commit responses are received, so the deleted item is
|
| // server-unknown as far as the model thread is concerned. That behavior
|
| // is race-dependent; other tests are used to test other races.
|
| -TEST_F(ModelTypeProcessorImplTest, DeleteServerUnknown) {
|
| +TEST_F(SharedModelTypeProcessorTest, DeleteServerUnknown) {
|
| InitializeToReadyState();
|
|
|
| WriteItem("tag1", "value1");
|
| @@ -445,7 +445,7 @@ TEST_F(ModelTypeProcessorImplTest, DeleteServerUnknown) {
|
| // The item is created locally then enqueued for commit. The sync thread
|
| // successfully commits it, but, before the commit response is picked up
|
| // by the model thread, the item is deleted by the model thread.
|
| -TEST_F(ModelTypeProcessorImplTest, DeleteServerUnknown_RacyCommitResponse) {
|
| +TEST_F(SharedModelTypeProcessorTest, DeleteServerUnknown_RacyCommitResponse) {
|
| InitializeToReadyState();
|
|
|
| WriteItem("tag1", "value1");
|
| @@ -469,7 +469,7 @@ TEST_F(ModelTypeProcessorImplTest, DeleteServerUnknown_RacyCommitResponse) {
|
|
|
| // Creates two different sync items.
|
| // Verifies that the second has no effect on the first.
|
| -TEST_F(ModelTypeProcessorImplTest, TwoIndependentItems) {
|
| +TEST_F(SharedModelTypeProcessorTest, TwoIndependentItems) {
|
| InitializeToReadyState();
|
| EXPECT_EQ(0U, GetNumCommitRequestLists());
|
|
|
| @@ -491,7 +491,7 @@ TEST_F(ModelTypeProcessorImplTest, TwoIndependentItems) {
|
| // Starts the type sync proxy with no local state.
|
| // Verify that it waits until initial sync is complete before requesting
|
| // commits.
|
| -TEST_F(ModelTypeProcessorImplTest, NoCommitsUntilInitialSyncDone) {
|
| +TEST_F(SharedModelTypeProcessorTest, NoCommitsUntilInitialSyncDone) {
|
| Start();
|
|
|
| WriteItem("tag1", "value1");
|
| @@ -506,7 +506,7 @@ TEST_F(ModelTypeProcessorImplTest, NoCommitsUntilInitialSyncDone) {
|
| //
|
| // Creates items in various states of commit and verifies they re-attempt to
|
| // commit on reconnect.
|
| -TEST_F(ModelTypeProcessorImplTest, Stop) {
|
| +TEST_F(SharedModelTypeProcessorTest, Stop) {
|
| InitializeToReadyState();
|
|
|
| // The first item is fully committed.
|
| @@ -542,7 +542,7 @@ TEST_F(ModelTypeProcessorImplTest, Stop) {
|
| //
|
| // Creates items in various states of commit and verifies they re-attempt to
|
| // commit on re-enable.
|
| -TEST_F(ModelTypeProcessorImplTest, Disable) {
|
| +TEST_F(SharedModelTypeProcessorTest, Disable) {
|
| InitializeToReadyState();
|
|
|
| // The first item is fully committed.
|
| @@ -577,7 +577,7 @@ TEST_F(ModelTypeProcessorImplTest, Disable) {
|
| }
|
|
|
| // Test receipt of pending updates.
|
| -TEST_F(ModelTypeProcessorImplTest, ReceivePendingUpdates) {
|
| +TEST_F(SharedModelTypeProcessorTest, ReceivePendingUpdates) {
|
| InitializeToReadyState();
|
|
|
| EXPECT_FALSE(HasPendingUpdate("tag1"));
|
| @@ -608,7 +608,7 @@ TEST_F(ModelTypeProcessorImplTest, ReceivePendingUpdates) {
|
| }
|
|
|
| // Test that Disable clears pending update state.
|
| -TEST_F(ModelTypeProcessorImplTest, DisableWithPendingUpdates) {
|
| +TEST_F(SharedModelTypeProcessorTest, DisableWithPendingUpdates) {
|
| InitializeToReadyState();
|
|
|
| PendingUpdateFromServer(5, "tag1", "value1", "key1");
|
| @@ -623,7 +623,7 @@ TEST_F(ModelTypeProcessorImplTest, DisableWithPendingUpdates) {
|
| }
|
|
|
| // Test that Stop does not clear pending update state.
|
| -TEST_F(ModelTypeProcessorImplTest, StopWithPendingUpdates) {
|
| +TEST_F(SharedModelTypeProcessorTest, StopWithPendingUpdates) {
|
| InitializeToReadyState();
|
|
|
| PendingUpdateFromServer(5, "tag1", "value1", "key1");
|
| @@ -638,7 +638,7 @@ TEST_F(ModelTypeProcessorImplTest, StopWithPendingUpdates) {
|
| }
|
|
|
| // Test re-encrypt everything when desired encryption key changes.
|
| -TEST_F(ModelTypeProcessorImplTest, ReEncryptCommitsWithNewKey) {
|
| +TEST_F(SharedModelTypeProcessorTest, ReEncryptCommitsWithNewKey) {
|
| InitializeToReadyState();
|
|
|
| // Commit an item.
|
| @@ -670,7 +670,7 @@ TEST_F(ModelTypeProcessorImplTest, ReEncryptCommitsWithNewKey) {
|
| }
|
|
|
| // Test receipt of updates with new and old keys.
|
| -TEST_F(ModelTypeProcessorImplTest, ReEncryptUpdatesWithNewKey) {
|
| +TEST_F(SharedModelTypeProcessorTest, ReEncryptUpdatesWithNewKey) {
|
| InitializeToReadyState();
|
|
|
| // Receive an unencrpted update.
|
|
|