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

Side by Side Diff: sync/test/fake_server/fake_server.cc

Issue 310103004: Add integraton test for sync backup/rollback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup includes Created 6 years, 6 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698