Home | History | Annotate | Download | only in sessions
      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