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

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

Issue 1083683003: Speculative revert by sheriff (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed an unrelated commit that had accidentally slipped in. Created 5 years, 8 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') | tools/mb/mb_config.pyl » ('j') | 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 store birthday value.
38 static const char kDefaultStoreBirthday[] = "1234567890";
39
40 // The default keystore key.
41 static const char kDefaultKeystoreKey[] = "1111111111111111";
42
37 namespace fake_server { 43 namespace fake_server {
38 44
39 class FakeServerEntity; 45 class FakeServerEntity;
40 46
41 namespace { 47 namespace {
42 48
43 // The default store birthday value.
44 static const char kDefaultStoreBirthday[] = "1234567890";
45
46 // The default keystore key.
47 static const char kDefaultKeystoreKey[] = "1111111111111111";
48
49 // Properties of the bookmark bar permanent folder.
50 static const char kBookmarkBarFolderServerTag[] = "bookmark_bar";
51 static const char kBookmarkBarFolderName[] = "Bookmark Bar";
52
53 // Properties of the other bookmarks permanent folder.
54 static const char kOtherBookmarksFolderServerTag[] = "other_bookmarks";
55 static const char kOtherBookmarksFolderName[] = "Other Bookmarks";
56
57 // Properties of the synced bookmarks permanent folder.
58 static const char kSyncedBookmarksFolderServerTag[] = "synced_bookmarks";
59 static const char kSyncedBookmarksFolderName[] = "Synced Bookmarks";
60
61 // A filter used during GetUpdates calls to determine what information to 49 // A filter used during GetUpdates calls to determine what information to
62 // send back to the client. There is a 1:1 correspondence between any given 50 // send back to the client. There is a 1:1 correspondence between any given
63 // GetUpdates call and an UpdateSieve instance. 51 // GetUpdates call and an UpdateSieve instance.
64 class UpdateSieve { 52 class UpdateSieve {
65 public: 53 public:
66 ~UpdateSieve() { } 54 ~UpdateSieve() { }
67 55
68 // Factory method for creating an UpdateSieve. 56 // Factory method for creating an UpdateSieve.
69 static scoped_ptr<UpdateSieve> Create( 57 static scoped_ptr<UpdateSieve> Create(
70 const sync_pb::GetUpdatesMessage& get_updates_message); 58 const sync_pb::GetUpdatesMessage& get_updates_message);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 request_counter_(0), 160 request_counter_(0),
173 network_enabled_(true) { 161 network_enabled_(true) {
174 keystore_keys_.push_back(kDefaultKeystoreKey); 162 keystore_keys_.push_back(kDefaultKeystoreKey);
175 CHECK(CreateDefaultPermanentItems()); 163 CHECK(CreateDefaultPermanentItems());
176 } 164 }
177 165
178 FakeServer::~FakeServer() { 166 FakeServer::~FakeServer() {
179 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end()); 167 STLDeleteContainerPairSecondPointers(entities_.begin(), entities_.end());
180 } 168 }
181 169
182 bool FakeServer::CreatePermanentBookmarkFolder(const std::string& server_tag, 170 bool FakeServer::CreatePermanentBookmarkFolder(const char* server_tag,
183 const std::string& name) { 171 const char* name) {
184 FakeServerEntity* entity = 172 FakeServerEntity* entity =
185 PermanentEntity::Create(syncer::BOOKMARKS, server_tag, name, 173 PermanentEntity::Create(syncer::BOOKMARKS, server_tag, name,
186 ModelTypeToRootTag(syncer::BOOKMARKS)); 174 ModelTypeToRootTag(syncer::BOOKMARKS));
187 if (entity == NULL) 175 if (entity == NULL)
188 return false; 176 return false;
189 177
190 SaveEntity(entity); 178 SaveEntity(entity);
191 return true; 179 return true;
192 } 180 }
193 181
194 bool FakeServer::CreateDefaultPermanentItems() { 182 bool FakeServer::CreateDefaultPermanentItems() {
195 ModelTypeSet all_types = syncer::ProtocolTypes(); 183 ModelTypeSet all_types = syncer::ProtocolTypes();
196 for (ModelTypeSet::Iterator it = all_types.First(); it.Good(); it.Inc()) { 184 for (ModelTypeSet::Iterator it = all_types.First(); it.Good(); it.Inc()) {
197 ModelType model_type = it.Get(); 185 ModelType model_type = it.Get();
198 FakeServerEntity* top_level_entity = 186 FakeServerEntity* top_level_entity =
199 PermanentEntity::CreateTopLevel(model_type); 187 PermanentEntity::CreateTopLevel(model_type);
200 if (top_level_entity == NULL) { 188 if (top_level_entity == NULL) {
201 return false; 189 return false;
202 } 190 }
203 SaveEntity(top_level_entity); 191 SaveEntity(top_level_entity);
204 192
205 if (model_type == syncer::BOOKMARKS) { 193 if (model_type == syncer::BOOKMARKS) {
206 if (!CreatePermanentBookmarkFolder(kBookmarkBarFolderServerTag, 194 if (!CreatePermanentBookmarkFolder("bookmark_bar", "Bookmark Bar"))
207 kBookmarkBarFolderName))
208 return false; 195 return false;
209 if (!CreatePermanentBookmarkFolder(kOtherBookmarksFolderServerTag, 196 if (!CreatePermanentBookmarkFolder("other_bookmarks", "Other Bookmarks"))
210 kOtherBookmarksFolderName))
211 return false; 197 return false;
212 } 198 }
213 } 199 }
214 200
215 return true; 201 return true;
216 } 202 }
217 203
204 bool FakeServer::CreateMobileBookmarksPermanentItem() {
205 // This folder is called "Synced Bookmarks" by sync and is renamed
206 // "Mobile Bookmarks" by the mobile client UIs.
207 FakeServerEntity* mobile_bookmarks_entity =
208 PermanentEntity::Create(syncer::BOOKMARKS,
209 "synced_bookmarks",
210 "Synced Bookmarks",
211 ModelTypeToRootTag(syncer::BOOKMARKS));
212 if (mobile_bookmarks_entity == NULL) {
213 return false;
214 }
215 SaveEntity(mobile_bookmarks_entity);
216 return true;
217 }
218
218 void FakeServer::SaveEntity(FakeServerEntity* entity) { 219 void FakeServer::SaveEntity(FakeServerEntity* entity) {
219 delete entities_[entity->GetId()]; 220 delete entities_[entity->GetId()];
220 entity->SetVersion(++version_); 221 entity->SetVersion(++version_);
221 entities_[entity->GetId()] = entity; 222 entities_[entity->GetId()] = entity;
222 } 223 }
223 224
224 void FakeServer::HandleCommand(const string& request, 225 void FakeServer::HandleCommand(const string& request,
225 const HandleCommandCallback& callback) { 226 const HandleCommandCallback& callback) {
226 if (!network_enabled_) { 227 if (!network_enabled_) {
227 callback.Run(net::ERR_FAILED, net::ERR_FAILED, string()); 228 callback.Run(net::ERR_FAILED, net::ERR_FAILED, string());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 284
284 bool FakeServer::HandleGetUpdatesRequest( 285 bool FakeServer::HandleGetUpdatesRequest(
285 const sync_pb::GetUpdatesMessage& get_updates, 286 const sync_pb::GetUpdatesMessage& get_updates,
286 sync_pb::GetUpdatesResponse* response) { 287 sync_pb::GetUpdatesResponse* response) {
287 // TODO(pvalenzuela): Implement batching instead of sending all information 288 // TODO(pvalenzuela): Implement batching instead of sending all information
288 // at once. 289 // at once.
289 response->set_changes_remaining(0); 290 response->set_changes_remaining(0);
290 291
291 scoped_ptr<UpdateSieve> sieve = UpdateSieve::Create(get_updates); 292 scoped_ptr<UpdateSieve> sieve = UpdateSieve::Create(get_updates);
292 293
293 // This folder is called "Synced Bookmarks" by sync and is renamed
294 // "Mobile Bookmarks" by the mobile client UIs.
295 if (get_updates.create_mobile_bookmarks_folder() && 294 if (get_updates.create_mobile_bookmarks_folder() &&
296 !CreatePermanentBookmarkFolder(kSyncedBookmarksFolderServerTag, 295 !CreateMobileBookmarksPermanentItem()) {
297 kSyncedBookmarksFolderName)) {
298 return false; 296 return false;
299 } 297 }
300 298
301 bool send_encryption_keys_based_on_nigori = false; 299 bool send_encryption_keys_based_on_nigori = false;
302 int64 max_response_version = 0; 300 int64 max_response_version = 0;
303 for (EntityMap::iterator it = entities_.begin(); it != entities_.end(); 301 for (EntityMap::iterator it = entities_.begin(); it != entities_.end();
304 ++it) { 302 ++it) {
305 FakeServerEntity* entity = it->second; 303 FakeServerEntity* entity = it->second;
306 if (sieve->ClientWantsItem(entity)) { 304 if (sieve->ClientWantsItem(entity)) {
307 sync_pb::SyncEntity* response_entity = response->add_entries(); 305 sync_pb::SyncEntity* response_entity = response->add_entries();
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 } 594 }
597 595
598 void FakeServer::EnableNetwork() { 596 void FakeServer::EnableNetwork() {
599 network_enabled_ = true; 597 network_enabled_ = true;
600 } 598 }
601 599
602 void FakeServer::DisableNetwork() { 600 void FakeServer::DisableNetwork() {
603 network_enabled_ = false; 601 network_enabled_ = false;
604 } 602 }
605 603
606 std::string FakeServer::GetBookmarkBarFolderId() const {
607 for (EntityMap::const_iterator it = entities_.begin(); it != entities_.end();
608 ++it) {
609 FakeServerEntity* entity = it->second;
610 if (entity->GetName() == kBookmarkBarFolderName &&
611 entity->IsFolder() &&
612 entity->GetModelType() == syncer::BOOKMARKS) {
613 return entity->GetId();
614 }
615 }
616 NOTREACHED() << "Bookmark Bar entity not found.";
617 return "";
618 }
619
620 } // namespace fake_server 604 } // namespace fake_server
OLDNEW
« no previous file with comments | « sync/test/fake_server/fake_server.h ('k') | tools/mb/mb_config.pyl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698