1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// Utils to simulate various outcomes of a sync session. 6#ifndef SYNC_SESSIONS_TEST_UTIL_H_ 7#define SYNC_SESSIONS_TEST_UTIL_H_ 8 9#include "sync/engine/syncer.h" 10#include "sync/sessions/sync_session.h" 11#include "testing/gmock/include/gmock/gmock.h" 12#include "testing/gtest/include/gtest/gtest.h" 13 14namespace syncer { 15namespace sessions { 16namespace test_util { 17 18// Configure sync cycle successes and failures. 19void SimulateGetEncryptionKeyFailed( 20 ModelTypeSet requested_types, 21 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 22 sessions::SyncSession* session); 23void SimulateConfigureSuccess( 24 ModelTypeSet requested_types, 25 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 26 sessions::SyncSession* session); 27void SimulateConfigureFailed( 28 ModelTypeSet requested_types, 29 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 30 sessions::SyncSession* session); 31void SimulateConfigureConnectionFailure( 32 ModelTypeSet requested_types, 33 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 34 sessions::SyncSession* session); 35 36// Normal mode sync cycle successes and failures. 37void SimulateNormalSuccess(ModelTypeSet requested_types, 38 const sessions::NudgeTracker& nudge_tracker, 39 sessions::SyncSession* session); 40void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, 41 const sessions::NudgeTracker& nudge_tracker, 42 sessions::SyncSession* session); 43void SimulateCommitFailed(ModelTypeSet requested_types, 44 const sessions::NudgeTracker& nudge_tracker, 45 sessions::SyncSession* session); 46void SimulateConnectionFailure(ModelTypeSet requested_types, 47 const sessions::NudgeTracker& nudge_tracker, 48 sessions::SyncSession* session); 49 50// Poll successes and failures. 51void SimulatePollSuccess(ModelTypeSet requested_types, 52 sessions::SyncSession* session); 53void SimulatePollFailed(ModelTypeSet requested_types, 54 sessions::SyncSession* session); 55 56void SimulateGuRetryDelayCommandImpl(sessions::SyncSession* session, 57 base::TimeDelta delay); 58 59void SimulateThrottledImpl(sessions::SyncSession* session, 60 const base::TimeDelta& delta); 61 62void SimulateTypesThrottledImpl( 63 sessions::SyncSession* session, 64 ModelTypeSet types, 65 const base::TimeDelta& delta); 66 67// Works with poll cycles. 68void SimulatePollIntervalUpdateImpl( 69 ModelTypeSet requested_types, 70 sessions::SyncSession* session, 71 const base::TimeDelta& new_poll); 72 73// Works with normal cycles. 74void SimulateSessionsCommitDelayUpdateImpl( 75 ModelTypeSet requested_types, 76 const sessions::NudgeTracker& nudge_tracker, 77 sessions::SyncSession* session, 78 const base::TimeDelta& new_delay); 79 80ACTION_P(SimulateThrottled, throttle) { 81 SimulateThrottledImpl(arg0, throttle); 82} 83 84ACTION_P2(SimulateTypesThrottled, types, throttle) { 85 SimulateTypesThrottledImpl(arg0, types, throttle); 86} 87 88ACTION_P(SimulatePollIntervalUpdate, poll) { 89 SimulatePollIntervalUpdateImpl(arg0, arg1, poll); 90} 91 92ACTION_P(SimulateSessionsCommitDelayUpdate, poll) { 93 SimulateSessionsCommitDelayUpdateImpl(arg0, arg1, arg2, poll); 94} 95 96ACTION_P(SimulateGuRetryDelayCommand, delay) { 97 SimulateGuRetryDelayCommandImpl(arg0, delay); 98} 99 100} // namespace test_util 101} // namespace sessions 102} // namespace syncer 103 104#endif // SYNC_SESSIONS_TEST_UTIL_H_ 105