172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// found in the LICENSE file.
472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/sync/sessions/test_util.h"
672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace browser_sync {
872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace sessions {
972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace test_util {
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulateHasMoreToSync(sessions::SyncSession* session,
1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                           SyncerStep begin, SyncerStep end) {
1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  session->status_controller()->update_conflicts_resolved(true);
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  ASSERT_TRUE(session->HasMoreToSync());
1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulateDownloadUpdatesFailed(sessions::SyncSession* session,
1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                                   SyncerStep begin, SyncerStep end) {
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Note that a non-zero value of changes_remaining once a session has
2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // completed implies that the Syncer was unable to exhaust this count during
2172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // the GetUpdates cycle.  This is an indication that an error occurred.
2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  session->status_controller()->set_num_server_changes_remaining(1);
2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulateCommitFailed(sessions::SyncSession* session,
2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                          SyncerStep begin, SyncerStep end) {
2772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Note that a non-zero number of unsynced handles once a session has
2872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // completed implies that the Syncer was unable to make forward progress
2972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // during a commit, indicating an error occurred.
3072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // See implementation of SyncSession::HasMoreToSync.
3172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  std::vector<int64> handles;
3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  handles.push_back(1);
3372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  session->status_controller()->set_unsynced_handles(handles);
3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulateSuccess(sessions::SyncSession* session,
3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen                     SyncerStep begin, SyncerStep end) {
3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (session->HasMoreToSync()) {
3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    ADD_FAILURE() << "Shouldn't have more to sync";
4072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  ASSERT_EQ(0U, session->status_controller()->num_server_changes_remaining());
4272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  ASSERT_EQ(0U, session->status_controller()->unsynced_handles().size());
4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulateThrottledImpl(sessions::SyncSession* session,
4672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    const base::TimeDelta& delta) {
4772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  session->delegate()->OnSilencedUntil(base::TimeTicks::Now() + delta);
4872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
4972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid SimulatePollIntervalUpdateImpl(sessions::SyncSession* session,
5172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    const base::TimeDelta& new_poll) {
5272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  session->delegate()->OnReceivedLongPollIntervalUpdate(new_poll);
5372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
5472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace test_util
5672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace sessions
5772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace browser_sync
58