• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
ACTION_P(SimulateThrottled,throttle)80 ACTION_P(SimulateThrottled, throttle) {
81   SimulateThrottledImpl(arg0, throttle);
82 }
83 
ACTION_P2(SimulateTypesThrottled,types,throttle)84 ACTION_P2(SimulateTypesThrottled, types, throttle) {
85   SimulateTypesThrottledImpl(arg0, types, throttle);
86 }
87 
ACTION_P(SimulatePollIntervalUpdate,poll)88 ACTION_P(SimulatePollIntervalUpdate, poll) {
89   SimulatePollIntervalUpdateImpl(arg0, arg1, poll);
90 }
91 
ACTION_P(SimulateSessionsCommitDelayUpdate,poll)92 ACTION_P(SimulateSessionsCommitDelayUpdate, poll) {
93   SimulateSessionsCommitDelayUpdateImpl(arg0, arg1, arg2, poll);
94 }
95 
ACTION_P(SimulateGuRetryDelayCommand,delay)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