Index: sync/engine/model_type_sync_worker_impl_unittest.cc |
diff --git a/sync/engine/model_type_sync_worker_impl_unittest.cc b/sync/engine/model_type_sync_worker_impl_unittest.cc |
index 09b47ad43bf94c43171156e92b775ee827485cb4..3aaaf3abb0851bf445092a4905ce5f092901b3b7 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()); |