| Index: sync/internal_api/syncapi_server_connection_manager_unittest.cc
|
| diff --git a/sync/internal_api/syncapi_server_connection_manager_unittest.cc b/sync/internal_api/syncapi_server_connection_manager_unittest.cc
|
| index 950cd35bc1d1e75a83d98c85044eed4ec0ebeb12..18177de4051d892f624c47e09c3cfbb3c133f63b 100644
|
| --- a/sync/internal_api/syncapi_server_connection_manager_unittest.cc
|
| +++ b/sync/internal_api/syncapi_server_connection_manager_unittest.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/threading/thread.h"
|
| #include "base/time/time.h"
|
| #include "net/base/net_errors.h"
|
| +#include "sync/internal_api/public/base/cancelation_signal.h"
|
| #include "sync/internal_api/public/http_post_provider_factory.h"
|
| #include "sync/internal_api/public/http_post_provider_interface.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -67,14 +68,34 @@ class BlockingHttpPostFactory : public HttpPostProviderFactory {
|
|
|
| } // namespace
|
|
|
| +// Ask the ServerConnectionManager to stop before it is created.
|
| +TEST(SyncAPIServerConnectionManagerTest, VeryEarlyAbortPost) {
|
| + CancelationSignal signal;
|
| + signal.RequestStop();
|
| + SyncAPIServerConnectionManager server(
|
| + "server", 0, true, false, new BlockingHttpPostFactory(), &signal);
|
| +
|
| + ServerConnectionManager::PostBufferParams params;
|
| + ScopedServerStatusWatcher watcher(&server, ¶ms.response);
|
| +
|
| + bool result = server.PostBufferToPath(
|
| + ¶ms, "/testpath", "testauth", &watcher);
|
| +
|
| + EXPECT_FALSE(result);
|
| + EXPECT_EQ(HttpResponse::CONNECTION_UNAVAILABLE,
|
| + params.response.server_status);
|
| +}
|
| +
|
| +// Ask the ServerConnectionManager to stop before its first request is made.
|
| TEST(SyncAPIServerConnectionManagerTest, EarlyAbortPost) {
|
| + CancelationSignal signal;
|
| SyncAPIServerConnectionManager server(
|
| - "server", 0, true, false, new BlockingHttpPostFactory());
|
| + "server", 0, true, false, new BlockingHttpPostFactory(), &signal);
|
|
|
| ServerConnectionManager::PostBufferParams params;
|
| ScopedServerStatusWatcher watcher(&server, ¶ms.response);
|
|
|
| - server.TerminateAllIO();
|
| + signal.RequestStop();
|
| bool result = server.PostBufferToPath(
|
| ¶ms, "/testpath", "testauth", &watcher);
|
|
|
| @@ -83,9 +104,11 @@ TEST(SyncAPIServerConnectionManagerTest, EarlyAbortPost) {
|
| params.response.server_status);
|
| }
|
|
|
| +// Ask the ServerConnectionManager to stop during a request.
|
| TEST(SyncAPIServerConnectionManagerTest, AbortPost) {
|
| + CancelationSignal signal;
|
| SyncAPIServerConnectionManager server(
|
| - "server", 0, true, false, new BlockingHttpPostFactory());
|
| + "server", 0, true, false, new BlockingHttpPostFactory(), &signal);
|
|
|
| ServerConnectionManager::PostBufferParams params;
|
| ScopedServerStatusWatcher watcher(&server, ¶ms.response);
|
| @@ -94,8 +117,8 @@ TEST(SyncAPIServerConnectionManagerTest, AbortPost) {
|
| ASSERT_TRUE(abort_thread.Start());
|
| abort_thread.message_loop()->PostDelayedTask(
|
| FROM_HERE,
|
| - base::Bind(&ServerConnectionManager::TerminateAllIO,
|
| - base::Unretained(&server)),
|
| + base::Bind(&CancelationSignal::RequestStop,
|
| + base::Unretained(&signal)),
|
| TestTimeouts::tiny_timeout());
|
|
|
| bool result = server.PostBufferToPath(
|
|
|