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

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: Rebase 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 13 matching lines...) Expand all
37 conflict_all_commits_(false), 38 conflict_all_commits_(false),
38 conflict_n_commits_(0), 39 conflict_n_commits_(0),
39 next_new_id_(10000), 40 next_new_id_(10000),
40 store_birthday_("Store BDay!"), 41 store_birthday_("Store BDay!"),
41 store_birthday_sent_(false), 42 store_birthday_sent_(false),
42 client_stuck_(false), 43 client_stuck_(false),
43 commit_time_rename_prepended_string_(""), 44 commit_time_rename_prepended_string_(""),
44 countdown_to_postbuffer_fail_(0), 45 countdown_to_postbuffer_fail_(0),
45 directory_(directory), 46 directory_(directory),
46 mid_commit_observer_(NULL), 47 mid_commit_observer_(NULL),
48 clear_user_data_response_errortype_(sync_pb::SyncEnums::SUCCESS),
49 get_key_response_errortype_(sync_pb::SyncEnums::SUCCESS),
47 throttling_(false), 50 throttling_(false),
48 fail_with_auth_invalid_(false), 51 fail_with_auth_invalid_(false),
49 fail_non_periodic_get_updates_(false), 52 fail_non_periodic_get_updates_(false),
50 client_command_(NULL), 53 client_command_(NULL),
51 next_position_in_parent_(2), 54 next_position_in_parent_(2),
52 use_legacy_bookmarks_protocol_(false), 55 use_legacy_bookmarks_protocol_(false),
53 num_get_updates_requests_(0) { 56 num_get_updates_requests_(0) {
54 SetNewTimestamp(0); 57 SetNewTimestamp(0);
55 set_auth_token(kValidAuthToken); 58 set_auth_token(kValidAuthToken);
56 } 59 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 } 134 }
132 bool result = true; 135 bool result = true;
133 EXPECT_TRUE(!store_birthday_sent_ || post.has_store_birthday() || 136 EXPECT_TRUE(!store_birthday_sent_ || post.has_store_birthday() ||
134 post.message_contents() == ClientToServerMessage::AUTHENTICATE); 137 post.message_contents() == ClientToServerMessage::AUTHENTICATE);
135 store_birthday_sent_ = true; 138 store_birthday_sent_ = true;
136 139
137 if (post.message_contents() == ClientToServerMessage::COMMIT) { 140 if (post.message_contents() == ClientToServerMessage::COMMIT) {
138 ProcessCommit(&post, &response); 141 ProcessCommit(&post, &response);
139 } else if (post.message_contents() == ClientToServerMessage::GET_UPDATES) { 142 } else if (post.message_contents() == ClientToServerMessage::GET_UPDATES) {
140 ProcessGetUpdates(&post, &response); 143 ProcessGetUpdates(&post, &response);
144 } else if (post.message_contents() ==
145 ClientToServerMessage::GET_ENCRYPTION_KEY) {
146 ProcessGetKey(&post, &response);
141 } else { 147 } else {
142 EXPECT_TRUE(false) << "Unknown/unsupported ClientToServerMessage"; 148 EXPECT_TRUE(false) << "Unknown/unsupported ClientToServerMessage";
143 return false; 149 return false;
144 } 150 }
145 if (client_command_.get()) { 151 if (client_command_.get()) {
146 response.mutable_client_command()->CopyFrom(*client_command_.get()); 152 response.mutable_client_command()->CopyFrom(*client_command_.get());
147 } 153 }
148 154
149 { 155 {
150 base::AutoLock lock(response_code_override_lock_); 156 base::AutoLock lock(response_code_override_lock_);
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 sync_pb::DataTypeProgressMarker* new_marker = 450 sync_pb::DataTypeProgressMarker* new_marker =
445 response->mutable_get_updates()->add_new_progress_marker(); 451 response->mutable_get_updates()->add_new_progress_marker();
446 new_marker->set_data_type_id(gu.from_progress_marker(i).data_type_id()); 452 new_marker->set_data_type_id(gu.from_progress_marker(i).data_type_id());
447 new_marker->set_token(token); 453 new_marker->set_token(token);
448 } 454 }
449 } 455 }
450 456
451 update_queue_.pop_front(); 457 update_queue_.pop_front();
452 } 458 }
453 459
460 void MockConnectionManager::SetKeystoreKey(const std::string& key) {
461 // Note: this is not a thread-safe set, ok for now. NOT ok if tests
462 // run the syncer on the background thread while this method is called.
463 keystore_key_ = key;
464 }
465
466 void MockConnectionManager::SetGetKeyResponseStatus(
467 sync_pb::SyncEnums::ErrorType errortype ) {
468 // Note: this is not a thread-safe set, ok for now. NOT ok if tests
469 // run the syncer on the background thread while this method is called.
470 get_key_response_errortype_ = errortype;
471 }
472
473 void MockConnectionManager::ProcessGetKey(
474 sync_pb::ClientToServerMessage* csm,
475 sync_pb::ClientToServerResponse* response) {
476 CHECK(csm->has_get_encryption_key());
tim (not reviewing) 2012/07/19 21:42:03 why CHECK over ASSERT_TRUE?
Nicolas Zea 2012/07/24 22:51:24 Done.
477 ASSERT_EQ(csm->message_contents(), ClientToServerMessage::GET_ENCRYPTION_KEY);
478 response->mutable_get_encryption_key()->set_key(keystore_key_);
479 response->set_error_code(get_key_response_errortype_);
480 }
481
454 bool MockConnectionManager::ShouldConflictThisCommit() { 482 bool MockConnectionManager::ShouldConflictThisCommit() {
455 bool conflict = false; 483 bool conflict = false;
456 if (conflict_all_commits_) { 484 if (conflict_all_commits_) {
457 conflict = true; 485 conflict = true;
458 } else if (conflict_n_commits_ > 0) { 486 } else if (conflict_n_commits_ > 0) {
459 conflict = true; 487 conflict = true;
460 --conflict_n_commits_; 488 --conflict_n_commits_;
461 } 489 }
462 return conflict; 490 return conflict;
463 } 491 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 617
590 void MockConnectionManager::UpdateConnectionStatus() { 618 void MockConnectionManager::UpdateConnectionStatus() {
591 if (!server_reachable_) { 619 if (!server_reachable_) {
592 server_status_ = HttpResponse::CONNECTION_UNAVAILABLE; 620 server_status_ = HttpResponse::CONNECTION_UNAVAILABLE;
593 } else { 621 } else {
594 server_status_ = HttpResponse::SERVER_CONNECTION_OK; 622 server_status_ = HttpResponse::SERVER_CONNECTION_OK;
595 } 623 }
596 } 624 }
597 625
598 } // namespace syncer 626 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698