| OLD | NEW |
| 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 Loading... |
| 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 // 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 // requests are made once throttling is in effect" in one step. | |
| 128 class ResponseCodeOverrideRequestor { | |
| 129 public: | |
| 130 // Called with response_code_override_lock_ acquired. | |
| 131 virtual void OnOverrideComplete() = 0; | |
| 132 | |
| 133 protected: | |
| 134 virtual ~ResponseCodeOverrideRequestor() {} | |
| 135 }; | |
| 136 void ThrottleNextRequest(ResponseCodeOverrideRequestor* visitor); | |
| 137 void FailWithAuthInvalid(ResponseCodeOverrideRequestor* visitor); | |
| 138 void StopFailingWithAuthInvalid(ResponseCodeOverrideRequestor* visitor); | |
| 139 void FailNonPeriodicGetUpdates() { fail_non_periodic_get_updates_ = true; } | 125 void FailNonPeriodicGetUpdates() { fail_non_periodic_get_updates_ = true; } |
| 140 | 126 |
| 141 // Simple inspectors. | 127 // Simple inspectors. |
| 142 bool client_stuck() const { return client_stuck_; } | 128 bool client_stuck() const { return client_stuck_; } |
| 143 | 129 |
| 144 sync_pb::ClientCommand* GetNextClientCommand(); | 130 sync_pb::ClientCommand* GetNextClientCommand(); |
| 145 | 131 |
| 146 const std::vector<syncable::Id>& committed_ids() const { | 132 const std::vector<syncable::Id>& committed_ids() const { |
| 147 return committed_ids_; | 133 return committed_ids_; |
| 148 } | 134 } |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 // cases where we're mocking out most of the code that performs network | 201 // cases where we're mocking out most of the code that performs network |
| 216 // requests. | 202 // requests. |
| 217 void UpdateConnectionStatus(); | 203 void UpdateConnectionStatus(); |
| 218 | 204 |
| 219 // Return by copy to be thread-safe. | 205 // Return by copy to be thread-safe. |
| 220 const std::string store_birthday() { | 206 const std::string store_birthday() { |
| 221 base::AutoLock lock(store_birthday_lock_); | 207 base::AutoLock lock(store_birthday_lock_); |
| 222 return store_birthday_; | 208 return store_birthday_; |
| 223 } | 209 } |
| 224 | 210 |
| 211 // Explicitly indicate that we will not be fetching some updates. |
| 212 void ClearUpdatesQueue() { |
| 213 update_queue_.clear(); |
| 214 } |
| 215 |
| 225 // Locate the most recent update message for purpose of alteration. | 216 // Locate the most recent update message for purpose of alteration. |
| 226 sync_pb::SyncEntity* GetMutableLastUpdate(); | 217 sync_pb::SyncEntity* GetMutableLastUpdate(); |
| 227 | 218 |
| 228 private: | 219 private: |
| 229 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, syncable::Id parentid, | 220 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, syncable::Id parentid, |
| 230 std::string name, int64 version, | 221 std::string name, int64 version, |
| 231 int64 sync_ts, | 222 int64 sync_ts, |
| 232 bool is_dir); | 223 bool is_dir); |
| 233 sync_pb::SyncEntity* AddUpdateFull(std::string id, | 224 sync_pb::SyncEntity* AddUpdateFull(std::string id, |
| 234 std::string parentid, std::string name, | 225 std::string parentid, std::string name, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 // The next id the mock will return to a commit. | 283 // The next id the mock will return to a commit. |
| 293 int next_new_id_; | 284 int next_new_id_; |
| 294 | 285 |
| 295 // The store birthday we send to the client. | 286 // The store birthday we send to the client. |
| 296 std::string store_birthday_; | 287 std::string store_birthday_; |
| 297 base::Lock store_birthday_lock_; | 288 base::Lock store_birthday_lock_; |
| 298 bool store_birthday_sent_; | 289 bool store_birthday_sent_; |
| 299 bool client_stuck_; | 290 bool client_stuck_; |
| 300 std::string commit_time_rename_prepended_string_; | 291 std::string commit_time_rename_prepended_string_; |
| 301 | 292 |
| 302 // Fail on the next call to PostBufferToPath(). | 293 // On each PostBufferToPath() call, we decrement this counter. The call fails |
| 303 bool fail_next_postbuffer_; | 294 // iff we hit zero at that call. |
| 295 int countdown_to_postbuffer_fail_; |
| 304 | 296 |
| 305 // Our directory. Used only to ensure that we are not holding the transaction | 297 // 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 | 298 // lock when performing network I/O. Can be NULL if the test author is |
| 307 // confident this can't happen. | 299 // confident this can't happen. |
| 308 syncable::Directory* directory_; | 300 syncable::Directory* directory_; |
| 309 | 301 |
| 310 // The updates we'll return to the next request. | 302 // The updates we'll return to the next request. |
| 311 std::list<sync_pb::GetUpdatesResponse> update_queue_; | 303 std::list<sync_pb::GetUpdatesResponse> update_queue_; |
| 312 base::Closure mid_commit_callback_; | 304 base::Closure mid_commit_callback_; |
| 313 MidCommitObserver* mid_commit_observer_; | 305 MidCommitObserver* mid_commit_observer_; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 int num_get_updates_requests_; | 343 int num_get_updates_requests_; |
| 352 | 344 |
| 353 std::string next_token_; | 345 std::string next_token_; |
| 354 | 346 |
| 355 sync_pb::ClientToServerMessage last_request_; | 347 sync_pb::ClientToServerMessage last_request_; |
| 356 | 348 |
| 357 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager); | 349 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager); |
| 358 }; | 350 }; |
| 359 | 351 |
| 360 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ | 352 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ |
| OLD | NEW |