Chromium Code Reviews| Index: sync/test/fake_server/fake_server_http_post_provider.cc |
| diff --git a/sync/test/fake_server/fake_server_http_post_provider.cc b/sync/test/fake_server/fake_server_http_post_provider.cc |
| index e0b34368fa349a1241a3ab0b228ed2634b889119..9d2285a57d1ee05dc7a7ac1af461595fb64e3383 100644 |
| --- a/sync/test/fake_server/fake_server_http_post_provider.cc |
| +++ b/sync/test/fake_server/fake_server_http_post_provider.cc |
| @@ -6,8 +6,11 @@ |
| #include <string> |
| +#include "base/synchronization/waitable_event.h" |
| +#include "content/public/browser/browser_thread.h" |
| #include "sync/test/fake_server/fake_server.h" |
| +using content::BrowserThread; |
| using syncer::HttpPostProviderInterface; |
| namespace fake_server { |
| @@ -32,7 +35,8 @@ void FakeServerHttpPostProviderFactory::Destroy( |
| } |
| FakeServerHttpPostProvider::FakeServerHttpPostProvider( |
| - FakeServer* fake_server) : fake_server_(fake_server) { } |
| + FakeServer* fake_server) : fake_server_(fake_server), |
| + post_complete_(false, false) { } |
| FakeServerHttpPostProvider::~FakeServerHttpPostProvider() { } |
| @@ -54,13 +58,28 @@ void FakeServerHttpPostProvider::SetPostPayload(const char* content_type, |
| request_content_.assign(content, content_length); |
| } |
| +void FakeServerHttpPostProvider::OnPostComplete() { |
| + post_complete_.Signal(); |
| +} |
| + |
| bool FakeServerHttpPostProvider::MakeSynchronousPost(int* error_code, |
| int* response_code) { |
| - // This assumes that a POST is being made to /command. |
| - *error_code = fake_server_->HandleCommand(request_content_, |
| - response_code, |
| - &response_); |
| - return (*error_code == 0); |
| + // It is assumed that a POST is being made to /command. |
| + base::Closure callback = base::Bind( |
| + &FakeServerHttpPostProvider::OnPostComplete, base::Unretained(this)); |
| + BrowserThread::PostTask(BrowserThread::UI, |
|
rlarocque
2014/04/22 18:22:22
If this code is to live in sync/test, then I'm not
pval...(no longer on Chromium)
2014/04/24 01:08:53
Done.
|
| + FROM_HERE, |
| + base::Bind(&FakeServer::HandleCommand, |
| + base::Unretained(fake_server_), |
| + base::ConstRef(request_content_), |
| + base::ConstRef(callback), |
| + error_code, |
| + response_code, |
| + &response_)); |
| + const int kTimeoutSecs = 5; |
| + bool signaled = post_complete_.TimedWait( |
| + base::TimeDelta::FromSeconds(kTimeoutSecs)); |
| + return signaled && *error_code == 0; |
| } |
| int FakeServerHttpPostProvider::GetResponseContentLength() const { |