OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "sync/test/fake_server/fake_server.h" | 5 #include "sync/test/fake_server/fake_server.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
138 if (version < min_version) | 138 if (version < min_version) |
139 min_version = version; | 139 min_version = version; |
140 } | 140 } |
141 | 141 |
142 return scoped_ptr<UpdateSieve>( | 142 return scoped_ptr<UpdateSieve>( |
143 new UpdateSieve(request_from_version, min_version)); | 143 new UpdateSieve(request_from_version, min_version)); |
144 } | 144 } |
145 | 145 |
146 } // namespace | 146 } // namespace |
147 | 147 |
148 FakeServer::FakeServer() : version_(0), birthday_(kDefaultBirthday) { | 148 FakeServer::FakeServer() : version_(0), |
149 birthday_(kDefaultBirthday), | |
150 error_type_(sync_pb::SyncEnums::SUCCESS) { | |
149 keystore_keys_.push_back(kDefaultKeystoreKey); | 151 keystore_keys_.push_back(kDefaultKeystoreKey); |
150 CHECK(CreateDefaultPermanentItems()); | 152 CHECK(CreateDefaultPermanentItems()); |
151 } | 153 } |
152 | 154 |
153 FakeServer::~FakeServer() { | 155 FakeServer::~FakeServer() { |
154 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end()); | 156 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end()); |
155 } | 157 } |
156 | 158 |
157 bool FakeServer::CreateDefaultPermanentItems() { | 159 bool FakeServer::CreateDefaultPermanentItems() { |
158 ModelTypeSet all_types = syncer::ProtocolTypes(); | 160 ModelTypeSet all_types = syncer::ProtocolTypes(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
213 } | 215 } |
214 | 216 |
215 void FakeServer::HandleCommand(const string& request, | 217 void FakeServer::HandleCommand(const string& request, |
216 const HandleCommandCallback& callback) { | 218 const HandleCommandCallback& callback) { |
217 sync_pb::ClientToServerMessage message; | 219 sync_pb::ClientToServerMessage message; |
218 bool parsed = message.ParseFromString(request); | 220 bool parsed = message.ParseFromString(request); |
219 DCHECK(parsed); | 221 DCHECK(parsed); |
220 | 222 |
221 sync_pb::ClientToServerResponse response_proto; | 223 sync_pb::ClientToServerResponse response_proto; |
222 bool success; | 224 bool success; |
223 switch (message.message_contents()) { | 225 |
224 case sync_pb::ClientToServerMessage::GET_UPDATES: | 226 if (error_type_ != sync_pb::SyncEnums::SUCCESS) { |
pval...(no longer on Chromium)
2014/06/03 22:08:18
there are a few other in-flight changes here that
haitaol1
2014/06/04 18:21:30
I rebased on ToT. Please take a look to verify.
O
pval...(no longer on Chromium)
2014/06/05 17:46:14
latest version (patchset 5) looks good
| |
225 success = HandleGetUpdatesRequest(message.get_updates(), | 227 success = true; |
226 response_proto.mutable_get_updates()); | 228 } else { |
227 break; | 229 switch (message.message_contents()) { |
228 case sync_pb::ClientToServerMessage::COMMIT: | 230 case sync_pb::ClientToServerMessage::GET_UPDATES: |
229 success = HandleCommitRequest(message.commit(), | 231 success = HandleGetUpdatesRequest(message.get_updates(), |
230 message.invalidator_client_id(), | 232 response_proto.mutable_get_updates()); |
231 response_proto.mutable_commit()); | 233 break; |
232 break; | 234 case sync_pb::ClientToServerMessage::COMMIT: |
233 default: | 235 success = HandleCommitRequest(message.commit(), |
234 callback.Run(net::ERR_NOT_IMPLEMENTED, 0, string());; | 236 message.invalidator_client_id(), |
235 return; | 237 response_proto.mutable_commit()); |
238 break; | |
239 default: | |
240 callback.Run(net::ERR_NOT_IMPLEMENTED, 0, string());; | |
241 return; | |
242 } | |
236 } | 243 } |
237 | 244 |
238 if (!success) { | 245 if (!success) { |
239 // TODO(pvalenzuela): Add logging here so that tests have more info about | 246 // TODO(pvalenzuela): Add logging here so that tests have more info about |
240 // the failure. | 247 // the failure. |
241 callback.Run(net::ERR_FAILED, 0, string()); | 248 callback.Run(net::ERR_FAILED, 0, string()); |
242 return; | 249 return; |
243 } | 250 } |
244 | 251 |
245 response_proto.set_error_code(sync_pb::SyncEnums::SUCCESS); | |
246 response_proto.set_store_birthday(birthday_); | 252 response_proto.set_store_birthday(birthday_); |
253 response_proto.set_error_code(error_type_); | |
247 callback.Run(0, net::HTTP_OK, response_proto.SerializeAsString()); | 254 callback.Run(0, net::HTTP_OK, response_proto.SerializeAsString()); |
248 } | 255 } |
249 | 256 |
250 bool FakeServer::HandleGetUpdatesRequest( | 257 bool FakeServer::HandleGetUpdatesRequest( |
251 const sync_pb::GetUpdatesMessage& get_updates, | 258 const sync_pb::GetUpdatesMessage& get_updates, |
252 sync_pb::GetUpdatesResponse* response) { | 259 sync_pb::GetUpdatesResponse* response) { |
253 // TODO(pvalenzuela): Implement batching instead of sending all information | 260 // TODO(pvalenzuela): Implement batching instead of sending all information |
254 // at once. | 261 // at once. |
255 response->set_changes_remaining(0); | 262 response->set_changes_remaining(0); |
256 | 263 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
466 list_value->Append(new base::StringValue(entity->GetName())); | 473 list_value->Append(new base::StringValue(entity->GetName())); |
467 } | 474 } |
468 | 475 |
469 return dictionary.Pass(); | 476 return dictionary.Pass(); |
470 } | 477 } |
471 | 478 |
472 void FakeServer::InjectEntity(scoped_ptr<FakeServerEntity> entity) { | 479 void FakeServer::InjectEntity(scoped_ptr<FakeServerEntity> entity) { |
473 SaveEntity(entity.release()); | 480 SaveEntity(entity.release()); |
474 } | 481 } |
475 | 482 |
483 void FakeServer::TriggerError(const sync_pb::SyncEnums::ErrorType& error_type) { | |
rlarocque
2014/06/03 22:59:48
I think we should look at mock_connection_manager.
haitaol1
2014/06/04 18:21:30
Added a todo for Patrick.
On 2014/06/03 22:59:48,
pval...(no longer on Chromium)
2014/06/05 17:46:14
Great; thanks for TODO. I'll clean this up in a la
| |
484 error_type_ = error_type; | |
485 } | |
486 | |
476 void FakeServer::AddObserver(Observer* observer) { | 487 void FakeServer::AddObserver(Observer* observer) { |
477 observers_.AddObserver(observer); | 488 observers_.AddObserver(observer); |
478 } | 489 } |
479 | 490 |
480 void FakeServer::RemoveObserver(Observer* observer) { | 491 void FakeServer::RemoveObserver(Observer* observer) { |
481 observers_.RemoveObserver(observer); | 492 observers_.RemoveObserver(observer); |
482 } | 493 } |
483 | 494 |
484 } // namespace fake_server | 495 } // namespace fake_server |
OLD | NEW |