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

Side by Side Diff: sync/test/engine/mock_connection_manager.cc

Issue 10455012: [Sync] Add support for performing a GetKey on startup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move GetEncryptionKey logic into GetUpdates Created 8 years, 5 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Mock ServerConnectionManager class for use in client regression tests. 5 // Mock ServerConnectionManager class for use in client regression tests.
6 6
7 #include "sync/test/engine/mock_connection_manager.h" 7 #include "sync/test/engine/mock_connection_manager.h"
8 8
9 #include <map> 9 #include <map>
10 10
11 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/stringprintf.h" 12 #include "base/stringprintf.h"
13 #include "sync/engine/syncer_proto_util.h" 13 #include "sync/engine/syncer_proto_util.h"
14 #include "sync/test/engine/test_id_factory.h"
14 #include "sync/protocol/bookmark_specifics.pb.h" 15 #include "sync/protocol/bookmark_specifics.pb.h"
15 #include "sync/syncable/directory.h" 16 #include "sync/syncable/directory.h"
16 #include "sync/syncable/write_transaction.h" 17 #include "sync/syncable/write_transaction.h"
17 #include "sync/test/engine/test_id_factory.h" 18 #include "sync/test/engine/test_id_factory.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 using std::map; 21 using std::map;
21 using std::string; 22 using std::string;
22 using sync_pb::ClientToServerMessage; 23 using sync_pb::ClientToServerMessage;
23 using sync_pb::CommitMessage; 24 using sync_pb::CommitMessage;
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 EXPECT_TRUE(gu.fetch_folders()); 422 EXPECT_TRUE(gu.fetch_folders());
422 EXPECT_FALSE(gu.has_requested_types()); 423 EXPECT_FALSE(gu.has_requested_types());
423 if (update_queue_.empty()) { 424 if (update_queue_.empty()) {
424 GetUpdateResponse(); 425 GetUpdateResponse();
425 } 426 }
426 sync_pb::GetUpdatesResponse* updates = &update_queue_.front(); 427 sync_pb::GetUpdatesResponse* updates = &update_queue_.front();
427 for (int i = 0; i < updates->entries_size(); ++i) { 428 for (int i = 0; i < updates->entries_size(); ++i) {
428 if (!updates->entries(i).deleted()) { 429 if (!updates->entries(i).deleted()) {
429 ModelType entry_type = syncer::GetModelType(updates->entries(i)); 430 ModelType entry_type = syncer::GetModelType(updates->entries(i));
430 EXPECT_TRUE( 431 EXPECT_TRUE(
431 IsModelTypePresentInSpecifics(gu.from_progress_marker(), entry_type)) 432 IsModelTypePresentInSpecifics(gu.from_progress_marker(), entry_type))
432 << "Syncer did not request updates being provided by the test."; 433 << "Syncer did not request updates being provided by the test.";
433 } 434 }
434 } 435 }
435 436
436 response->mutable_get_updates()->CopyFrom(*updates); 437 response->mutable_get_updates()->CopyFrom(*updates);
437 438
438 // Set appropriate progress markers, overriding the value squirreled 439 // Set appropriate progress markers, overriding the value squirreled
439 // away by ApplyToken(). 440 // away by ApplyToken().
440 std::string token = response->get_updates().new_progress_marker(0).token(); 441 std::string token = response->get_updates().new_progress_marker(0).token();
441 response->mutable_get_updates()->clear_new_progress_marker(); 442 response->mutable_get_updates()->clear_new_progress_marker();
442 for (int i = 0; i < gu.from_progress_marker_size(); ++i) { 443 for (int i = 0; i < gu.from_progress_marker_size(); ++i) {
443 if (gu.from_progress_marker(i).token() != token) { 444 if (gu.from_progress_marker(i).token() != token) {
444 sync_pb::DataTypeProgressMarker* new_marker = 445 sync_pb::DataTypeProgressMarker* new_marker =
445 response->mutable_get_updates()->add_new_progress_marker(); 446 response->mutable_get_updates()->add_new_progress_marker();
446 new_marker->set_data_type_id(gu.from_progress_marker(i).data_type_id()); 447 new_marker->set_data_type_id(gu.from_progress_marker(i).data_type_id());
447 new_marker->set_token(token); 448 new_marker->set_token(token);
448 } 449 }
449 } 450 }
450 451
452 // Fill the keystore key if requested.
453 if (gu.need_encryption_key())
454 response->mutable_get_updates()->set_encryption_key(keystore_key_);
455
451 update_queue_.pop_front(); 456 update_queue_.pop_front();
452 } 457 }
453 458
459 void MockConnectionManager::SetKeystoreKey(const std::string& key) {
460 // Note: this is not a thread-safe set, ok for now. NOT ok if tests
461 // run the syncer on the background thread while this method is called.
462 keystore_key_ = key;
463 }
464
454 bool MockConnectionManager::ShouldConflictThisCommit() { 465 bool MockConnectionManager::ShouldConflictThisCommit() {
455 bool conflict = false; 466 bool conflict = false;
456 if (conflict_all_commits_) { 467 if (conflict_all_commits_) {
457 conflict = true; 468 conflict = true;
458 } else if (conflict_n_commits_ > 0) { 469 } else if (conflict_n_commits_ > 0) {
459 conflict = true; 470 conflict = true;
460 --conflict_n_commits_; 471 --conflict_n_commits_;
461 } 472 }
462 return conflict; 473 return conflict;
463 } 474 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 600
590 void MockConnectionManager::UpdateConnectionStatus() { 601 void MockConnectionManager::UpdateConnectionStatus() {
591 if (!server_reachable_) { 602 if (!server_reachable_) {
592 server_status_ = HttpResponse::CONNECTION_UNAVAILABLE; 603 server_status_ = HttpResponse::CONNECTION_UNAVAILABLE;
593 } else { 604 } else {
594 server_status_ = HttpResponse::SERVER_CONNECTION_OK; 605 server_status_ = HttpResponse::SERVER_CONNECTION_OK;
595 } 606 }
596 } 607 }
597 608
598 } // namespace syncer 609 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698