// Copyright (c) 2012 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. // // Utils to simulate various outcomes of a sync session. #ifndef SYNC_SESSIONS_TEST_UTIL_H_ #define SYNC_SESSIONS_TEST_UTIL_H_ #include "sync/engine/syncer.h" #include "sync/sessions/sync_session.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace syncer { namespace sessions { namespace test_util { // Configure sync cycle successes and failures. void SimulateGetEncryptionKeyFailed( ModelTypeSet requested_types, sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, sessions::SyncSession* session); void SimulateConfigureSuccess( ModelTypeSet requested_types, sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, sessions::SyncSession* session); void SimulateConfigureFailed( ModelTypeSet requested_types, sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, sessions::SyncSession* session); void SimulateConfigureConnectionFailure( ModelTypeSet requested_types, sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, sessions::SyncSession* session); // Normal mode sync cycle successes and failures. void SimulateNormalSuccess(ModelTypeSet requested_types, const sessions::NudgeTracker& nudge_tracker, sessions::SyncSession* session); void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, const sessions::NudgeTracker& nudge_tracker, sessions::SyncSession* session); void SimulateCommitFailed(ModelTypeSet requested_types, const sessions::NudgeTracker& nudge_tracker, sessions::SyncSession* session); void SimulateConnectionFailure(ModelTypeSet requested_types, const sessions::NudgeTracker& nudge_tracker, sessions::SyncSession* session); // Poll successes and failures. void SimulatePollSuccess(ModelTypeSet requested_types, sessions::SyncSession* session); void SimulatePollFailed(ModelTypeSet requested_types, sessions::SyncSession* session); void SimulateThrottledImpl(sessions::SyncSession* session, const base::TimeDelta& delta); void SimulateTypesThrottledImpl( sessions::SyncSession* session, ModelTypeSet types, const base::TimeDelta& delta); // Works with poll cycles. void SimulatePollIntervalUpdateImpl( ModelTypeSet requested_types, sessions::SyncSession* session, const base::TimeDelta& new_poll); // Works with normal cycles. void SimulateSessionsCommitDelayUpdateImpl( ModelTypeSet requested_types, const sessions::NudgeTracker& nudge_tracker, sessions::SyncSession* session, const base::TimeDelta& new_delay); ACTION_P(SimulateThrottled, throttle) { SimulateThrottledImpl(arg0, throttle); } ACTION_P2(SimulateTypesThrottled, types, throttle) { SimulateTypesThrottledImpl(arg0, types, throttle); } ACTION_P(SimulatePollIntervalUpdate, poll) { SimulatePollIntervalUpdateImpl(arg0, arg1, poll); } ACTION_P(SimulateSessionsCommitDelayUpdate, poll) { SimulateSessionsCommitDelayUpdateImpl(arg0, arg1, arg2, poll); } } // namespace test_util } // namespace sessions } // namespace syncer #endif // SYNC_SESSIONS_TEST_UTIL_H_