| Index: chrome/browser/sync/test/engine/mock_connection_manager.cc
|
| diff --git a/chrome/browser/sync/test/engine/mock_connection_manager.cc b/chrome/browser/sync/test/engine/mock_connection_manager.cc
|
| index 488f83730517e85f99d17d4e7497712a0311fc06..76fb7e11fa444b5c7b349757ec7f16777982b489 100644
|
| --- a/chrome/browser/sync/test/engine/mock_connection_manager.cc
|
| +++ b/chrome/browser/sync/test/engine/mock_connection_manager.cc
|
| @@ -38,9 +38,12 @@ using syncable::ModelType;
|
| using syncable::ScopedDirLookup;
|
| using syncable::WriteTransaction;
|
|
|
| +static char kValidAuthToken[] = "AuthToken";
|
| +
|
| MockConnectionManager::MockConnectionManager(DirectoryManager* dirmgr,
|
| const string& name)
|
| : ServerConnectionManager("unused", 0, false, "version"),
|
| + server_reachable_(true),
|
| conflict_all_commits_(false),
|
| conflict_n_commits_(0),
|
| next_new_id_(10000),
|
| @@ -59,8 +62,8 @@ MockConnectionManager::MockConnectionManager(DirectoryManager* dirmgr,
|
| next_position_in_parent_(2),
|
| use_legacy_bookmarks_protocol_(false),
|
| num_get_updates_requests_(0) {
|
| - server_reachable_ = true;
|
| SetNewTimestamp(0);
|
| + set_auth_token(kValidAuthToken);
|
| };
|
|
|
| MockConnectionManager::~MockConnectionManager() {
|
| @@ -93,16 +96,27 @@ bool MockConnectionManager::PostBufferToPath(PostBufferParams* params,
|
| response.Clear();
|
|
|
| ScopedDirLookup directory(directory_manager_, directory_name_);
|
| - // For any non-AUTHENTICATE requests, a valid directory should be set up.
|
| - // If the Directory's locked when we do this, it's a problem as in normal
|
| - // use this function could take a while to return because it accesses the
|
| - // network. As we can't test this we do the next best thing and hang here
|
| - // when there's an issue.
|
| +
|
| + // A valid directory should be set up. If the Directory's locked when we do
|
| + // this, it's a problem as in normal use this function could take a while to
|
| + // return because it accesses the network. As we can't test this we do the
|
| + // next best thing and hang here when there's an issue.
|
| if (post.message_contents() != ClientToServerMessage::AUTHENTICATE) {
|
| CHECK(directory.good());
|
| WriteTransaction wt(FROM_HERE, syncable::UNITTEST, directory);
|
| }
|
|
|
| + if (auth_token.empty()) {
|
| + params->response.server_status = HttpResponse::SYNC_AUTH_ERROR;
|
| + return false;
|
| + }
|
| +
|
| + if (auth_token != kValidAuthToken) {
|
| + // Simulate server-side auth failure.
|
| + params->response.server_status = HttpResponse::SYNC_AUTH_ERROR;
|
| + InvalidateAndClearAuthToken();
|
| + }
|
| +
|
| if (fail_next_postbuffer_) {
|
| fail_next_postbuffer_ = false;
|
| return false;
|
| @@ -135,8 +149,6 @@ bool MockConnectionManager::PostBufferToPath(PostBufferParams* params,
|
| ProcessCommit(&post, &response);
|
| } else if (post.message_contents() == ClientToServerMessage::GET_UPDATES) {
|
| ProcessGetUpdates(&post, &response);
|
| - } else if (post.message_contents() == ClientToServerMessage::AUTHENTICATE) {
|
| - ProcessAuthenticate(&post, &response, auth_token);
|
| } else if (post.message_contents() == ClientToServerMessage::CLEAR_DATA) {
|
| ProcessClearData(&post, &response);
|
| } else {
|
| @@ -170,14 +182,6 @@ bool MockConnectionManager::PostBufferToPath(PostBufferParams* params,
|
| return result;
|
| }
|
|
|
| -bool MockConnectionManager::IsServerReachable() {
|
| - return true;
|
| -}
|
| -
|
| -bool MockConnectionManager::IsUserAuthenticated() {
|
| - return true;
|
| -}
|
| -
|
| sync_pb::GetUpdatesResponse* MockConnectionManager::GetUpdateResponse() {
|
| if (update_queue_.empty()) {
|
| NextUpdateBatch();
|
| @@ -466,35 +470,6 @@ void MockConnectionManager::ProcessClearData(ClientToServerMessage* csm,
|
| response->set_error_code(clear_user_data_response_errortype_);
|
| }
|
|
|
| -void MockConnectionManager::ProcessAuthenticate(
|
| - ClientToServerMessage* csm,
|
| - ClientToServerResponse* response,
|
| - const std::string& auth_token) {
|
| - ASSERT_EQ(csm->message_contents(), ClientToServerMessage::AUTHENTICATE);
|
| - EXPECT_FALSE(auth_token.empty());
|
| -
|
| - if (auth_token != valid_auth_token_) {
|
| - response->set_error_code(SyncEnums::AUTH_INVALID);
|
| - return;
|
| - }
|
| -
|
| - response->set_error_code(SyncEnums::SUCCESS);
|
| - response->mutable_authenticate()->CopyFrom(auth_response_);
|
| - auth_response_.Clear();
|
| -}
|
| -
|
| -void MockConnectionManager::SetAuthenticationResponseInfo(
|
| - const std::string& valid_auth_token,
|
| - const std::string& user_display_name,
|
| - const std::string& user_display_email,
|
| - const std::string& user_obfuscated_id) {
|
| - valid_auth_token_ = valid_auth_token;
|
| - sync_pb::UserIdentification* user = auth_response_.mutable_user();
|
| - user->set_display_name(user_display_name);
|
| - user->set_email(user_display_email);
|
| - user->set_obfuscated_id(user_obfuscated_id);
|
| -}
|
| -
|
| bool MockConnectionManager::ShouldConflictThisCommit() {
|
| bool conflict = false;
|
| if (conflict_all_commits_) {
|
| @@ -647,19 +622,9 @@ sync_pb::DataTypeProgressMarker const*
|
| }
|
|
|
| void MockConnectionManager::SetServerReachable() {
|
| - server_status_ = HttpResponse::SERVER_CONNECTION_OK;
|
| server_reachable_ = true;
|
| -
|
| - FOR_EACH_OBSERVER(ServerConnectionEventListener, listeners_,
|
| - OnServerConnectionEvent(
|
| - ServerConnectionEvent(server_status_, server_reachable_)));
|
| }
|
|
|
| void MockConnectionManager::SetServerNotReachable() {
|
| - server_status_ = HttpResponse::CONNECTION_UNAVAILABLE;
|
| server_reachable_ = false;
|
| -
|
| - FOR_EACH_OBSERVER(ServerConnectionEventListener, listeners_,
|
| - OnServerConnectionEvent(
|
| - ServerConnectionEvent(server_status_, server_reachable_)));
|
| }
|
|
|