Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: sync/test/engine/mock_connection_manager.h

Issue 10006046: Abort sync cycles when download step fails (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Mock ServerConnectionManager class for use in client unit tests. 5 // Mock ServerConnectionManager class for use in client unit tests.
6 6
7 #ifndef SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ 7 #ifndef SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_
8 #define SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ 8 #define SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_
9 #pragma once 9 #pragma once
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 const std::string& entry_id); 110 const std::string& entry_id);
111 void SetLastUpdatePosition(int64 position_in_parent); 111 void SetLastUpdatePosition(int64 position_in_parent);
112 void SetNewTimestamp(int ts); 112 void SetNewTimestamp(int ts);
113 void SetChangesRemaining(int64 count); 113 void SetChangesRemaining(int64 count);
114 114
115 // Add a new batch of updates after the current one. Allows multiple 115 // Add a new batch of updates after the current one. Allows multiple
116 // GetUpdates responses to be buffered up, since the syncer may 116 // GetUpdates responses to be buffered up, since the syncer may
117 // issue multiple requests during a sync cycle. 117 // issue multiple requests during a sync cycle.
118 void NextUpdateBatch(); 118 void NextUpdateBatch();
119 119
120 void FailNextPostBufferToPathCall() { fail_next_postbuffer_ = true; } 120 void FailNextPostBufferToPathCall() { countdown_to_postbuffer_fail_ = 1; }
121 void FailNthPostBufferToPathCall(int n) { countdown_to_postbuffer_fail_ = n; }
121 122
122 void SetClearUserDataResponseStatus(sync_pb::SyncEnums::ErrorType errortype); 123 void SetClearUserDataResponseStatus(sync_pb::SyncEnums::ErrorType errortype);
123 124
124 // A visitor class to allow a test to change some monitoring state atomically 125 // A visitor class to allow a test to change some monitoring state atomically
125 // with the action of overriding the response codes sent back to the Syncer 126 // with the action of overriding the response codes sent back to the Syncer
126 // (for example, so you can say "ThrottleNextRequest, and assert no more 127 // (for example, so you can say "ThrottleNextRequest, and assert no more
127 // requests are made once throttling is in effect" in one step. 128 // requests are made once throttling is in effect" in one step.
128 class ResponseCodeOverrideRequestor { 129 class ResponseCodeOverrideRequestor {
129 public: 130 public:
130 // Called with response_code_override_lock_ acquired. 131 // Called with response_code_override_lock_ acquired.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // cases where we're mocking out most of the code that performs network 216 // cases where we're mocking out most of the code that performs network
216 // requests. 217 // requests.
217 void UpdateConnectionStatus(); 218 void UpdateConnectionStatus();
218 219
219 // Return by copy to be thread-safe. 220 // Return by copy to be thread-safe.
220 const std::string store_birthday() { 221 const std::string store_birthday() {
221 base::AutoLock lock(store_birthday_lock_); 222 base::AutoLock lock(store_birthday_lock_);
222 return store_birthday_; 223 return store_birthday_;
223 } 224 }
224 225
226 // Explicitly indicate that we will not be fetching some updates.
227 void ClearUpdatesQueue() {
228 update_queue_.clear();
229 }
230
225 // Locate the most recent update message for purpose of alteration. 231 // Locate the most recent update message for purpose of alteration.
226 sync_pb::SyncEntity* GetMutableLastUpdate(); 232 sync_pb::SyncEntity* GetMutableLastUpdate();
227 233
228 private: 234 private:
229 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, syncable::Id parentid, 235 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, syncable::Id parentid,
230 std::string name, int64 version, 236 std::string name, int64 version,
231 int64 sync_ts, 237 int64 sync_ts,
232 bool is_dir); 238 bool is_dir);
233 sync_pb::SyncEntity* AddUpdateFull(std::string id, 239 sync_pb::SyncEntity* AddUpdateFull(std::string id,
234 std::string parentid, std::string name, 240 std::string parentid, std::string name,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 // The next id the mock will return to a commit. 298 // The next id the mock will return to a commit.
293 int next_new_id_; 299 int next_new_id_;
294 300
295 // The store birthday we send to the client. 301 // The store birthday we send to the client.
296 std::string store_birthday_; 302 std::string store_birthday_;
297 base::Lock store_birthday_lock_; 303 base::Lock store_birthday_lock_;
298 bool store_birthday_sent_; 304 bool store_birthday_sent_;
299 bool client_stuck_; 305 bool client_stuck_;
300 std::string commit_time_rename_prepended_string_; 306 std::string commit_time_rename_prepended_string_;
301 307
302 // Fail on the next call to PostBufferToPath(). 308 // On each PostBufferToPath() call, we decrement this counter. The call fails
303 bool fail_next_postbuffer_; 309 // iff we hit zero at that call.
310 int countdown_to_postbuffer_fail_;
304 311
305 // Our directory. Used only to ensure that we are not holding the transaction 312 // Our directory. Used only to ensure that we are not holding the transaction
306 // lock when performing network I/O. Can be NULL if the test author is 313 // lock when performing network I/O. Can be NULL if the test author is
307 // confident this can't happen. 314 // confident this can't happen.
308 syncable::Directory* directory_; 315 syncable::Directory* directory_;
309 316
310 // The updates we'll return to the next request. 317 // The updates we'll return to the next request.
311 std::list<sync_pb::GetUpdatesResponse> update_queue_; 318 std::list<sync_pb::GetUpdatesResponse> update_queue_;
312 base::Closure mid_commit_callback_; 319 base::Closure mid_commit_callback_;
313 MidCommitObserver* mid_commit_observer_; 320 MidCommitObserver* mid_commit_observer_;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 int num_get_updates_requests_; 358 int num_get_updates_requests_;
352 359
353 std::string next_token_; 360 std::string next_token_;
354 361
355 sync_pb::ClientToServerMessage last_request_; 362 sync_pb::ClientToServerMessage last_request_;
356 363
357 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager); 364 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager);
358 }; 365 };
359 366
360 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ 367 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698