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