| Index: sync/engine/get_updates_processor_unittest.cc
|
| diff --git a/sync/engine/get_updates_processor_unittest.cc b/sync/engine/get_updates_processor_unittest.cc
|
| deleted file mode 100644
|
| index 56239283afbbffd6459c2c53cca9c223ad2e6478..0000000000000000000000000000000000000000
|
| --- a/sync/engine/get_updates_processor_unittest.cc
|
| +++ /dev/null
|
| @@ -1,517 +0,0 @@
|
| -// Copyright 2014 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/engine/get_updates_processor.h"
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/stl_util.h"
|
| -#include "sync/engine/get_updates_delegate.h"
|
| -#include "sync/engine/update_handler.h"
|
| -#include "sync/internal_api/public/base/model_type_test_util.h"
|
| -#include "sync/protocol/sync.pb.h"
|
| -#include "sync/sessions/debug_info_getter.h"
|
| -#include "sync/sessions/nudge_tracker.h"
|
| -#include "sync/sessions/status_controller.h"
|
| -#include "sync/test/engine/fake_model_worker.h"
|
| -#include "sync/test/engine/mock_update_handler.h"
|
| -#include "sync/test/mock_invalidation.h"
|
| -#include "sync/test/sessions/mock_debug_info_getter.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace syncer {
|
| -
|
| -namespace {
|
| -
|
| -std::unique_ptr<InvalidationInterface> BuildInvalidation(
|
| - int64_t version,
|
| - const std::string& payload) {
|
| - return MockInvalidation::Build(version, payload);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -using sessions::MockDebugInfoGetter;
|
| -
|
| -// A test fixture for tests exercising download updates functions.
|
| -class GetUpdatesProcessorTest : public ::testing::Test {
|
| - protected:
|
| - GetUpdatesProcessorTest() :
|
| - kTestStartTime(base::TimeTicks::Now()),
|
| - update_handler_deleter_(&update_handler_map_) {}
|
| -
|
| - void SetUp() override {
|
| - AddUpdateHandler(AUTOFILL);
|
| - AddUpdateHandler(BOOKMARKS);
|
| - AddUpdateHandler(PREFERENCES);
|
| - }
|
| -
|
| - ModelTypeSet enabled_types() {
|
| - return enabled_types_;
|
| - }
|
| -
|
| - std::unique_ptr<GetUpdatesProcessor> BuildGetUpdatesProcessor(
|
| - const GetUpdatesDelegate& delegate) {
|
| - return std::unique_ptr<GetUpdatesProcessor>(
|
| - new GetUpdatesProcessor(&update_handler_map_, delegate));
|
| - }
|
| -
|
| - void InitFakeUpdateResponse(sync_pb::GetUpdatesResponse* response) {
|
| - ModelTypeSet types = enabled_types();
|
| -
|
| - for (ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) {
|
| - sync_pb::DataTypeProgressMarker* marker =
|
| - response->add_new_progress_marker();
|
| - marker->set_data_type_id(GetSpecificsFieldNumberFromModelType(it.Get()));
|
| - marker->set_token("foobarbaz");
|
| - sync_pb::DataTypeContext* context = response->add_context_mutations();
|
| - context->set_data_type_id(GetSpecificsFieldNumberFromModelType(it.Get()));
|
| - context->set_version(1);
|
| - context->set_context("context");
|
| - }
|
| -
|
| - response->set_changes_remaining(0);
|
| - }
|
| -
|
| - const base::TimeTicks kTestStartTime;
|
| -
|
| - protected:
|
| - MockUpdateHandler* AddUpdateHandler(ModelType type) {
|
| - enabled_types_.Put(type);
|
| -
|
| - MockUpdateHandler* handler = new MockUpdateHandler(type);
|
| - update_handler_map_.insert(std::make_pair(type, handler));
|
| -
|
| - return handler;
|
| - }
|
| -
|
| - private:
|
| - ModelTypeSet enabled_types_;
|
| - UpdateHandlerMap update_handler_map_;
|
| - STLValueDeleter<UpdateHandlerMap> update_handler_deleter_;
|
| - std::unique_ptr<GetUpdatesProcessor> get_updates_processor_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(GetUpdatesProcessorTest);
|
| -};
|
| -
|
| -// Basic test to make sure nudges are expressed properly in the request.
|
| -TEST_F(GetUpdatesProcessorTest, BookmarkNudge) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| - nudge_tracker.RecordLocalChange(ModelTypeSet(BOOKMARKS));
|
| -
|
| - sync_pb::ClientToServerMessage message;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::LOCAL,
|
| - gu_msg.caller_info().source());
|
| - EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin());
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| -
|
| - const sync_pb::DataTypeProgressMarker& progress_marker =
|
| - gu_msg.from_progress_marker(i);
|
| - const sync_pb::GetUpdateTriggers& gu_trigger =
|
| - progress_marker.get_update_triggers();
|
| -
|
| - // We perform some basic tests of GU trigger and source fields here. The
|
| - // more complicated scenarios are tested by the NudgeTracker tests.
|
| - if (type == BOOKMARKS) {
|
| - EXPECT_TRUE(progress_marker.has_notification_hint());
|
| - EXPECT_EQ("", progress_marker.notification_hint());
|
| - EXPECT_EQ(1, gu_trigger.local_modification_nudges());
|
| - EXPECT_EQ(0, gu_trigger.datatype_refresh_nudges());
|
| - } else {
|
| - EXPECT_FALSE(progress_marker.has_notification_hint());
|
| - EXPECT_EQ(0, gu_trigger.local_modification_nudges());
|
| - EXPECT_EQ(0, gu_trigger.datatype_refresh_nudges());
|
| - }
|
| - }
|
| -}
|
| -
|
| -// Basic test to ensure invalidation payloads are expressed in the request.
|
| -TEST_F(GetUpdatesProcessorTest, NotifyMany) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| - nudge_tracker.RecordRemoteInvalidation(
|
| - AUTOFILL, BuildInvalidation(1, "autofill_payload"));
|
| - nudge_tracker.RecordRemoteInvalidation(
|
| - BOOKMARKS, BuildInvalidation(1, "bookmark_payload"));
|
| - nudge_tracker.RecordRemoteInvalidation(
|
| - PREFERENCES, BuildInvalidation(1, "preferences_payload"));
|
| - ModelTypeSet notified_types;
|
| - notified_types.Put(AUTOFILL);
|
| - notified_types.Put(BOOKMARKS);
|
| - notified_types.Put(PREFERENCES);
|
| -
|
| - sync_pb::ClientToServerMessage message;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
|
| - gu_msg.caller_info().source());
|
| - EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin());
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| -
|
| - const sync_pb::DataTypeProgressMarker& progress_marker =
|
| - gu_msg.from_progress_marker(i);
|
| - const sync_pb::GetUpdateTriggers& gu_trigger =
|
| - progress_marker.get_update_triggers();
|
| -
|
| - // We perform some basic tests of GU trigger and source fields here. The
|
| - // more complicated scenarios are tested by the NudgeTracker tests.
|
| - if (notified_types.Has(type)) {
|
| - EXPECT_TRUE(progress_marker.has_notification_hint());
|
| - EXPECT_FALSE(progress_marker.notification_hint().empty());
|
| - EXPECT_EQ(1, gu_trigger.notification_hint_size());
|
| - } else {
|
| - EXPECT_FALSE(progress_marker.has_notification_hint());
|
| - EXPECT_EQ(0, gu_trigger.notification_hint_size());
|
| - }
|
| - }
|
| -}
|
| -
|
| -// Basic test to ensure initial sync requests are expressed in the request.
|
| -TEST_F(GetUpdatesProcessorTest, InitialSyncRequest) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| - nudge_tracker.RecordInitialSyncRequired(AUTOFILL);
|
| - nudge_tracker.RecordInitialSyncRequired(PREFERENCES);
|
| -
|
| - ModelTypeSet initial_sync_types = ModelTypeSet(AUTOFILL, PREFERENCES);
|
| -
|
| - sync_pb::ClientToServerMessage message;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
|
| - gu_msg.caller_info().source());
|
| - EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin());
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| -
|
| - const sync_pb::DataTypeProgressMarker& progress_marker =
|
| - gu_msg.from_progress_marker(i);
|
| - const sync_pb::GetUpdateTriggers& gu_trigger =
|
| - progress_marker.get_update_triggers();
|
| -
|
| - // We perform some basic tests of GU trigger and source fields here. The
|
| - // more complicated scenarios are tested by the NudgeTracker tests.
|
| - if (initial_sync_types.Has(type)) {
|
| - EXPECT_TRUE(gu_trigger.initial_sync_in_progress());
|
| - } else {
|
| - EXPECT_TRUE(gu_trigger.has_initial_sync_in_progress());
|
| - EXPECT_FALSE(gu_trigger.initial_sync_in_progress());
|
| - }
|
| - }
|
| -}
|
| -
|
| -TEST_F(GetUpdatesProcessorTest, ConfigureTest) {
|
| - sync_pb::ClientToServerMessage message;
|
| - ConfigureGetUpdatesDelegate configure_delegate(
|
| - sync_pb::GetUpdatesCallerInfo::RECONFIGURATION);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(configure_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::SyncEnums::RECONFIGURATION, gu_msg.get_updates_origin());
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RECONFIGURATION,
|
| - gu_msg.caller_info().source());
|
| -
|
| - ModelTypeSet progress_types;
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| - progress_types.Put(type);
|
| - }
|
| - EXPECT_EQ(enabled_types(), progress_types);
|
| -}
|
| -
|
| -TEST_F(GetUpdatesProcessorTest, PollTest) {
|
| - sync_pb::ClientToServerMessage message;
|
| - PollGetUpdatesDelegate poll_delegate;
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(poll_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::SyncEnums::PERIODIC, gu_msg.get_updates_origin());
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::PERIODIC,
|
| - gu_msg.caller_info().source());
|
| -
|
| - ModelTypeSet progress_types;
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| - progress_types.Put(type);
|
| - }
|
| - EXPECT_EQ(enabled_types(), progress_types);
|
| -}
|
| -
|
| -TEST_F(GetUpdatesProcessorTest, RetryTest) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| -
|
| - // Schedule a retry.
|
| - base::TimeTicks t1 = kTestStartTime;
|
| - nudge_tracker.SetNextRetryTime(t1);
|
| -
|
| - // Get the nudge tracker to think the retry is due.
|
| - nudge_tracker.SetSyncCycleStartTime(t1 + base::TimeDelta::FromSeconds(1));
|
| -
|
| - sync_pb::ClientToServerMessage message;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_EQ(sync_pb::SyncEnums::RETRY, gu_msg.get_updates_origin());
|
| - EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RETRY,
|
| - gu_msg.caller_info().source());
|
| - EXPECT_TRUE(gu_msg.is_retry());
|
| -
|
| - ModelTypeSet progress_types;
|
| - for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) {
|
| - syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber(
|
| - gu_msg.from_progress_marker(i).data_type_id());
|
| - progress_types.Put(type);
|
| - }
|
| - EXPECT_EQ(enabled_types(), progress_types);
|
| -}
|
| -
|
| -TEST_F(GetUpdatesProcessorTest, NudgeWithRetryTest) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| -
|
| - // Schedule a retry.
|
| - base::TimeTicks t1 = kTestStartTime;
|
| - nudge_tracker.SetNextRetryTime(t1);
|
| -
|
| - // Get the nudge tracker to think the retry is due.
|
| - nudge_tracker.SetSyncCycleStartTime(t1 + base::TimeDelta::FromSeconds(1));
|
| -
|
| - // Record a local change, too.
|
| - nudge_tracker.RecordLocalChange(ModelTypeSet(BOOKMARKS));
|
| -
|
| - sync_pb::ClientToServerMessage message;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - processor->PrepareGetUpdates(enabled_types(), &message);
|
| -
|
| - const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates();
|
| - EXPECT_NE(sync_pb::SyncEnums::RETRY, gu_msg.get_updates_origin());
|
| - EXPECT_NE(sync_pb::GetUpdatesCallerInfo::RETRY,
|
| - gu_msg.caller_info().source());
|
| -
|
| - EXPECT_TRUE(gu_msg.is_retry());
|
| -}
|
| -
|
| -// Verify that a bogus response message is detected.
|
| -TEST_F(GetUpdatesProcessorTest, InvalidResponse) {
|
| - sync_pb::GetUpdatesResponse gu_response;
|
| - InitFakeUpdateResponse(&gu_response);
|
| -
|
| - // This field is essential for making the client stop looping. If it's unset
|
| - // then something is very wrong. The client should detect this.
|
| - gu_response.clear_changes_remaining();
|
| -
|
| - sessions::NudgeTracker nudge_tracker;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - sessions::StatusController status;
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - SyncerError error = processor->ProcessResponse(gu_response,
|
| - enabled_types(),
|
| - &status);
|
| - EXPECT_EQ(error, SERVER_RESPONSE_VALIDATION_FAILED);
|
| -}
|
| -
|
| -// Verify that we correctly detect when there's more work to be done.
|
| -TEST_F(GetUpdatesProcessorTest, MoreToDownloadResponse) {
|
| - sync_pb::GetUpdatesResponse gu_response;
|
| - InitFakeUpdateResponse(&gu_response);
|
| - gu_response.set_changes_remaining(1);
|
| -
|
| - sessions::NudgeTracker nudge_tracker;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - sessions::StatusController status;
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - SyncerError error = processor->ProcessResponse(gu_response,
|
| - enabled_types(),
|
| - &status);
|
| - EXPECT_EQ(error, SERVER_MORE_TO_DOWNLOAD);
|
| -}
|
| -
|
| -// A simple scenario: No updates returned and nothing more to download.
|
| -TEST_F(GetUpdatesProcessorTest, NormalResponseTest) {
|
| - sync_pb::GetUpdatesResponse gu_response;
|
| - InitFakeUpdateResponse(&gu_response);
|
| - gu_response.set_changes_remaining(0);
|
| -
|
| - sessions::NudgeTracker nudge_tracker;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - sessions::StatusController status;
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| - SyncerError error = processor->ProcessResponse(gu_response,
|
| - enabled_types(),
|
| - &status);
|
| - EXPECT_EQ(error, SYNCER_OK);
|
| -}
|
| -
|
| -// Variant of GetUpdatesProcessor test designed to test update application.
|
| -//
|
| -// Maintains two enabled types, but requests that updates be applied for only
|
| -// one of them.
|
| -class GetUpdatesProcessorApplyUpdatesTest : public GetUpdatesProcessorTest {
|
| - public:
|
| - GetUpdatesProcessorApplyUpdatesTest() {}
|
| - ~GetUpdatesProcessorApplyUpdatesTest() override {}
|
| -
|
| - void SetUp() override {
|
| - bookmarks_handler_ = AddUpdateHandler(BOOKMARKS);
|
| - autofill_handler_ = AddUpdateHandler(AUTOFILL);
|
| - }
|
| -
|
| - ModelTypeSet GetGuTypes() {
|
| - return ModelTypeSet(AUTOFILL);
|
| - }
|
| -
|
| - MockUpdateHandler* GetNonAppliedHandler() {
|
| - return bookmarks_handler_;
|
| - }
|
| -
|
| - MockUpdateHandler* GetAppliedHandler() {
|
| - return autofill_handler_;
|
| - }
|
| -
|
| - private:
|
| - MockUpdateHandler* bookmarks_handler_;
|
| - MockUpdateHandler* autofill_handler_;
|
| -};
|
| -
|
| -// Verify that a normal cycle applies updates non-passively to the specified
|
| -// types.
|
| -TEST_F(GetUpdatesProcessorApplyUpdatesTest, Normal) {
|
| - sessions::NudgeTracker nudge_tracker;
|
| - NormalGetUpdatesDelegate normal_delegate(nudge_tracker);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(normal_delegate));
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetApplyUpdatesCount());
|
| -
|
| - sessions::StatusController status;
|
| - processor->ApplyUpdates(GetGuTypes(), &status);
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
|
| - EXPECT_EQ(1, GetAppliedHandler()->GetApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(GetGuTypes(), status.get_updates_request_types());
|
| -}
|
| -
|
| -// Verify that a configure cycle applies updates passively to the specified
|
| -// types.
|
| -TEST_F(GetUpdatesProcessorApplyUpdatesTest, Configure) {
|
| - ConfigureGetUpdatesDelegate configure_delegate(
|
| - sync_pb::GetUpdatesCallerInfo::RECONFIGURATION);
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(configure_delegate));
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| -
|
| - sessions::StatusController status;
|
| - processor->ApplyUpdates(GetGuTypes(), &status);
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| - EXPECT_EQ(1, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(GetGuTypes(), status.get_updates_request_types());
|
| -}
|
| -
|
| -// Verify that a poll cycle applies updates non-passively to the specified
|
| -// types.
|
| -TEST_F(GetUpdatesProcessorApplyUpdatesTest, Poll) {
|
| - PollGetUpdatesDelegate poll_delegate;
|
| - std::unique_ptr<GetUpdatesProcessor> processor(
|
| - BuildGetUpdatesProcessor(poll_delegate));
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetApplyUpdatesCount());
|
| -
|
| - sessions::StatusController status;
|
| - processor->ApplyUpdates(GetGuTypes(), &status);
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetApplyUpdatesCount());
|
| - EXPECT_EQ(1, GetAppliedHandler()->GetApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(0, GetNonAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| - EXPECT_EQ(0, GetAppliedHandler()->GetPassiveApplyUpdatesCount());
|
| -
|
| - EXPECT_EQ(GetGuTypes(), status.get_updates_request_types());
|
| -}
|
| -
|
| -class DownloadUpdatesDebugInfoTest : public ::testing::Test {
|
| - public:
|
| - DownloadUpdatesDebugInfoTest() {}
|
| - ~DownloadUpdatesDebugInfoTest() override {}
|
| -
|
| - sessions::StatusController* status() {
|
| - return &status_;
|
| - }
|
| -
|
| - sessions::DebugInfoGetter* debug_info_getter() {
|
| - return &debug_info_getter_;
|
| - }
|
| -
|
| - void AddDebugEvent() {
|
| - debug_info_getter_.AddDebugEvent();
|
| - }
|
| -
|
| - private:
|
| - sessions::StatusController status_;
|
| - MockDebugInfoGetter debug_info_getter_;
|
| -};
|
| -
|
| -// Verify CopyClientDebugInfo when there are no events to upload.
|
| -TEST_F(DownloadUpdatesDebugInfoTest, VerifyCopyClientDebugInfo_Empty) {
|
| - sync_pb::DebugInfo debug_info;
|
| - GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info);
|
| - EXPECT_EQ(0, debug_info.events_size());
|
| -}
|
| -
|
| -TEST_F(DownloadUpdatesDebugInfoTest, VerifyCopyOverwrites) {
|
| - sync_pb::DebugInfo debug_info;
|
| - AddDebugEvent();
|
| - GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info);
|
| - EXPECT_EQ(1, debug_info.events_size());
|
| - GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info);
|
| - EXPECT_EQ(1, debug_info.events_size());
|
| -}
|
| -
|
| -} // namespace syncer
|
|
|