OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | 241 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); |
242 | 242 |
243 CreateDeterministicNetworkSession(); | 243 CreateDeterministicNetworkSession(); |
244 | 244 |
245 scoped_refptr<SpdySession> session = CreateInitializedSession(); | 245 scoped_refptr<SpdySession> session = CreateInitializedSession(); |
246 | 246 |
247 EXPECT_EQ(3, session->GetProtocolVersion()); | 247 EXPECT_EQ(3, session->GetProtocolVersion()); |
248 | 248 |
249 GURL url("http://www.google.com"); | 249 GURL url("http://www.google.com"); |
250 base::WeakPtr<SpdyStream> spdy_stream1 = | 250 base::WeakPtr<SpdyStream> spdy_stream1 = |
251 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 251 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
252 session, url, MEDIUM, BoundNetLog()); | 252 session, url, MEDIUM, BoundNetLog()); |
| 253 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 254 spdy_stream1->SetDelegate(&delegate1); |
253 | 255 |
254 base::WeakPtr<SpdyStream> spdy_stream2 = | 256 base::WeakPtr<SpdyStream> spdy_stream2 = |
255 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 257 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
256 session, url, MEDIUM, BoundNetLog()); | 258 session, url, MEDIUM, BoundNetLog()); |
| 259 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 260 spdy_stream2->SetDelegate(&delegate2); |
257 | 261 |
258 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock); | 262 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock); |
259 (*headers)[":method"] = "GET"; | 263 (*headers)[":method"] = "GET"; |
260 (*headers)[":scheme"] = url.scheme(); | 264 (*headers)[":scheme"] = url.scheme(); |
261 (*headers)[":host"] = url.host(); | 265 (*headers)[":host"] = url.host(); |
262 (*headers)[":path"] = url.path(); | 266 (*headers)[":path"] = url.path(); |
263 (*headers)[":version"] = "HTTP/1.1"; | 267 (*headers)[":version"] = "HTTP/1.1"; |
264 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock); | 268 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock); |
265 *headers2 = *headers; | 269 *headers2 = *headers; |
266 | 270 |
(...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1310 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | 1314 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); |
1311 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 1315 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
1312 | 1316 |
1313 CreateNetworkSession(); | 1317 CreateNetworkSession(); |
1314 | 1318 |
1315 scoped_refptr<SpdySession> session = CreateInitializedSession(); | 1319 scoped_refptr<SpdySession> session = CreateInitializedSession(); |
1316 | 1320 |
1317 GURL url("http://www.google.com"); | 1321 GURL url("http://www.google.com"); |
1318 | 1322 |
1319 base::WeakPtr<SpdyStream> spdy_stream1 = | 1323 base::WeakPtr<SpdyStream> spdy_stream1 = |
1320 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1324 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1321 session, url, LOWEST, BoundNetLog()); | 1325 session, url, LOWEST, BoundNetLog()); |
1322 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1326 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1323 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1327 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1324 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 1328 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
1325 spdy_stream1->SetDelegate(&delegate1); | 1329 spdy_stream1->SetDelegate(&delegate1); |
1326 | 1330 |
1327 base::WeakPtr<SpdyStream> spdy_stream2 = | 1331 base::WeakPtr<SpdyStream> spdy_stream2 = |
1328 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1332 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1329 session, url, HIGHEST, BoundNetLog()); | 1333 session, url, HIGHEST, BoundNetLog()); |
1330 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1334 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1331 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1335 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1332 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1336 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
1333 spdy_stream2->SetDelegate(&delegate2); | 1337 spdy_stream2->SetDelegate(&delegate2); |
1334 | 1338 |
1335 scoped_ptr<SpdyHeaderBlock> headers( | 1339 scoped_ptr<SpdyHeaderBlock> headers( |
1336 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 1340 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
1337 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1341 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
1338 EXPECT_TRUE(spdy_stream1->HasUrl()); | 1342 EXPECT_TRUE(spdy_stream1->HasUrl()); |
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2356 | 2360 |
2357 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | 2361 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); |
2358 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | 2362 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); |
2359 | 2363 |
2360 CreateDeterministicNetworkSession(); | 2364 CreateDeterministicNetworkSession(); |
2361 | 2365 |
2362 scoped_refptr<SpdySession> session = CreateInitializedSession(); | 2366 scoped_refptr<SpdySession> session = CreateInitializedSession(); |
2363 | 2367 |
2364 GURL url1("http://www.google.com"); | 2368 GURL url1("http://www.google.com"); |
2365 base::WeakPtr<SpdyStream> spdy_stream1 = | 2369 base::WeakPtr<SpdyStream> spdy_stream1 = |
2366 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2370 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2367 session, url1, MEDIUM, BoundNetLog()); | 2371 session, url1, MEDIUM, BoundNetLog()); |
| 2372 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2373 spdy_stream1->SetDelegate(&delegate1); |
2368 session = NULL; | 2374 session = NULL; |
2369 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2375 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2370 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2376 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2371 | 2377 |
2372 scoped_ptr<SpdyHeaderBlock> headers1( | 2378 scoped_ptr<SpdyHeaderBlock> headers1( |
2373 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2379 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
2374 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2380 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); |
2375 EXPECT_TRUE(spdy_stream1->HasUrl()); | 2381 EXPECT_TRUE(spdy_stream1->HasUrl()); |
2376 | 2382 |
2377 // Run until 1st read. | 2383 // Run until 1st read. |
(...skipping 1309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3687 EXPECT_EQ( | 3693 EXPECT_EQ( |
3688 OK, | 3694 OK, |
3689 InitializeSession(http_session_.get(), session1.get(), | 3695 InitializeSession(http_session_.get(), session1.get(), |
3690 key1.host_port_pair())); | 3696 key1.host_port_pair())); |
3691 EXPECT_FALSE(pool->IsStalled()); | 3697 EXPECT_FALSE(pool->IsStalled()); |
3692 | 3698 |
3693 // Create a stream using the session, and send a request. | 3699 // Create a stream using the session, and send a request. |
3694 | 3700 |
3695 TestCompletionCallback callback1; | 3701 TestCompletionCallback callback1; |
3696 base::WeakPtr<SpdyStream> spdy_stream1 = | 3702 base::WeakPtr<SpdyStream> spdy_stream1 = |
3697 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3703 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
3698 session1, url1, DEFAULT_PRIORITY, | 3704 session1, url1, DEFAULT_PRIORITY, |
3699 BoundNetLog()); | 3705 BoundNetLog()); |
3700 ASSERT_TRUE(spdy_stream1.get()); | 3706 ASSERT_TRUE(spdy_stream1.get()); |
| 3707 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 3708 spdy_stream1->SetDelegate(&delegate1); |
3701 | 3709 |
3702 scoped_ptr<SpdyHeaderBlock> headers1( | 3710 scoped_ptr<SpdyHeaderBlock> headers1( |
3703 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 3711 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
3704 EXPECT_EQ(ERR_IO_PENDING, | 3712 EXPECT_EQ(ERR_IO_PENDING, |
3705 spdy_stream1->SendRequestHeaders( | 3713 spdy_stream1->SendRequestHeaders( |
3706 headers1.Pass(), NO_MORE_DATA_TO_SEND)); | 3714 headers1.Pass(), NO_MORE_DATA_TO_SEND)); |
3707 EXPECT_TRUE(spdy_stream1->HasUrl()); | 3715 EXPECT_TRUE(spdy_stream1->HasUrl()); |
3708 | 3716 |
3709 base::MessageLoop::current()->RunUntilIdle(); | 3717 base::MessageLoop::current()->RunUntilIdle(); |
3710 | 3718 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3772 spdy_session_pool_->Remove(session_privacy_enabled); | 3780 spdy_session_pool_->Remove(session_privacy_enabled); |
3773 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); | 3781 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); |
3774 EXPECT_TRUE(spdy_session_pool_->HasSession(key_privacy_disabled)); | 3782 EXPECT_TRUE(spdy_session_pool_->HasSession(key_privacy_disabled)); |
3775 | 3783 |
3776 spdy_session_pool_->Remove(session_privacy_disabled); | 3784 spdy_session_pool_->Remove(session_privacy_disabled); |
3777 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); | 3785 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_enabled)); |
3778 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_disabled)); | 3786 EXPECT_FALSE(spdy_session_pool_->HasSession(key_privacy_disabled)); |
3779 } | 3787 } |
3780 | 3788 |
3781 } // namespace net | 3789 } // namespace net |
OLD | NEW |