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#include "sync/sessions/test_util.h"
6
7namespace syncer {
8namespace sessions {
9namespace test_util {
10
11void SimulateGetEncryptionKeyFailed(
12    ModelTypeSet requsted_types,
13    sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source,
14    sessions::SyncSession* session) {
15  session->mutable_status_controller()->set_last_get_key_result(
16      SERVER_RESPONSE_VALIDATION_FAILED);
17  session->mutable_status_controller()->set_last_download_updates_result(
18      SYNCER_OK);
19}
20
21void SimulateConfigureSuccess(
22    ModelTypeSet requsted_types,
23    sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source,
24    sessions::SyncSession* session) {
25  session->mutable_status_controller()->set_last_get_key_result(SYNCER_OK);
26  session->mutable_status_controller()->set_last_download_updates_result(
27      SYNCER_OK);
28}
29
30void SimulateConfigureFailed(
31    ModelTypeSet requsted_types,
32    sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source,
33    sessions::SyncSession* session) {
34  session->mutable_status_controller()->set_last_get_key_result(SYNCER_OK);
35  session->mutable_status_controller()->set_last_download_updates_result(
36      SERVER_RETURN_TRANSIENT_ERROR);
37}
38
39void SimulateConfigureConnectionFailure(
40    ModelTypeSet requsted_types,
41    sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source,
42    sessions::SyncSession* session) {
43  session->mutable_status_controller()->set_last_get_key_result(SYNCER_OK);
44  session->mutable_status_controller()->set_last_download_updates_result(
45      NETWORK_CONNECTION_UNAVAILABLE);
46}
47
48void SimulateNormalSuccess(ModelTypeSet requested_types,
49                           const sessions::NudgeTracker& nudge_tracker,
50                           sessions::SyncSession* session) {
51  session->mutable_status_controller()->set_commit_result(SYNCER_OK);
52  session->mutable_status_controller()->set_last_download_updates_result(
53      SYNCER_OK);
54}
55
56void SimulateDownloadUpdatesFailed(
57    ModelTypeSet requested_types,
58    const sessions::NudgeTracker& nudge_tracker,
59    sessions::SyncSession* session) {
60  session->mutable_status_controller()->set_last_download_updates_result(
61      SERVER_RETURN_TRANSIENT_ERROR);
62}
63
64void SimulateCommitFailed(ModelTypeSet requested_types,
65                          const sessions::NudgeTracker& nudge_tracker,
66                          sessions::SyncSession* session) {
67  session->mutable_status_controller()->set_last_get_key_result(SYNCER_OK);
68  session->mutable_status_controller()->set_last_download_updates_result(
69      SYNCER_OK);
70  session->mutable_status_controller()->set_commit_result(
71      SERVER_RETURN_TRANSIENT_ERROR);
72}
73
74void SimulateConnectionFailure(
75                           ModelTypeSet requested_types,
76                           const sessions::NudgeTracker& nudge_tracker,
77                           sessions::SyncSession* session) {
78  session->mutable_status_controller()->set_last_download_updates_result(
79      NETWORK_CONNECTION_UNAVAILABLE);
80}
81
82void SimulatePollSuccess(ModelTypeSet requested_types,
83                         sessions::SyncSession* session) {
84  session->mutable_status_controller()->set_last_download_updates_result(
85      SYNCER_OK);
86}
87
88void SimulatePollFailed(ModelTypeSet requested_types,
89                             sessions::SyncSession* session) {
90  session->mutable_status_controller()->set_last_download_updates_result(
91      SERVER_RETURN_TRANSIENT_ERROR);
92}
93
94void SimulateThrottledImpl(
95    sessions::SyncSession* session,
96    const base::TimeDelta& delta) {
97  session->mutable_status_controller()->set_last_download_updates_result(
98      SERVER_RETURN_THROTTLED);
99  session->delegate()->OnThrottled(delta);
100}
101
102void SimulateTypesThrottledImpl(
103    sessions::SyncSession* session,
104    ModelTypeSet types,
105    const base::TimeDelta& delta) {
106  session->mutable_status_controller()->set_last_download_updates_result(
107      SERVER_RETURN_THROTTLED);
108  session->delegate()->OnTypesThrottled(types, delta);
109}
110
111void SimulatePollIntervalUpdateImpl(
112    ModelTypeSet requested_types,
113    sessions::SyncSession* session,
114    const base::TimeDelta& new_poll) {
115  SimulatePollSuccess(requested_types, session);
116  session->delegate()->OnReceivedLongPollIntervalUpdate(new_poll);
117}
118
119void SimulateSessionsCommitDelayUpdateImpl(
120    ModelTypeSet requested_types,
121    const sessions::NudgeTracker& nudge_tracker,
122    sessions::SyncSession* session,
123    const base::TimeDelta& new_delay) {
124  SimulateNormalSuccess(requested_types, nudge_tracker, session);
125  std::map<ModelType, base::TimeDelta> delay_map;
126  delay_map[SESSIONS] = new_delay;
127  session->delegate()->OnReceivedCustomNudgeDelays(delay_map);
128}
129
130void SimulateGuRetryDelayCommandImpl(sessions::SyncSession* session,
131                                     base::TimeDelta delay) {
132  session->mutable_status_controller()->set_last_download_updates_result(
133      SYNCER_OK);
134  session->delegate()->OnReceivedGuRetryDelay(delay);
135}
136
137}  // namespace test_util
138}  // namespace sessions
139}  // namespace syncer
140