| Index: net/socket_stream/socket_stream_unittest.cc
|
| ===================================================================
|
| --- net/socket_stream/socket_stream_unittest.cc (revision 207753)
|
| +++ net/socket_stream/socket_stream_unittest.cc (working copy)
|
| @@ -924,4 +924,66 @@
|
| EXPECT_EQ(OK, test_callback.WaitForResult());
|
| }
|
|
|
| +// A test for the WeakPtr workaround patch which should be deleted
|
| +// in the future.
|
| +TEST_F(SocketStreamTest, ContextDestroyedBeforeDoBeforeConnect) {
|
| + TestCompletionCallback test_callback;
|
| +
|
| + scoped_ptr<SocketStreamEventRecorder> delegate(
|
| + new SocketStreamEventRecorder(test_callback.callback()));
|
| +
|
| + scoped_ptr<TestURLRequestContext> context(new TestURLRequestContext);
|
| + TestSocketStreamNetworkDelegate network_delegate;
|
| + network_delegate.SetBeforeConnectResult(OK);
|
| + context->set_network_delegate(&network_delegate);
|
| +
|
| + scoped_refptr<SocketStream> socket_stream(
|
| + new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
|
| +
|
| + socket_stream->set_context(context.get());
|
| +
|
| + socket_stream->Connect();
|
| + context.reset();
|
| +
|
| + ASSERT_EQ(0U, delegate->GetSeenEvents().size());
|
| +
|
| + test_callback.WaitForResult();
|
| +
|
| + const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
|
| + ASSERT_EQ(1U, events.size());
|
| +
|
| + EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[0].event_type);
|
| +}
|
| +
|
| +// A test for the WeakPtr workaround patch which should be deleted
|
| +// in the future.
|
| +TEST_F(SocketStreamTest, SocketStreamResetBeforeDoBeforeConnect) {
|
| + TestCompletionCallback test_callback;
|
| +
|
| + scoped_ptr<SocketStreamEventRecorder> delegate(
|
| + new SocketStreamEventRecorder(test_callback.callback()));
|
| +
|
| + scoped_ptr<TestURLRequestContext> context(new TestURLRequestContext);
|
| + TestSocketStreamNetworkDelegate network_delegate;
|
| + network_delegate.SetBeforeConnectResult(OK);
|
| + context->set_network_delegate(&network_delegate);
|
| +
|
| + scoped_refptr<SocketStream> socket_stream(
|
| + new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
|
| +
|
| + socket_stream->set_context(context.get());
|
| +
|
| + socket_stream->Connect();
|
| + socket_stream = NULL;
|
| + context.reset();
|
| +
|
| + ASSERT_EQ(0U, delegate->GetSeenEvents().size());
|
| + test_callback.WaitForResult();
|
| +
|
| + const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
|
| + ASSERT_EQ(1U, events.size());
|
| +
|
| + EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[0].event_type);
|
| +}
|
| +
|
| } // namespace net
|
|
|