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 14 namespace syncer { 15 namespace sessions { 16 namespace test_util { 17 18 // Configure sync cycle successes and failures. 19 void SimulateGetEncryptionKeyFailed( 20 ModelTypeSet requested_types, 21 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 22 sessions::SyncSession* session); 23 void SimulateConfigureSuccess( 24 ModelTypeSet requested_types, 25 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 26 sessions::SyncSession* session); 27 void SimulateConfigureFailed( 28 ModelTypeSet requested_types, 29 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 30 sessions::SyncSession* session); 31 void SimulateConfigureConnectionFailure( 32 ModelTypeSet requested_types, 33 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 34 sessions::SyncSession* session); 35 36 // Normal mode sync cycle successes and failures. 37 void SimulateNormalSuccess(ModelTypeSet requested_types, 38 const sessions::NudgeTracker& nudge_tracker, 39 sessions::SyncSession* session); 40 void SimulateDownloadUpdatesFailed(ModelTypeSet requested_types, 41 const sessions::NudgeTracker& nudge_tracker, 42 sessions::SyncSession* session); 43 void SimulateCommitFailed(ModelTypeSet requested_types, 44 const sessions::NudgeTracker& nudge_tracker, 45 sessions::SyncSession* session); 46 void SimulateConnectionFailure(ModelTypeSet requested_types, 47 const sessions::NudgeTracker& nudge_tracker, 48 sessions::SyncSession* session); 49 50 // Poll successes and failures. 51 void SimulatePollSuccess(ModelTypeSet requested_types, 52 sessions::SyncSession* session); 53 void SimulatePollFailed(ModelTypeSet requested_types, 54 sessions::SyncSession* session); 55 56 void SimulateGuRetryDelayCommandImpl(sessions::SyncSession* session, 57 base::TimeDelta delay); 58 59 void SimulateThrottledImpl(sessions::SyncSession* session, 60 const base::TimeDelta& delta); 61 62 void SimulateTypesThrottledImpl( 63 sessions::SyncSession* session, 64 ModelTypeSet types, 65 const base::TimeDelta& delta); 66 67 // Works with poll cycles. 68 void SimulatePollIntervalUpdateImpl( 69 ModelTypeSet requested_types, 70 sessions::SyncSession* session, 71 const base::TimeDelta& new_poll); 72 73 // Works with normal cycles. 74 void SimulateSessionsCommitDelayUpdateImpl( 75 ModelTypeSet requested_types, 76 const sessions::NudgeTracker& nudge_tracker, 77 sessions::SyncSession* session, 78 const base::TimeDelta& new_delay); 79 80 ACTION_P(SimulateThrottled, throttle) { 81 SimulateThrottledImpl(arg0, throttle); 82 } 83 84 ACTION_P2(SimulateTypesThrottled, types, throttle) { 85 SimulateTypesThrottledImpl(arg0, types, throttle); 86 } 87 88 ACTION_P(SimulatePollIntervalUpdate, poll) { 89 SimulatePollIntervalUpdateImpl(arg0, arg1, poll); 90 } 91 92 ACTION_P(SimulateSessionsCommitDelayUpdate, poll) { 93 SimulateSessionsCommitDelayUpdateImpl(arg0, arg1, arg2, poll); 94 } 95 96 ACTION_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