- add sources.
[platform/framework/web/crosswalk.git] / src / sync / sessions / test_util.h
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 SimulateThrottledImpl(sessions::SyncSession* session,
57     const base::TimeDelta& delta);
58
59 void SimulateTypesThrottledImpl(
60     sessions::SyncSession* session,
61     ModelTypeSet types,
62     const base::TimeDelta& delta);
63
64 // Works with poll cycles.
65 void SimulatePollIntervalUpdateImpl(
66     ModelTypeSet requested_types,
67     sessions::SyncSession* session,
68     const base::TimeDelta& new_poll);
69
70 // Works with normal cycles.
71 void SimulateSessionsCommitDelayUpdateImpl(
72     ModelTypeSet requested_types,
73     const sessions::NudgeTracker& nudge_tracker,
74     sessions::SyncSession* session,
75     const base::TimeDelta& new_delay);
76
77 ACTION_P(SimulateThrottled, throttle) {
78   SimulateThrottledImpl(arg0, throttle);
79 }
80
81 ACTION_P2(SimulateTypesThrottled, types, throttle) {
82   SimulateTypesThrottledImpl(arg0, types, throttle);
83 }
84
85 ACTION_P(SimulatePollIntervalUpdate, poll) {
86   SimulatePollIntervalUpdateImpl(arg0, arg1, poll);
87 }
88
89 ACTION_P(SimulateSessionsCommitDelayUpdate, poll) {
90   SimulateSessionsCommitDelayUpdateImpl(arg0, arg1, arg2, poll);
91 }
92
93 }  // namespace test_util
94 }  // namespace sessions
95 }  // namespace syncer
96
97 #endif  // SYNC_SESSIONS_TEST_UTIL_H_