Chromium Code Reviews| 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 |