Index: sync/test/fake_server/fake_server.cc |
diff --git a/sync/test/fake_server/fake_server.cc b/sync/test/fake_server/fake_server.cc |
index d0ea4de6011c78493cb25d9cc698671296c38ccf..ab8b741fa271db62a16b78951cd3a399191e8655 100644 |
--- a/sync/test/fake_server/fake_server.cc |
+++ b/sync/test/fake_server/fake_server.cc |
@@ -145,7 +145,9 @@ scoped_ptr<UpdateSieve> UpdateSieve::Create( |
} // namespace |
-FakeServer::FakeServer() : version_(0), store_birthday_(kDefaultStoreBirthday) { |
+FakeServer::FakeServer() : version_(0), |
+ store_birthday_(kDefaultStoreBirthday), |
+ error_type_(sync_pb::SyncEnums::SUCCESS) { |
keystore_keys_.push_back(kDefaultKeystoreKey); |
CHECK(CreateDefaultPermanentItems()); |
} |
@@ -224,6 +226,8 @@ void FakeServer::HandleCommand(const string& request, |
if (message.has_store_birthday() && |
message.store_birthday() != store_birthday_) { |
error_code = sync_pb::SyncEnums::NOT_MY_BIRTHDAY; |
+ } else if (error_type_ != sync_pb::SyncEnums::SUCCESS) { |
+ error_code = error_type_; |
} else { |
bool success = false; |
switch (message.message_contents()) { |
@@ -490,6 +494,15 @@ bool FakeServer::SetNewStoreBirthday(const string& store_birthday) { |
return true; |
} |
+// TODO(pvalenzuela): comments from Richard: we should look at |
+// mock_connection_manager.cc and take it as a warning. This style of injecting |
+// errors works when there's one or two conditions we care about, but it can |
+// eventually lead to a hairball once we have many different conditions and |
+// triggering logic. |
+void FakeServer::TriggerError(const sync_pb::SyncEnums::ErrorType& error_type) { |
+ error_type_ = error_type; |
+} |
+ |
void FakeServer::AddObserver(Observer* observer) { |
observers_.AddObserver(observer); |
} |