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

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

Issue 308963006: Convert Sync BirthdayErrorTest to use FakeServer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « sync/test/fake_server/fake_server.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 16 matching lines...) Expand all
27 #include "sync/test/fake_server/tombstone_entity.h" 27 #include "sync/test/fake_server/tombstone_entity.h"
28 #include "sync/test/fake_server/unique_client_entity.h" 28 #include "sync/test/fake_server/unique_client_entity.h"
29 29
30 using std::string; 30 using std::string;
31 using std::vector; 31 using std::vector;
32 32
33 using syncer::GetModelType; 33 using syncer::GetModelType;
34 using syncer::ModelType; 34 using syncer::ModelType;
35 using syncer::ModelTypeSet; 35 using syncer::ModelTypeSet;
36 36
37 // The default birthday value. 37 // The default store birthday value.
38 static const char kDefaultBirthday[] = "1234567890"; 38 static const char kDefaultStoreBirthday[] = "1234567890";
39 39
40 // The default keystore key. 40 // The default keystore key.
41 static const char kDefaultKeystoreKey[] = "1111111111111111"; 41 static const char kDefaultKeystoreKey[] = "1111111111111111";
42 42
43 namespace fake_server { 43 namespace fake_server {
44 44
45 class FakeServerEntity; 45 class FakeServerEntity;
46 46
47 namespace { 47 namespace {
48 48
(...skipping 89 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), store_birthday_(kDefaultStoreBirthday) {
149 keystore_keys_.push_back(kDefaultKeystoreKey); 149 keystore_keys_.push_back(kDefaultKeystoreKey);
150 CHECK(CreateDefaultPermanentItems()); 150 CHECK(CreateDefaultPermanentItems());
151 } 151 }
152 152
153 FakeServer::~FakeServer() { 153 FakeServer::~FakeServer() {
154 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end()); 154 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end());
155 } 155 }
156 156
157 bool FakeServer::CreateDefaultPermanentItems() { 157 bool FakeServer::CreateDefaultPermanentItems() {
158 ModelTypeSet all_types = syncer::ProtocolTypes(); 158 ModelTypeSet all_types = syncer::ProtocolTypes();
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 entity->SetVersion(++version_); 211 entity->SetVersion(++version_);
212 entities_[entity->GetId()] = entity; 212 entities_[entity->GetId()] = entity;
213 } 213 }
214 214
215 void FakeServer::HandleCommand(const string& request, 215 void FakeServer::HandleCommand(const string& request,
216 const HandleCommandCallback& callback) { 216 const HandleCommandCallback& callback) {
217 sync_pb::ClientToServerMessage message; 217 sync_pb::ClientToServerMessage message;
218 bool parsed = message.ParseFromString(request); 218 bool parsed = message.ParseFromString(request);
219 DCHECK(parsed); 219 DCHECK(parsed);
220 220
221 sync_pb::SyncEnums_ErrorType error_code;
221 sync_pb::ClientToServerResponse response_proto; 222 sync_pb::ClientToServerResponse response_proto;
222 bool success; 223
223 switch (message.message_contents()) { 224 if (message.has_store_birthday() &&
224 case sync_pb::ClientToServerMessage::GET_UPDATES: 225 message.store_birthday() != store_birthday_) {
225 success = HandleGetUpdatesRequest(message.get_updates(), 226 error_code = sync_pb::SyncEnums::NOT_MY_BIRTHDAY;
226 response_proto.mutable_get_updates()); 227 } else {
227 break; 228 bool success;
Nicolas Zea 2014/06/02 22:02:04 nit: initialize to false
pval...(no longer on Chromium) 2014/06/02 23:06:54 Done.
228 case sync_pb::ClientToServerMessage::COMMIT: 229 switch (message.message_contents()) {
229 success = HandleCommitRequest(message.commit(), 230 case sync_pb::ClientToServerMessage::GET_UPDATES:
230 message.invalidator_client_id(), 231 success = HandleGetUpdatesRequest(message.get_updates(),
231 response_proto.mutable_commit()); 232 response_proto.mutable_get_updates());
232 break; 233 break;
233 default: 234 case sync_pb::ClientToServerMessage::COMMIT:
234 callback.Run(net::ERR_NOT_IMPLEMENTED, 0, string());; 235 success = HandleCommitRequest(message.commit(),
236 message.invalidator_client_id(),
237 response_proto.mutable_commit());
238 break;
239 default:
240 callback.Run(net::ERR_NOT_IMPLEMENTED, 0, string());;
241 return;
242 }
243
244 if (!success) {
245 // TODO(pvalenzuela): Add logging here so that tests have more info about
246 // the failure.
247 callback.Run(net::ERR_FAILED, 0, string());
235 return; 248 return;
249 }
250
251 error_code = sync_pb::SyncEnums::SUCCESS;
236 } 252 }
237 253
238 if (!success) { 254 response_proto.set_error_code(error_code);
239 // TODO(pvalenzuela): Add logging here so that tests have more info about 255 response_proto.set_store_birthday(store_birthday_);
240 // the failure.
241 callback.Run(net::ERR_FAILED, 0, string());
242 return;
243 }
244
245 response_proto.set_error_code(sync_pb::SyncEnums::SUCCESS);
246 response_proto.set_store_birthday(birthday_);
247 callback.Run(0, net::HTTP_OK, response_proto.SerializeAsString()); 256 callback.Run(0, net::HTTP_OK, response_proto.SerializeAsString());
248 } 257 }
249 258
250 bool FakeServer::HandleGetUpdatesRequest( 259 bool FakeServer::HandleGetUpdatesRequest(
251 const sync_pb::GetUpdatesMessage& get_updates, 260 const sync_pb::GetUpdatesMessage& get_updates,
252 sync_pb::GetUpdatesResponse* response) { 261 sync_pb::GetUpdatesResponse* response) {
253 // TODO(pvalenzuela): Implement batching instead of sending all information 262 // TODO(pvalenzuela): Implement batching instead of sending all information
254 // at once. 263 // at once.
255 response->set_changes_remaining(0); 264 response->set_changes_remaining(0);
256 265
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 list_value->Append(new base::StringValue(entity->GetName())); 475 list_value->Append(new base::StringValue(entity->GetName()));
467 } 476 }
468 477
469 return dictionary.Pass(); 478 return dictionary.Pass();
470 } 479 }
471 480
472 void FakeServer::InjectEntity(scoped_ptr<FakeServerEntity> entity) { 481 void FakeServer::InjectEntity(scoped_ptr<FakeServerEntity> entity) {
473 SaveEntity(entity.release()); 482 SaveEntity(entity.release());
474 } 483 }
475 484
485 bool FakeServer::SetNewStoreBirthday(const string& store_birthday) {
486 if (store_birthday_ == store_birthday)
487 return false;
488
489 store_birthday_ = store_birthday;
490 return true;
491 }
492
476 void FakeServer::AddObserver(Observer* observer) { 493 void FakeServer::AddObserver(Observer* observer) {
477 observers_.AddObserver(observer); 494 observers_.AddObserver(observer);
478 } 495 }
479 496
480 void FakeServer::RemoveObserver(Observer* observer) { 497 void FakeServer::RemoveObserver(Observer* observer) {
481 observers_.RemoveObserver(observer); 498 observers_.RemoveObserver(observer);
482 } 499 }
483 500
484 } // namespace fake_server 501 } // namespace fake_server
OLDNEW
« no previous file with comments | « sync/test/fake_server/fake_server.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698