diff options
Diffstat (limited to 'sync/engine/model_type_sync_worker_impl_unittest.cc')
-rw-r--r-- | sync/engine/model_type_sync_worker_impl_unittest.cc | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/sync/engine/model_type_sync_worker_impl_unittest.cc b/sync/engine/model_type_sync_worker_impl_unittest.cc index 09b47ad..3aaaf3a 100644 --- a/sync/engine/model_type_sync_worker_impl_unittest.cc +++ b/sync/engine/model_type_sync_worker_impl_unittest.cc @@ -12,6 +12,7 @@ #include "sync/sessions/status_controller.h" #include "sync/syncable/syncable_util.h" #include "sync/test/engine/mock_model_type_sync_proxy.h" +#include "sync/test/engine/mock_nudge_handler.h" #include "sync/test/engine/single_type_mock_server.h" #include "testing/gtest/include/gtest/gtest.h" @@ -132,6 +133,12 @@ class ModelTypeSyncWorkerImplTest : public ::testing::Test { CommitResponseData GetCommitResponseOnModelThread( const std::string& tag) const; + // Returns the number of commit nudges sent to the mock nudge handler. + int GetNumCommitNudges() const; + + // Returns the number of initial sync nudges sent to the mock nudge handler. + int GetNumInitialDownloadNudges() const; + // Helpers for building various messages and structures. static std::string GenerateTagHash(const std::string& tag); static sync_pb::EntitySpecifics GenerateSpecifics(const std::string& tag, @@ -149,6 +156,10 @@ class ModelTypeSyncWorkerImplTest : public ::testing::Test { // a single UpdateHandler and CommitContributor pair. In this test // harness, the |worker_| is both of them. SingleTypeMockServer mock_server_; + + // A mock to track the number of times the ModelTypeSyncWorker requests to + // sync. + MockNudgeHandler mock_nudge_handler_; }; ModelTypeSyncWorkerImplTest::ModelTypeSyncWorkerImplTest() @@ -178,6 +189,8 @@ void ModelTypeSyncWorkerImplTest::NormalInitialize() { initial_state.initial_sync_done = true; InitializeWithState(initial_state); + + mock_nudge_handler_.ClearCounters(); } void ModelTypeSyncWorkerImplTest::InitializeWithState( @@ -188,7 +201,8 @@ void ModelTypeSyncWorkerImplTest::InitializeWithState( mock_type_sync_proxy_ = new MockModelTypeSyncProxy(); scoped_ptr<ModelTypeSyncProxy> proxy(mock_type_sync_proxy_); - worker_.reset(new ModelTypeSyncWorkerImpl(kModelType, state, proxy.Pass())); + worker_.reset(new ModelTypeSyncWorkerImpl( + kModelType, state, &mock_nudge_handler_, proxy.Pass())); } void ModelTypeSyncWorkerImplTest::CommitRequest(const std::string& name, @@ -379,6 +393,14 @@ CommitResponseData ModelTypeSyncWorkerImplTest::GetCommitResponseOnModelThread( return mock_type_sync_proxy_->GetCommitResponse(tag_hash); } +int ModelTypeSyncWorkerImplTest::GetNumCommitNudges() const { + return mock_nudge_handler_.GetNumCommitNudges(); +} + +int ModelTypeSyncWorkerImplTest::GetNumInitialDownloadNudges() const { + return mock_nudge_handler_.GetNumInitialDownloadNudges(); +} + std::string ModelTypeSyncWorkerImplTest::GenerateTagHash( const std::string& tag) { const std::string& client_tag_hash = @@ -412,6 +434,8 @@ TEST_F(ModelTypeSyncWorkerImplTest, SimpleCommit) { CommitRequest("tag1", "value1"); + EXPECT_EQ(1, GetNumCommitNudges()); + ASSERT_TRUE(WillCommit()); DoSuccessfulCommit(); @@ -454,6 +478,7 @@ TEST_F(ModelTypeSyncWorkerImplTest, SimpleDelete) { // We can't delete an entity that was never committed. // Step 1 is to create and commit a new entity. CommitRequest("tag1", "value1"); + EXPECT_EQ(1, GetNumCommitNudges()); ASSERT_TRUE(WillCommit()); DoSuccessfulCommit(); @@ -502,16 +527,19 @@ TEST_F(ModelTypeSyncWorkerImplTest, NoDeleteUncommitted) { // Request the commit of a new, never-before-seen item. CommitRequest("tag1", "value1"); EXPECT_TRUE(WillCommit()); + EXPECT_EQ(1, GetNumCommitNudges()); // Request a deletion of that item before we've had a chance to commit it. DeleteRequest("tag1"); EXPECT_FALSE(WillCommit()); + EXPECT_EQ(2, GetNumCommitNudges()); } // Verifies the sending of an "initial sync done" signal. TEST_F(ModelTypeSyncWorkerImplTest, SendInitialSyncDone) { FirstInitialize(); // Initialize with no saved sync state. EXPECT_EQ(0U, GetNumModelThreadUpdateResponses()); + EXPECT_EQ(1, GetNumInitialDownloadNudges()); // Receive an update response that contains only the type root node. TriggerTypeRootUpdateFromServer(); @@ -538,6 +566,7 @@ TEST_F(ModelTypeSyncWorkerImplTest, TwoNewItemsCommittedSeparately) { // Commit the first of two entities. CommitRequest("tag1", "value1"); + EXPECT_EQ(1, GetNumCommitNudges()); ASSERT_TRUE(WillCommit()); DoSuccessfulCommit(); ASSERT_EQ(1U, GetNumCommitMessagesOnServer()); @@ -548,6 +577,7 @@ TEST_F(ModelTypeSyncWorkerImplTest, TwoNewItemsCommittedSeparately) { // Commit the second of two entities. CommitRequest("tag2", "value2"); + EXPECT_EQ(2, GetNumCommitNudges()); ASSERT_TRUE(WillCommit()); DoSuccessfulCommit(); ASSERT_EQ(2U, GetNumCommitMessagesOnServer()); |