Index: net/socket/client_socket_pool_base_unittest.cc |
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc |
index a694a6f9befc9a703e6e28dde8e4949ba57f390f..4b10cdba13880604741b5425622ece2ecbe5eeae 100644 |
--- a/net/socket/client_socket_pool_base_unittest.cc |
+++ b/net/socket/client_socket_pool_base_unittest.cc |
@@ -310,8 +310,13 @@ class TestClientSocketPool : public ClientSocketPool { |
virtual void ReleaseSocket( |
const std::string& group_name, |
- ClientSocket* socket) { |
- base_.ReleaseSocket(group_name, socket); |
+ ClientSocket* socket, |
+ int id) { |
+ base_.ReleaseSocket(group_name, socket, id); |
+ } |
+ |
+ virtual void Flush() { |
+ base_.Flush(); |
} |
virtual void CloseIdleSockets() { |
@@ -1660,6 +1665,30 @@ TEST_F(ClientSocketPoolBaseTest, CallbackThatReleasesPool) { |
callback.WaitForResult(); |
} |
+TEST_F(ClientSocketPoolBaseTest, DoNotReuseSocketAfterFlush) { |
+ CreatePool(kDefaultMaxSockets, kDefaultMaxSocketsPerGroup); |
+ connect_job_factory_->set_job_type(TestConnectJob::kMockPendingJob); |
+ |
+ ClientSocketHandle handle; |
+ TestCompletionCallback callback; |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ InitHandle(&handle, "a", kDefaultPriority, |
+ &callback, pool_, BoundNetLog())); |
+ EXPECT_EQ(OK, callback.WaitForResult()); |
+ EXPECT_EQ(ClientSocketHandle::UNUSED, handle.reuse_type()); |
+ |
+ pool_->Flush(); |
+ |
+ handle.Reset(); |
+ MessageLoop::current()->RunAllPending(); |
+ |
+ EXPECT_EQ(ERR_IO_PENDING, |
+ InitHandle(&handle, "a", kDefaultPriority, |
+ &callback, pool_, BoundNetLog())); |
+ EXPECT_EQ(OK, callback.WaitForResult()); |
+ EXPECT_EQ(ClientSocketHandle::UNUSED, handle.reuse_type()); |
+} |
+ |
} // namespace |
} // namespace net |