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 | 9 |
10 #include <bitset> | 10 #include <bitset> |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 const std::string& auth_token, | 43 const std::string& auth_token, |
44 ScopedServerStatusWatcher* watcher) override; | 44 ScopedServerStatusWatcher* watcher) override; |
45 | 45 |
46 // Control of commit response. | 46 // Control of commit response. |
47 // NOTE: Commit callback is invoked only once then reset. | 47 // NOTE: Commit callback is invoked only once then reset. |
48 void SetMidCommitCallback(const base::Closure& callback); | 48 void SetMidCommitCallback(const base::Closure& callback); |
49 void SetMidCommitObserver(MidCommitObserver* observer); | 49 void SetMidCommitObserver(MidCommitObserver* observer); |
50 | 50 |
51 // Set this if you want commit to perform commit time rename. Will request | 51 // Set this if you want commit to perform commit time rename. Will request |
52 // that the client renames all commited entries, prepending this string. | 52 // that the client renames all commited entries, prepending this string. |
53 void SetCommitTimeRename(std::string prepend); | 53 void SetCommitTimeRename(const std::string& prepend); |
54 | 54 |
55 // Generic versions of AddUpdate functions. Tests using these function should | 55 // Generic versions of AddUpdate functions. Tests using these function should |
56 // compile for both the int64 and string id based versions of the server. | 56 // compile for both the int64 and string id based versions of the server. |
57 // The SyncEntity returned is only valid until the Sync is completed | 57 // The SyncEntity returned is only valid until the Sync is completed |
58 // (e.g. with SyncShare.) It allows to add further entity properties before | 58 // (e.g. with SyncShare.) It allows to add further entity properties before |
59 // sync, using SetLastXXX() methods and/or GetMutableLastUpdate(). | 59 // sync, using SetLastXXX() methods and/or GetMutableLastUpdate(). |
60 sync_pb::SyncEntity* AddUpdateDirectory( | 60 sync_pb::SyncEntity* AddUpdateDirectory( |
61 syncable::Id id, | 61 syncable::Id id, |
62 syncable::Id parent_id, | 62 syncable::Id parent_id, |
63 std::string name, | 63 const std::string& name, |
64 int64 version, | 64 int64 version, |
65 int64 sync_ts, | 65 int64 sync_ts, |
66 std::string originator_cache_guid, | 66 const std::string& originator_cache_guid, |
67 std::string originator_client_item_id); | 67 const std::string& originator_client_item_id); |
68 sync_pb::SyncEntity* AddUpdateBookmark(syncable::Id id, | 68 sync_pb::SyncEntity* AddUpdateBookmark( |
69 syncable::Id parent_id, | 69 syncable::Id id, |
70 std::string name, | 70 syncable::Id parent_id, |
71 int64 version, | 71 const std::string& name, |
72 int64 sync_ts, | 72 int64 version, |
73 std::string originator_cache_guid, | 73 int64 sync_ts, |
74 std::string originator_client_item_id); | 74 const std::string& originator_cache_guid, |
| 75 const std::string& originator_client_item_id); |
75 // Versions of the AddUpdate functions that accept integer IDs. | 76 // Versions of the AddUpdate functions that accept integer IDs. |
76 sync_pb::SyncEntity* AddUpdateDirectory( | 77 sync_pb::SyncEntity* AddUpdateDirectory( |
77 int id, | 78 int id, |
78 int parent_id, | 79 int parent_id, |
79 std::string name, | 80 const std::string& name, |
80 int64 version, | 81 int64 version, |
81 int64 sync_ts, | 82 int64 sync_ts, |
82 std::string originator_cache_guid, | 83 const std::string& originator_cache_guid, |
83 std::string originator_client_item_id); | 84 const std::string& originator_client_item_id); |
84 sync_pb::SyncEntity* AddUpdateBookmark(int id, | 85 sync_pb::SyncEntity* AddUpdateBookmark( |
85 int parent_id, | 86 int id, |
86 std::string name, | 87 int parent_id, |
87 int64 version, | 88 const std::string& name, |
88 int64 sync_ts, | 89 int64 version, |
89 std::string originator_cache_guid, | 90 int64 sync_ts, |
90 std::string originator_client_item_id); | 91 const std::string& originator_cache_guid, |
| 92 const std::string& originator_client_item_id); |
91 // New protocol versions of the AddUpdate functions. | 93 // New protocol versions of the AddUpdate functions. |
92 sync_pb::SyncEntity* AddUpdateDirectory( | 94 sync_pb::SyncEntity* AddUpdateDirectory( |
93 std::string id, | 95 const std::string& id, |
94 std::string parent_id, | 96 const std::string& parent_id, |
95 std::string name, | 97 const std::string& name, |
96 int64 version, | 98 int64 version, |
97 int64 sync_ts, | 99 int64 sync_ts, |
98 std::string originator_cache_guid, | 100 const std::string& originator_cache_guid, |
99 std::string originator_client_item_id); | 101 const std::string& originator_client_item_id); |
100 sync_pb::SyncEntity* AddUpdateBookmark(std::string id, | 102 sync_pb::SyncEntity* AddUpdateBookmark( |
101 std::string parent_id, | 103 const std::string& id, |
102 std::string name, | 104 const std::string& parent_id, |
103 int64 version, | 105 const std::string& name, |
104 int64 sync_ts, | 106 int64 version, |
105 std::string originator_cache_guid, | 107 int64 sync_ts, |
106 std::string originator_client_item_id); | 108 const std::string& originator_cache_guid, |
| 109 const std::string& originator_client_item_id); |
107 // Versions of the AddUpdate function that accept specifics. | 110 // Versions of the AddUpdate function that accept specifics. |
108 sync_pb::SyncEntity* AddUpdateSpecifics( | 111 sync_pb::SyncEntity* AddUpdateSpecifics( |
109 int id, | 112 int id, |
110 int parent_id, | 113 int parent_id, |
111 std::string name, | 114 const std::string& name, |
112 int64 version, | 115 int64 version, |
113 int64 sync_ts, | 116 int64 sync_ts, |
114 bool is_dir, | 117 bool is_dir, |
115 int64 position, | 118 int64 position, |
116 const sync_pb::EntitySpecifics& specifics); | 119 const sync_pb::EntitySpecifics& specifics); |
117 sync_pb::SyncEntity* AddUpdateSpecifics( | 120 sync_pb::SyncEntity* AddUpdateSpecifics( |
118 int id, | 121 int id, |
119 int parent_id, | 122 int parent_id, |
120 std::string name, | 123 const std::string& name, |
121 int64 version, | 124 int64 version, |
122 int64 sync_ts, | 125 int64 sync_ts, |
123 bool is_dir, | 126 bool is_dir, |
124 int64 position, | 127 int64 position, |
125 const sync_pb::EntitySpecifics& specifics, | 128 const sync_pb::EntitySpecifics& specifics, |
126 std::string originator_cache_guid, | 129 const std::string& originator_cache_guid, |
127 std::string originator_client_item_id); | 130 const std::string& originator_client_item_id); |
128 sync_pb::SyncEntity* SetNigori( | 131 sync_pb::SyncEntity* SetNigori( |
129 int id, | 132 int id, |
130 int64 version, | 133 int64 version, |
131 int64 sync_ts, | 134 int64 sync_ts, |
132 const sync_pb::EntitySpecifics& specifics); | 135 const sync_pb::EntitySpecifics& specifics); |
133 // Unique client tag variant for adding items. | 136 // Unique client tag variant for adding items. |
134 sync_pb::SyncEntity* AddUpdatePref(std::string id, | 137 sync_pb::SyncEntity* AddUpdatePref(const std::string& id, |
135 std::string parent_id, | 138 const std::string& parent_id, |
136 std::string client_tag, | 139 const std::string& client_tag, |
137 int64 version, | 140 int64 version, |
138 int64 sync_ts); | 141 int64 sync_ts); |
139 | 142 |
140 // Find the last commit sent by the client, and replay it for the next get | 143 // Find the last commit sent by the client, and replay it for the next get |
141 // updates command. This can be used to simulate the GetUpdates that happens | 144 // updates command. This can be used to simulate the GetUpdates that happens |
142 // immediately after a successful commit. | 145 // immediately after a successful commit. |
143 sync_pb::SyncEntity* AddUpdateFromLastCommit(); | 146 sync_pb::SyncEntity* AddUpdateFromLastCommit(); |
144 | 147 |
145 // Add a deleted item. Deletion records typically contain no | 148 // Add a deleted item. Deletion records typically contain no |
146 // additional information beyond the deletion, and no specifics. | 149 // additional information beyond the deletion, and no specifics. |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 next_new_id_ = value; | 208 next_new_id_ = value; |
206 } | 209 } |
207 void set_conflict_n_commits(int value) { | 210 void set_conflict_n_commits(int value) { |
208 conflict_n_commits_ = value; | 211 conflict_n_commits_ = value; |
209 } | 212 } |
210 | 213 |
211 void set_use_legacy_bookmarks_protocol(bool value) { | 214 void set_use_legacy_bookmarks_protocol(bool value) { |
212 use_legacy_bookmarks_protocol_ = value; | 215 use_legacy_bookmarks_protocol_ = value; |
213 } | 216 } |
214 | 217 |
215 void set_store_birthday(std::string new_birthday) { | 218 void set_store_birthday(const std::string& new_birthday) { |
216 // Multiple threads can set store_birthday_ in our tests, need to lock it to | 219 // Multiple threads can set store_birthday_ in our tests, need to lock it to |
217 // ensure atomic read/writes and avoid race conditions. | 220 // ensure atomic read/writes and avoid race conditions. |
218 base::AutoLock lock(store_birthday_lock_); | 221 base::AutoLock lock(store_birthday_lock_); |
219 store_birthday_ = new_birthday; | 222 store_birthday_ = new_birthday; |
220 } | 223 } |
221 | 224 |
222 void set_partial_throttling(bool value) { partialThrottling_ = value; } | 225 void set_partial_throttling(bool value) { partialThrottling_ = value; } |
223 | 226 |
224 // Retrieve the number of GetUpdates requests that the mock server has | 227 // Retrieve the number of GetUpdates requests that the mock server has |
225 // seen since the last time this function was called. Can be used to | 228 // seen since the last time this function was called. Can be used to |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 | 263 |
261 // Explicitly indicate that we will not be fetching some updates. | 264 // Explicitly indicate that we will not be fetching some updates. |
262 void ClearUpdatesQueue() { | 265 void ClearUpdatesQueue() { |
263 update_queue_.clear(); | 266 update_queue_.clear(); |
264 } | 267 } |
265 | 268 |
266 // Locate the most recent update message for purpose of alteration. | 269 // Locate the most recent update message for purpose of alteration. |
267 sync_pb::SyncEntity* GetMutableLastUpdate(); | 270 sync_pb::SyncEntity* GetMutableLastUpdate(); |
268 | 271 |
269 private: | 272 private: |
270 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, syncable::Id parentid, | 273 sync_pb::SyncEntity* AddUpdateFull(syncable::Id id, |
271 std::string name, int64 version, | 274 syncable::Id parentid, |
| 275 const std::string& name, |
| 276 int64 version, |
272 int64 sync_ts, | 277 int64 sync_ts, |
273 bool is_dir); | 278 bool is_dir); |
274 sync_pb::SyncEntity* AddUpdateFull(std::string id, | 279 sync_pb::SyncEntity* AddUpdateFull(const std::string& id, |
275 std::string parentid, std::string name, | 280 const std::string& parentid, |
276 int64 version, int64 sync_ts, | 281 const std::string& name, |
| 282 int64 version, |
| 283 int64 sync_ts, |
277 bool is_dir); | 284 bool is_dir); |
278 sync_pb::SyncEntity* AddUpdateMeta(std::string id, std::string parentid, | 285 sync_pb::SyncEntity* AddUpdateMeta(const std::string& id, |
279 std::string name, int64 version, | 286 const std::string& parentid, |
280 int64 sync_ts); | 287 const std::string& name, |
| 288 int64 version, |
| 289 int64 sync_ts); |
281 | 290 |
282 // Functions to handle the various types of server request. | 291 // Functions to handle the various types of server request. |
283 void ProcessGetUpdates(sync_pb::ClientToServerMessage* csm, | 292 void ProcessGetUpdates(sync_pb::ClientToServerMessage* csm, |
284 sync_pb::ClientToServerResponse* response); | 293 sync_pb::ClientToServerResponse* response); |
285 void ProcessCommit(sync_pb::ClientToServerMessage* csm, | 294 void ProcessCommit(sync_pb::ClientToServerMessage* csm, |
286 sync_pb::ClientToServerResponse* response_buffer); | 295 sync_pb::ClientToServerResponse* response_buffer); |
287 void ProcessClearServerData(sync_pb::ClientToServerMessage* csm, | 296 void ProcessClearServerData(sync_pb::ClientToServerMessage* csm, |
288 sync_pb::ClientToServerResponse* response); | 297 sync_pb::ClientToServerResponse* response); |
289 void AddDefaultBookmarkData(sync_pb::SyncEntity* entity, bool is_folder); | 298 void AddDefaultBookmarkData(sync_pb::SyncEntity* entity, bool is_folder); |
290 | 299 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 std::string next_token_; | 417 std::string next_token_; |
409 | 418 |
410 std::vector<sync_pb::ClientToServerMessage> requests_; | 419 std::vector<sync_pb::ClientToServerMessage> requests_; |
411 | 420 |
412 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager); | 421 DISALLOW_COPY_AND_ASSIGN(MockConnectionManager); |
413 }; | 422 }; |
414 | 423 |
415 } // namespace syncer | 424 } // namespace syncer |
416 | 425 |
417 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ | 426 #endif // SYNC_TEST_ENGINE_MOCK_CONNECTION_MANAGER_H_ |
OLD | NEW |