summaryrefslogtreecommitdiffstats
path: root/chrome/test/sync
diff options
context:
space:
mode:
authortim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-08 19:07:36 +0000
committertim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-08 19:07:36 +0000
commit1ce52aae084f6a0201c64141e35772fc70bab1f0 (patch)
treef1d3ee1f356df34f5746f4659c05b0de5438a808 /chrome/test/sync
parentaf3711395a43fc47aa5882148edc93d9674dcdf1 (diff)
downloadchromium_src-1ce52aae084f6a0201c64141e35772fc70bab1f0.zip
chromium_src-1ce52aae084f6a0201c64141e35772fc70bab1f0.tar.gz
chromium_src-1ce52aae084f6a0201c64141e35772fc70bab1f0.tar.bz2
Implements the backend for clearing data from the server
BUG=54280 TEST=accessible only via unit test checked in this CL Original patch by raz@chromium.org Original review: http://codereview.chromium.org/3293007 Review URL: http://codereview.chromium.org/3310018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58859 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/sync')
-rw-r--r--chrome/test/sync/engine/mock_connection_manager.cc16
-rw-r--r--chrome/test/sync/engine/mock_connection_manager.h8
2 files changed, 23 insertions, 1 deletions
diff --git a/chrome/test/sync/engine/mock_connection_manager.cc b/chrome/test/sync/engine/mock_connection_manager.cc
index bfba668..3b11e0a 100644
--- a/chrome/test/sync/engine/mock_connection_manager.cc
+++ b/chrome/test/sync/engine/mock_connection_manager.cc
@@ -126,6 +126,8 @@ bool MockConnectionManager::PostBufferToPath(const PostBufferParams* params,
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 {
EXPECT_TRUE(false) << "Unknown/unsupported ClientToServerMessage";
return false;
@@ -359,6 +361,20 @@ void MockConnectionManager::ProcessGetUpdates(ClientToServerMessage* csm,
ResetUpdates();
}
+void MockConnectionManager::SetClearUserDataResponseStatus(
+ sync_pb::UserDataStatus status) {
+ // Note: this is not a thread-safe set, ok for now. NOT ok if tests
+ // run the syncer on the background thread while this method is called.
+ clear_user_data_response_.set_status(status);
+}
+
+void MockConnectionManager::ProcessClearData(ClientToServerMessage* csm,
+ ClientToServerResponse* response) {
+ CHECK(csm->has_clear_user_data());
+ ASSERT_EQ(csm->message_contents(), ClientToServerMessage::CLEAR_DATA);
+ response->mutable_clear_user_data()->CopyFrom(clear_user_data_response_);
+}
+
void MockConnectionManager::ProcessAuthenticate(
ClientToServerMessage* csm,
ClientToServerResponse* response,
diff --git a/chrome/test/sync/engine/mock_connection_manager.h b/chrome/test/sync/engine/mock_connection_manager.h
index 7d68844..2ed6ad4 100644
--- a/chrome/test/sync/engine/mock_connection_manager.h
+++ b/chrome/test/sync/engine/mock_connection_manager.h
@@ -128,6 +128,8 @@ class MockConnectionManager : public browser_sync::ServerConnectionManager {
void FailNextPostBufferToPathCall() { fail_next_postbuffer_ = true; }
+ void SetClearUserDataResponseStatus(sync_pb::UserDataStatus status);
+
// A visitor class to allow a test to change some monitoring state atomically
// with the action of overriding the response codes sent back to the Syncer
// (for example, so you can say "ThrottleNextRequest, and assert no more
@@ -238,7 +240,8 @@ class MockConnectionManager : public browser_sync::ServerConnectionManager {
const std::string& auth_token);
void ProcessCommit(sync_pb::ClientToServerMessage* csm,
sync_pb::ClientToServerResponse* response_buffer);
-
+ void ProcessClearData(sync_pb::ClientToServerMessage* csm,
+ sync_pb::ClientToServerResponse* response);
void AddDefaultBookmarkData(sync_pb::SyncEntity* entity, bool is_folder);
// Determine if one entry in a commit should be rejected with a conflict.
@@ -290,6 +293,9 @@ class MockConnectionManager : public browser_sync::ServerConnectionManager {
scoped_ptr<Callback0::Type> mid_commit_callback_;
MidCommitObserver* mid_commit_observer_;
+ // The clear data response we'll return in the next response
+ sync_pb::ClearUserDataResponse clear_user_data_response_;
+
// The AUTHENTICATE response we'll return for auth requests.
sync_pb::AuthenticateResponse auth_response_;
// What we use to determine if we should return SUCCESS or BAD_AUTH_TOKEN.