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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
231 TEST_P(SpdySessionTest, PendingStreamCancellingAnother) { | 231 TEST_P(SpdySessionTest, PendingStreamCancellingAnother) { |
232 session_deps_.host_resolver->set_synchronous_mode(true); | 232 session_deps_.host_resolver->set_synchronous_mode(true); |
233 | 233 |
234 MockRead reads[] = {MockRead(ASYNC, 0, 0), }; | 234 MockRead reads[] = {MockRead(ASYNC, 0, 0), }; |
235 | 235 |
236 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 236 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
237 MockConnect connect_data(SYNCHRONOUS, OK); | 237 MockConnect connect_data(SYNCHRONOUS, OK); |
238 data.set_connect_data(connect_data); | 238 data.set_connect_data(connect_data); |
239 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 239 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
240 | 240 |
241 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
akalin
2014/01/29 23:26:18
nice cleanup!
| |
242 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
243 | |
244 CreateDeterministicNetworkSession(); | 241 CreateDeterministicNetworkSession(); |
245 | 242 |
246 base::WeakPtr<SpdySession> session = | 243 base::WeakPtr<SpdySession> session = |
247 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 244 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
248 | 245 |
249 // Create the maximum number of concurrent streams. | 246 // Create the maximum number of concurrent streams. |
250 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { | 247 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { |
251 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 248 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
252 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM, BoundNetLog()); | 249 SPDY_BIDIRECTIONAL_STREAM, session, test_url_, MEDIUM, BoundNetLog()); |
253 ASSERT_TRUE(spdy_stream != NULL); | 250 ASSERT_TRUE(spdy_stream != NULL); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
291 | 288 |
292 MockConnect connect_data(SYNCHRONOUS, OK); | 289 MockConnect connect_data(SYNCHRONOUS, OK); |
293 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 290 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
294 MockRead reads[] = { | 291 MockRead reads[] = { |
295 CreateMockRead(*goaway, 0), | 292 CreateMockRead(*goaway, 0), |
296 }; | 293 }; |
297 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 294 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
298 data.set_connect_data(connect_data); | 295 data.set_connect_data(connect_data); |
299 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 296 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
300 | 297 |
301 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
302 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
303 | |
304 CreateDeterministicNetworkSession(); | 298 CreateDeterministicNetworkSession(); |
305 | 299 |
306 base::WeakPtr<SpdySession> session = | 300 base::WeakPtr<SpdySession> session = |
307 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 301 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
308 | 302 |
309 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 303 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
310 | 304 |
311 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 305 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
312 | 306 |
313 // Read and process the GOAWAY frame. | 307 // Read and process the GOAWAY frame. |
(...skipping 11 matching lines...) Expand all Loading... | |
325 | 319 |
326 MockConnect connect_data(SYNCHRONOUS, OK); | 320 MockConnect connect_data(SYNCHRONOUS, OK); |
327 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 321 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
328 MockRead reads[] = { | 322 MockRead reads[] = { |
329 CreateMockRead(*goaway, 0, SYNCHRONOUS), | 323 CreateMockRead(*goaway, 0, SYNCHRONOUS), |
330 }; | 324 }; |
331 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 325 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
332 data.set_connect_data(connect_data); | 326 data.set_connect_data(connect_data); |
333 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 327 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
334 | 328 |
335 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
336 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
337 | |
338 CreateDeterministicNetworkSession(); | 329 CreateDeterministicNetworkSession(); |
339 | 330 |
340 data.StopAfter(1); | 331 data.StopAfter(1); |
341 | 332 |
342 TryCreateInsecureSpdySessionExpectingFailure( | 333 TryCreateInsecureSpdySessionExpectingFailure( |
343 http_session_, key_, ERR_CONNECTION_CLOSED, BoundNetLog()); | 334 http_session_, key_, ERR_CONNECTION_CLOSED, BoundNetLog()); |
344 | 335 |
345 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | 336 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); |
346 } | 337 } |
347 | 338 |
(...skipping 14 matching lines...) Expand all Loading... | |
362 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 353 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
363 MockWrite writes[] = { | 354 MockWrite writes[] = { |
364 CreateMockWrite(*req1, 0), | 355 CreateMockWrite(*req1, 0), |
365 CreateMockWrite(*req2, 1), | 356 CreateMockWrite(*req2, 1), |
366 }; | 357 }; |
367 DeterministicSocketData data(reads, arraysize(reads), | 358 DeterministicSocketData data(reads, arraysize(reads), |
368 writes, arraysize(writes)); | 359 writes, arraysize(writes)); |
369 data.set_connect_data(connect_data); | 360 data.set_connect_data(connect_data); |
370 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 361 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
371 | 362 |
372 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
373 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
374 | |
375 CreateDeterministicNetworkSession(); | 363 CreateDeterministicNetworkSession(); |
376 | 364 |
377 base::WeakPtr<SpdySession> session = | 365 base::WeakPtr<SpdySession> session = |
378 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 366 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
379 | 367 |
380 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 368 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
381 | 369 |
382 GURL url("http://www.google.com"); | 370 GURL url(kDefaultURL); |
383 base::WeakPtr<SpdyStream> spdy_stream1 = | 371 base::WeakPtr<SpdyStream> spdy_stream1 = |
384 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 372 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
385 session, url, MEDIUM, BoundNetLog()); | 373 session, url, MEDIUM, BoundNetLog()); |
386 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 374 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
387 spdy_stream1->SetDelegate(&delegate1); | 375 spdy_stream1->SetDelegate(&delegate1); |
388 | 376 |
389 base::WeakPtr<SpdyStream> spdy_stream2 = | 377 base::WeakPtr<SpdyStream> spdy_stream2 = |
390 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 378 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
391 session, url, MEDIUM, BoundNetLog()); | 379 session, url, MEDIUM, BoundNetLog()); |
392 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 380 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
446 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 434 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
447 MockWrite writes[] = { | 435 MockWrite writes[] = { |
448 CreateMockWrite(*req1, 0), | 436 CreateMockWrite(*req1, 0), |
449 CreateMockWrite(*req2, 1), | 437 CreateMockWrite(*req2, 1), |
450 }; | 438 }; |
451 DeterministicSocketData data(reads, arraysize(reads), | 439 DeterministicSocketData data(reads, arraysize(reads), |
452 writes, arraysize(writes)); | 440 writes, arraysize(writes)); |
453 data.set_connect_data(connect_data); | 441 data.set_connect_data(connect_data); |
454 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 442 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
455 | 443 |
456 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
457 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
458 | |
459 CreateDeterministicNetworkSession(); | 444 CreateDeterministicNetworkSession(); |
460 | 445 |
461 base::WeakPtr<SpdySession> session = | 446 base::WeakPtr<SpdySession> session = |
462 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 447 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
463 | 448 |
464 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 449 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
465 | 450 |
466 GURL url("http://www.google.com"); | 451 GURL url(kDefaultURL); |
467 base::WeakPtr<SpdyStream> spdy_stream1 = | 452 base::WeakPtr<SpdyStream> spdy_stream1 = |
468 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 453 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
469 session, url, MEDIUM, BoundNetLog()); | 454 session, url, MEDIUM, BoundNetLog()); |
470 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 455 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
471 spdy_stream1->SetDelegate(&delegate1); | 456 spdy_stream1->SetDelegate(&delegate1); |
472 | 457 |
473 base::WeakPtr<SpdyStream> spdy_stream2 = | 458 base::WeakPtr<SpdyStream> spdy_stream2 = |
474 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 459 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
475 session, url, MEDIUM, BoundNetLog()); | 460 session, url, MEDIUM, BoundNetLog()); |
476 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 461 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
528 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); | 513 spdy_util_.ConstructSpdyGet(NULL, 0, false, 3, MEDIUM, true)); |
529 MockWrite writes[] = { | 514 MockWrite writes[] = { |
530 CreateMockWrite(*req1, 0), | 515 CreateMockWrite(*req1, 0), |
531 CreateMockWrite(*req2, 1), | 516 CreateMockWrite(*req2, 1), |
532 }; | 517 }; |
533 DeterministicSocketData data(reads, arraysize(reads), | 518 DeterministicSocketData data(reads, arraysize(reads), |
534 writes, arraysize(writes)); | 519 writes, arraysize(writes)); |
535 data.set_connect_data(connect_data); | 520 data.set_connect_data(connect_data); |
536 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 521 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
537 | 522 |
538 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
539 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
540 | |
541 CreateDeterministicNetworkSession(); | 523 CreateDeterministicNetworkSession(); |
542 | 524 |
543 base::WeakPtr<SpdySession> session = | 525 base::WeakPtr<SpdySession> session = |
544 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 526 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
545 | 527 |
546 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 528 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
547 | 529 |
548 GURL url("http://www.google.com"); | 530 GURL url(kDefaultURL); |
549 base::WeakPtr<SpdyStream> spdy_stream1 = | 531 base::WeakPtr<SpdyStream> spdy_stream1 = |
550 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 532 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
551 session, url, MEDIUM, BoundNetLog()); | 533 session, url, MEDIUM, BoundNetLog()); |
552 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 534 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
553 spdy_stream1->SetDelegate(&delegate1); | 535 spdy_stream1->SetDelegate(&delegate1); |
554 | 536 |
555 base::WeakPtr<SpdyStream> spdy_stream2 = | 537 base::WeakPtr<SpdyStream> spdy_stream2 = |
556 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 538 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
557 session, url, MEDIUM, BoundNetLog()); | 539 session, url, MEDIUM, BoundNetLog()); |
558 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 540 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
(...skipping 28 matching lines...) Expand all Loading... | |
587 | 569 |
588 session->CloseSessionOnError(ERR_ABORTED, "Aborting session"); | 570 session->CloseSessionOnError(ERR_ABORTED, "Aborting session"); |
589 | 571 |
590 EXPECT_EQ(NULL, spdy_stream1.get()); | 572 EXPECT_EQ(NULL, spdy_stream1.get()); |
591 EXPECT_TRUE(session == NULL); | 573 EXPECT_TRUE(session == NULL); |
592 } | 574 } |
593 | 575 |
594 // Try to create a stream after receiving a GOAWAY frame. It should | 576 // Try to create a stream after receiving a GOAWAY frame. It should |
595 // fail. | 577 // fail. |
596 TEST_P(SpdySessionTest, CreateStreamAfterGoAway) { | 578 TEST_P(SpdySessionTest, CreateStreamAfterGoAway) { |
597 const char kStreamUrl[] = "http://www.google.com"; | |
598 session_deps_.host_resolver->set_synchronous_mode(true); | 579 session_deps_.host_resolver->set_synchronous_mode(true); |
599 | 580 |
600 MockConnect connect_data(SYNCHRONOUS, OK); | 581 MockConnect connect_data(SYNCHRONOUS, OK); |
601 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 582 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
602 MockRead reads[] = { | 583 MockRead reads[] = { |
603 CreateMockRead(*goaway, 1), | 584 CreateMockRead(*goaway, 1), |
604 MockRead(ASYNC, 0, 2) // EOF | 585 MockRead(ASYNC, 0, 2) // EOF |
605 }; | 586 }; |
606 scoped_ptr<SpdyFrame> req( | 587 scoped_ptr<SpdyFrame> req( |
607 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | 588 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); |
608 MockWrite writes[] = { | 589 MockWrite writes[] = { |
609 CreateMockWrite(*req, 0), | 590 CreateMockWrite(*req, 0), |
610 }; | 591 }; |
611 DeterministicSocketData data(reads, arraysize(reads), | 592 DeterministicSocketData data(reads, arraysize(reads), |
612 writes, arraysize(writes)); | 593 writes, arraysize(writes)); |
613 data.set_connect_data(connect_data); | 594 data.set_connect_data(connect_data); |
614 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 595 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
615 | 596 |
616 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
617 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
618 | |
619 CreateDeterministicNetworkSession(); | 597 CreateDeterministicNetworkSession(); |
620 | 598 |
621 base::WeakPtr<SpdySession> session = | 599 base::WeakPtr<SpdySession> session = |
622 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 600 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
623 | 601 |
624 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 602 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
625 | 603 |
626 GURL url(kStreamUrl); | 604 GURL url(kDefaultURL); |
627 base::WeakPtr<SpdyStream> spdy_stream = | 605 base::WeakPtr<SpdyStream> spdy_stream = |
628 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 606 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
629 session, url, MEDIUM, BoundNetLog()); | 607 session, url, MEDIUM, BoundNetLog()); |
630 test::StreamDelegateDoNothing delegate(spdy_stream); | 608 test::StreamDelegateDoNothing delegate(spdy_stream); |
631 spdy_stream->SetDelegate(&delegate); | 609 spdy_stream->SetDelegate(&delegate); |
632 | 610 |
633 scoped_ptr<SpdyHeaderBlock> headers( | 611 scoped_ptr<SpdyHeaderBlock> headers( |
634 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 612 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
635 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 613 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
636 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 614 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
(...skipping 18 matching lines...) Expand all Loading... | |
655 | 633 |
656 // Read and process EOF. | 634 // Read and process EOF. |
657 data.RunFor(1); | 635 data.RunFor(1); |
658 | 636 |
659 EXPECT_TRUE(session == NULL); | 637 EXPECT_TRUE(session == NULL); |
660 } | 638 } |
661 | 639 |
662 // Receiving a SYN_STREAM frame after a GOAWAY frame should result in | 640 // Receiving a SYN_STREAM frame after a GOAWAY frame should result in |
663 // the stream being refused. | 641 // the stream being refused. |
664 TEST_P(SpdySessionTest, SynStreamAfterGoAway) { | 642 TEST_P(SpdySessionTest, SynStreamAfterGoAway) { |
665 const char kStreamUrl[] = "http://www.google.com"; | |
666 session_deps_.host_resolver->set_synchronous_mode(true); | 643 session_deps_.host_resolver->set_synchronous_mode(true); |
667 | 644 |
668 MockConnect connect_data(SYNCHRONOUS, OK); | 645 MockConnect connect_data(SYNCHRONOUS, OK); |
669 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); | 646 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway(1)); |
670 scoped_ptr<SpdyFrame> | 647 scoped_ptr<SpdyFrame> |
671 push(spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); | 648 push(spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kDefaultURL)); |
672 MockRead reads[] = { | 649 MockRead reads[] = { |
673 CreateMockRead(*goaway, 1), | 650 CreateMockRead(*goaway, 1), |
674 CreateMockRead(*push, 2), | 651 CreateMockRead(*push, 2), |
675 MockRead(ASYNC, 0, 4) // EOF | 652 MockRead(ASYNC, 0, 4) // EOF |
676 }; | 653 }; |
677 scoped_ptr<SpdyFrame> req( | 654 scoped_ptr<SpdyFrame> req( |
678 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | 655 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); |
679 scoped_ptr<SpdyFrame> rst( | 656 scoped_ptr<SpdyFrame> rst( |
680 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 657 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
681 MockWrite writes[] = { | 658 MockWrite writes[] = { |
682 CreateMockWrite(*req, 0), | 659 CreateMockWrite(*req, 0), |
683 CreateMockWrite(*rst, 3) | 660 CreateMockWrite(*rst, 3) |
684 }; | 661 }; |
685 DeterministicSocketData data(reads, arraysize(reads), | 662 DeterministicSocketData data(reads, arraysize(reads), |
686 writes, arraysize(writes)); | 663 writes, arraysize(writes)); |
687 data.set_connect_data(connect_data); | 664 data.set_connect_data(connect_data); |
688 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 665 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
689 | 666 |
690 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
691 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
692 | |
693 CreateDeterministicNetworkSession(); | 667 CreateDeterministicNetworkSession(); |
694 | 668 |
695 base::WeakPtr<SpdySession> session = | 669 base::WeakPtr<SpdySession> session = |
696 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 670 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
697 | 671 |
698 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | 672 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); |
699 | 673 |
700 GURL url(kStreamUrl); | 674 GURL url(kDefaultURL); |
701 base::WeakPtr<SpdyStream> spdy_stream = | 675 base::WeakPtr<SpdyStream> spdy_stream = |
702 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 676 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
703 session, url, MEDIUM, BoundNetLog()); | 677 session, url, MEDIUM, BoundNetLog()); |
704 test::StreamDelegateDoNothing delegate(spdy_stream); | 678 test::StreamDelegateDoNothing delegate(spdy_stream); |
705 spdy_stream->SetDelegate(&delegate); | 679 spdy_stream->SetDelegate(&delegate); |
706 | 680 |
707 scoped_ptr<SpdyHeaderBlock> headers( | 681 scoped_ptr<SpdyHeaderBlock> headers( |
708 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 682 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
709 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 683 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
710 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 684 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
(...skipping 10 matching lines...) Expand all Loading... | |
721 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | 695 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); |
722 EXPECT_TRUE(session->IsStreamActive(1)); | 696 EXPECT_TRUE(session->IsStreamActive(1)); |
723 | 697 |
724 // Read and process the SYN_STREAM frame, the subsequent RST_STREAM, | 698 // Read and process the SYN_STREAM frame, the subsequent RST_STREAM, |
725 // and EOF. | 699 // and EOF. |
726 data.RunFor(3); | 700 data.RunFor(3); |
727 | 701 |
728 EXPECT_TRUE(session == NULL); | 702 EXPECT_TRUE(session == NULL); |
729 } | 703 } |
730 | 704 |
705 // A session observing a network change with active streams should close | |
706 // when the last active stream is closed. | |
707 TEST_P(SpdySessionTest, NetworkChangeWithActiveStreams) { | |
708 session_deps_.host_resolver->set_synchronous_mode(true); | |
709 | |
710 MockConnect connect_data(SYNCHRONOUS, OK); | |
711 MockRead reads[] = { | |
712 MockRead(ASYNC, 0, 1) // EOF | |
713 }; | |
714 scoped_ptr<SpdyFrame> req1( | |
715 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, MEDIUM, true)); | |
716 MockWrite writes[] = { | |
717 CreateMockWrite(*req1, 0), | |
718 }; | |
719 DeterministicSocketData data(reads, arraysize(reads), | |
720 writes, arraysize(writes)); | |
721 data.set_connect_data(connect_data); | |
722 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | |
723 | |
724 CreateDeterministicNetworkSession(); | |
725 | |
726 base::WeakPtr<SpdySession> session = | |
727 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | |
728 | |
729 EXPECT_EQ(spdy_util_.spdy_version(), session->GetProtocolVersion()); | |
730 | |
731 base::WeakPtr<SpdyStream> spdy_stream = | |
732 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session, | |
733 GURL(kDefaultURL), MEDIUM, BoundNetLog()); | |
734 test::StreamDelegateDoNothing delegate(spdy_stream); | |
735 spdy_stream->SetDelegate(&delegate); | |
736 | |
737 scoped_ptr<SpdyHeaderBlock> headers( | |
738 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | |
739 | |
740 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | |
741 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | |
742 | |
743 data.RunFor(1); | |
744 | |
745 EXPECT_EQ(1u, spdy_stream->stream_id()); | |
746 | |
747 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | |
748 | |
749 spdy_session_pool_->OnIPAddressChanged(); | |
750 | |
751 // The SpdySessionPool behavior differs based on how the OSs reacts to | |
752 // network changes, see comment in SpdySessionPool::OnIPAddressChanged(). | |
akalin
2014/01/29 23:26:18
change , to ;
| |
753 #if defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_IOS) | |
754 // For OSs where the TCP connections will close upon relevant network | |
755 // changes, SpdySessionPool doesn't need to force them to close, so in these | |
756 // cases verify the session has become unavailable but remains open and the | |
757 // pre-existing stream is still active. | |
758 EXPECT_FALSE(HasSpdySession(spdy_session_pool_, key_)); | |
759 | |
760 EXPECT_FALSE(session->IsClosed()); | |
761 | |
762 EXPECT_TRUE(session->IsStreamActive(1)); | |
763 | |
764 // Should close the session. | |
765 spdy_stream->Close(); | |
766 #endif | |
767 EXPECT_EQ(NULL, spdy_stream.get()); | |
768 | |
769 EXPECT_TRUE(session == NULL); | |
770 } | |
771 | |
731 TEST_P(SpdySessionTest, ClientPing) { | 772 TEST_P(SpdySessionTest, ClientPing) { |
732 session_deps_.enable_ping = true; | 773 session_deps_.enable_ping = true; |
733 session_deps_.host_resolver->set_synchronous_mode(true); | 774 session_deps_.host_resolver->set_synchronous_mode(true); |
734 | 775 |
735 MockConnect connect_data(SYNCHRONOUS, OK); | 776 MockConnect connect_data(SYNCHRONOUS, OK); |
736 scoped_ptr<SpdyFrame> read_ping(spdy_util_.ConstructSpdyPing(1)); | 777 scoped_ptr<SpdyFrame> read_ping(spdy_util_.ConstructSpdyPing(1)); |
737 MockRead reads[] = { | 778 MockRead reads[] = { |
738 CreateMockRead(*read_ping, 1), | 779 CreateMockRead(*read_ping, 1), |
739 MockRead(ASYNC, 0, 0, 2) // EOF | 780 MockRead(ASYNC, 0, 0, 2) // EOF |
740 }; | 781 }; |
741 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); | 782 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); |
742 MockWrite writes[] = { | 783 MockWrite writes[] = { |
743 CreateMockWrite(*write_ping, 0), | 784 CreateMockWrite(*write_ping, 0), |
744 }; | 785 }; |
745 DeterministicSocketData data( | 786 DeterministicSocketData data( |
746 reads, arraysize(reads), writes, arraysize(writes)); | 787 reads, arraysize(reads), writes, arraysize(writes)); |
747 data.set_connect_data(connect_data); | 788 data.set_connect_data(connect_data); |
748 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 789 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
749 | 790 |
750 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
751 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
752 | |
753 CreateDeterministicNetworkSession(); | 791 CreateDeterministicNetworkSession(); |
754 | 792 |
755 base::WeakPtr<SpdySession> session = | 793 base::WeakPtr<SpdySession> session = |
756 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 794 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
757 | 795 |
758 base::WeakPtr<SpdyStream> spdy_stream1 = | 796 base::WeakPtr<SpdyStream> spdy_stream1 = |
759 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 797 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
760 session, test_url_, MEDIUM, BoundNetLog()); | 798 session, test_url_, MEDIUM, BoundNetLog()); |
761 ASSERT_TRUE(spdy_stream1.get() != NULL); | 799 ASSERT_TRUE(spdy_stream1.get() != NULL); |
762 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 800 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
798 }; | 836 }; |
799 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(2)); | 837 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(2)); |
800 MockWrite writes[] = { | 838 MockWrite writes[] = { |
801 CreateMockWrite(*write_ping), | 839 CreateMockWrite(*write_ping), |
802 }; | 840 }; |
803 StaticSocketDataProvider data( | 841 StaticSocketDataProvider data( |
804 reads, arraysize(reads), writes, arraysize(writes)); | 842 reads, arraysize(reads), writes, arraysize(writes)); |
805 data.set_connect_data(connect_data); | 843 data.set_connect_data(connect_data); |
806 session_deps_.socket_factory->AddSocketDataProvider(&data); | 844 session_deps_.socket_factory->AddSocketDataProvider(&data); |
807 | 845 |
808 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
809 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
810 | |
811 CreateNetworkSession(); | 846 CreateNetworkSession(); |
812 | 847 |
813 base::WeakPtr<SpdySession> session = | 848 base::WeakPtr<SpdySession> session = |
814 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 849 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
815 | 850 |
816 base::WeakPtr<SpdyStream> spdy_stream1 = | 851 base::WeakPtr<SpdyStream> spdy_stream1 = |
817 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 852 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
818 session, test_url_, MEDIUM, BoundNetLog()); | 853 session, test_url_, MEDIUM, BoundNetLog()); |
819 ASSERT_TRUE(spdy_stream1.get() != NULL); | 854 ASSERT_TRUE(spdy_stream1.get() != NULL); |
820 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 855 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
(...skipping 29 matching lines...) Expand all Loading... | |
850 MockRead(ASYNC, 0, 2) // EOF | 885 MockRead(ASYNC, 0, 2) // EOF |
851 }; | 886 }; |
852 | 887 |
853 session_deps_.host_resolver->set_synchronous_mode(true); | 888 session_deps_.host_resolver->set_synchronous_mode(true); |
854 | 889 |
855 DeterministicSocketData data(reads, arraysize(reads), | 890 DeterministicSocketData data(reads, arraysize(reads), |
856 writes, arraysize(writes)); | 891 writes, arraysize(writes)); |
857 data.set_connect_data(connect_data); | 892 data.set_connect_data(connect_data); |
858 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 893 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
859 | 894 |
860 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
861 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
862 | |
863 CreateDeterministicNetworkSession(); | 895 CreateDeterministicNetworkSession(); |
864 | 896 |
865 base::WeakPtr<SpdySession> session = | 897 base::WeakPtr<SpdySession> session = |
866 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 898 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
867 | 899 |
868 GURL url("http://www.google.com"); | 900 GURL url(kDefaultURL); |
869 base::WeakPtr<SpdyStream> spdy_stream = | 901 base::WeakPtr<SpdyStream> spdy_stream = |
870 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 902 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
871 session, url, LOWEST, BoundNetLog()); | 903 session, url, LOWEST, BoundNetLog()); |
872 test::StreamDelegateDoNothing delegate(spdy_stream); | 904 test::StreamDelegateDoNothing delegate(spdy_stream); |
873 spdy_stream->SetDelegate(&delegate); | 905 spdy_stream->SetDelegate(&delegate); |
874 | 906 |
875 scoped_ptr<SpdyHeaderBlock> headers( | 907 scoped_ptr<SpdyHeaderBlock> headers( |
876 spdy_util_.ConstructGetHeaderBlock(url.spec())); | 908 spdy_util_.ConstructGetHeaderBlock(url.spec())); |
877 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 909 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); |
878 | 910 |
879 // Shift time so that a ping will be sent out. | 911 // Shift time so that a ping will be sent out. |
880 g_time_delta = base::TimeDelta::FromSeconds(11); | 912 g_time_delta = base::TimeDelta::FromSeconds(11); |
881 | 913 |
882 data.RunFor(2); | 914 data.RunFor(2); |
883 | 915 |
884 session->CloseSessionOnError(ERR_ABORTED, "Aborting"); | 916 session->CloseSessionOnError(ERR_ABORTED, "Aborting"); |
885 } | 917 } |
886 | 918 |
887 TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { | 919 TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { |
888 session_deps_.host_resolver->set_synchronous_mode(true); | 920 session_deps_.host_resolver->set_synchronous_mode(true); |
889 | 921 |
890 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
891 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
892 session_deps_.time_func = TheNearFuture; | 922 session_deps_.time_func = TheNearFuture; |
893 | 923 |
894 CreateNetworkSession(); | 924 CreateNetworkSession(); |
895 | 925 |
896 base::WeakPtr<SpdySession> session = | 926 base::WeakPtr<SpdySession> session = |
897 CreateFakeSpdySession(spdy_session_pool_, key_); | 927 CreateFakeSpdySession(spdy_session_pool_, key_); |
898 | 928 |
899 session->buffered_spdy_framer_.reset( | 929 session->buffered_spdy_framer_.reset( |
900 new BufferedSpdyFramer(spdy_util_.spdy_version(), false)); | 930 new BufferedSpdyFramer(spdy_util_.spdy_version(), false)); |
901 | 931 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
951 | 981 |
952 MockConnect connect_data(SYNCHRONOUS, OK); | 982 MockConnect connect_data(SYNCHRONOUS, OK); |
953 MockRead reads[] = { | 983 MockRead reads[] = { |
954 MockRead(ASYNC, 0, 0, 0) // EOF | 984 MockRead(ASYNC, 0, 0, 0) // EOF |
955 }; | 985 }; |
956 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); | 986 scoped_ptr<SpdyFrame> write_ping(spdy_util_.ConstructSpdyPing(1)); |
957 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 987 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
958 data.set_connect_data(connect_data); | 988 data.set_connect_data(connect_data); |
959 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 989 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
960 | 990 |
961 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
962 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
963 | |
964 CreateDeterministicNetworkSession(); | 991 CreateDeterministicNetworkSession(); |
965 | 992 |
966 base::WeakPtr<SpdySession> session = | 993 base::WeakPtr<SpdySession> session = |
967 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 994 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
968 | 995 |
969 base::WeakPtr<SpdyStream> spdy_stream1 = | 996 base::WeakPtr<SpdyStream> spdy_stream1 = |
970 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 997 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
971 session, test_url_, MEDIUM, BoundNetLog()); | 998 session, test_url_, MEDIUM, BoundNetLog()); |
972 ASSERT_TRUE(spdy_stream1.get() != NULL); | 999 ASSERT_TRUE(spdy_stream1.get() != NULL); |
973 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); | 1000 test::StreamDelegateSendImmediate delegate(spdy_stream1, NULL); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1018 MockRead reads[] = { | 1045 MockRead reads[] = { |
1019 CreateMockRead(*settings_frame, 0), | 1046 CreateMockRead(*settings_frame, 0), |
1020 MockRead(ASYNC, 0, 1), | 1047 MockRead(ASYNC, 0, 1), |
1021 }; | 1048 }; |
1022 | 1049 |
1023 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1050 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
1024 MockConnect connect_data(SYNCHRONOUS, OK); | 1051 MockConnect connect_data(SYNCHRONOUS, OK); |
1025 data.set_connect_data(connect_data); | 1052 data.set_connect_data(connect_data); |
1026 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1053 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1027 | 1054 |
1028 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1029 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1030 | |
1031 CreateDeterministicNetworkSession(); | 1055 CreateDeterministicNetworkSession(); |
1032 | 1056 |
1033 base::WeakPtr<SpdySession> session = | 1057 base::WeakPtr<SpdySession> session = |
1034 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1058 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1035 | 1059 |
1036 // Create the maximum number of concurrent streams. | 1060 // Create the maximum number of concurrent streams. |
1037 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { | 1061 for (size_t i = 0; i < kInitialMaxConcurrentStreams; ++i) { |
1038 base::WeakPtr<SpdyStream> spdy_stream = | 1062 base::WeakPtr<SpdyStream> spdy_stream = |
1039 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1063 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1040 session, test_url_, MEDIUM, BoundNetLog()); | 1064 session, test_url_, MEDIUM, BoundNetLog()); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1075 MockRead reads[] = { | 1099 MockRead reads[] = { |
1076 CreateMockRead(*settings_frame, 0), | 1100 CreateMockRead(*settings_frame, 0), |
1077 MockRead(ASYNC, 0, 1), | 1101 MockRead(ASYNC, 0, 1), |
1078 }; | 1102 }; |
1079 | 1103 |
1080 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 1104 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
1081 MockConnect connect_data(SYNCHRONOUS, OK); | 1105 MockConnect connect_data(SYNCHRONOUS, OK); |
1082 data.set_connect_data(connect_data); | 1106 data.set_connect_data(connect_data); |
1083 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1107 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1084 | 1108 |
1085 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1086 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1087 | |
1088 CreateDeterministicNetworkSession(); | 1109 CreateDeterministicNetworkSession(); |
1089 | 1110 |
1090 // Initialize the SpdySetting with the default. | 1111 // Initialize the SpdySetting with the default. |
1091 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1112 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1092 test_host_port_pair_, | 1113 test_host_port_pair_, |
1093 SETTINGS_MAX_CONCURRENT_STREAMS, | 1114 SETTINGS_MAX_CONCURRENT_STREAMS, |
1094 SETTINGS_FLAG_PLEASE_PERSIST, | 1115 SETTINGS_FLAG_PLEASE_PERSIST, |
1095 kInitialMaxConcurrentStreams); | 1116 kInitialMaxConcurrentStreams); |
1096 | 1117 |
1097 EXPECT_FALSE( | 1118 EXPECT_FALSE( |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1146 MockRead reads[] = { | 1167 MockRead reads[] = { |
1147 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 1168 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
1148 }; | 1169 }; |
1149 | 1170 |
1150 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1171 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1151 MockConnect connect_data(SYNCHRONOUS, OK); | 1172 MockConnect connect_data(SYNCHRONOUS, OK); |
1152 | 1173 |
1153 data.set_connect_data(connect_data); | 1174 data.set_connect_data(connect_data); |
1154 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1175 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1155 | 1176 |
1156 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1157 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1158 | |
1159 CreateNetworkSession(); | 1177 CreateNetworkSession(); |
1160 | 1178 |
1161 // Initialize the SpdySetting with 1 max concurrent streams. | 1179 // Initialize the SpdySetting with 1 max concurrent streams. |
1162 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1180 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1163 test_host_port_pair_, | 1181 test_host_port_pair_, |
1164 SETTINGS_MAX_CONCURRENT_STREAMS, | 1182 SETTINGS_MAX_CONCURRENT_STREAMS, |
1165 SETTINGS_FLAG_PLEASE_PERSIST, | 1183 SETTINGS_FLAG_PLEASE_PERSIST, |
1166 1); | 1184 1); |
1167 | 1185 |
1168 base::WeakPtr<SpdySession> session = | 1186 base::WeakPtr<SpdySession> session = |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1249 spdy_util_.ConstructSpdySettings(server_settings)); | 1267 spdy_util_.ConstructSpdySettings(server_settings)); |
1250 writes.push_back(CreateMockWrite(*server_settings_frame)); | 1268 writes.push_back(CreateMockWrite(*server_settings_frame)); |
1251 | 1269 |
1252 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; | 1270 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; |
1253 | 1271 |
1254 StaticSocketDataProvider data(reads, arraysize(reads), | 1272 StaticSocketDataProvider data(reads, arraysize(reads), |
1255 vector_as_array(&writes), writes.size()); | 1273 vector_as_array(&writes), writes.size()); |
1256 data.set_connect_data(connect_data); | 1274 data.set_connect_data(connect_data); |
1257 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1275 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1258 | 1276 |
1259 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1260 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1261 | |
1262 CreateNetworkSession(); | 1277 CreateNetworkSession(); |
1263 | 1278 |
1264 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1279 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
1265 test_host_port_pair_, | 1280 test_host_port_pair_, |
1266 SETTINGS_MAX_CONCURRENT_STREAMS, | 1281 SETTINGS_MAX_CONCURRENT_STREAMS, |
1267 SETTINGS_FLAG_PLEASE_PERSIST, | 1282 SETTINGS_FLAG_PLEASE_PERSIST, |
1268 initial_max_concurrent_streams); | 1283 initial_max_concurrent_streams); |
1269 | 1284 |
1270 SpdySessionPoolPeer pool_peer(spdy_session_pool_); | 1285 SpdySessionPoolPeer pool_peer(spdy_session_pool_); |
1271 pool_peer.SetEnableSendingInitialData(true); | 1286 pool_peer.SetEnableSendingInitialData(true); |
(...skipping 30 matching lines...) Expand all Loading... | |
1302 | 1317 |
1303 MockConnect connect_data(SYNCHRONOUS, OK); | 1318 MockConnect connect_data(SYNCHRONOUS, OK); |
1304 MockRead reads[] = { | 1319 MockRead reads[] = { |
1305 MockRead(ASYNC, 0, 0) // EOF | 1320 MockRead(ASYNC, 0, 0) // EOF |
1306 }; | 1321 }; |
1307 | 1322 |
1308 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1323 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1309 data.set_connect_data(connect_data); | 1324 data.set_connect_data(connect_data); |
1310 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1325 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1311 | 1326 |
1312 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1313 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1314 | |
1315 CreateNetworkSession(); | 1327 CreateNetworkSession(); |
1316 | 1328 |
1317 base::WeakPtr<SpdySession> session = | 1329 base::WeakPtr<SpdySession> session = |
1318 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1330 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
1319 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1331 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
1320 | 1332 |
1321 // Flush the read completion task. | 1333 // Flush the read completion task. |
1322 base::MessageLoop::current()->RunUntilIdle(); | 1334 base::MessageLoop::current()->RunUntilIdle(); |
1323 | 1335 |
1324 net::CapturingNetLog::CapturedEntryList entries; | 1336 net::CapturingNetLog::CapturedEntryList entries; |
(...skipping 22 matching lines...) Expand all Loading... | |
1347 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); | 1359 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway()); |
1348 MockRead reads[] = { | 1360 MockRead reads[] = { |
1349 CreateMockRead(*goaway), | 1361 CreateMockRead(*goaway), |
1350 MockRead(SYNCHRONOUS, 0, 0) // EOF | 1362 MockRead(SYNCHRONOUS, 0, 0) // EOF |
1351 }; | 1363 }; |
1352 | 1364 |
1353 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 1365 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
1354 data.set_connect_data(connect_data); | 1366 data.set_connect_data(connect_data); |
1355 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1367 session_deps_.socket_factory->AddSocketDataProvider(&data); |
1356 | 1368 |
1357 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1358 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
1359 | |
1360 CreateNetworkSession(); | 1369 CreateNetworkSession(); |
1361 | 1370 |
1362 CapturingBoundNetLog log; | 1371 CapturingBoundNetLog log; |
1363 base::WeakPtr<SpdySession> session = | 1372 base::WeakPtr<SpdySession> session = |
1364 CreateInsecureSpdySession(http_session_, key_, log.bound()); | 1373 CreateInsecureSpdySession(http_session_, key_, log.bound()); |
1365 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 1374 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
1366 | 1375 |
1367 // Flush the read completion task. | 1376 // Flush the read completion task. |
1368 base::MessageLoop::current()->RunUntilIdle(); | 1377 base::MessageLoop::current()->RunUntilIdle(); |
1369 | 1378 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1422 MockRead(ASYNC, 0, 6) // EOF | 1431 MockRead(ASYNC, 0, 6) // EOF |
1423 }; | 1432 }; |
1424 | 1433 |
1425 session_deps_.host_resolver->set_synchronous_mode(true); | 1434 session_deps_.host_resolver->set_synchronous_mode(true); |
1426 | 1435 |
1427 DeterministicSocketData data(reads, arraysize(reads), | 1436 DeterministicSocketData data(reads, arraysize(reads), |
1428 writes, arraysize(writes)); | 1437 writes, arraysize(writes)); |
1429 data.set_connect_data(connect_data); | 1438 data.set_connect_data(connect_data); |
1430 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1439 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1431 | 1440 |
1432 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1433 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1434 | |
1435 CreateDeterministicNetworkSession(); | 1441 CreateDeterministicNetworkSession(); |
1436 | 1442 |
1437 base::WeakPtr<SpdySession> session = | 1443 base::WeakPtr<SpdySession> session = |
1438 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1444 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1439 | 1445 |
1440 GURL url("http://www.google.com"); | 1446 GURL url(kDefaultURL); |
1441 | 1447 |
1442 base::WeakPtr<SpdyStream> spdy_stream_lowest = | 1448 base::WeakPtr<SpdyStream> spdy_stream_lowest = |
1443 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1449 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1444 session, url, LOWEST, BoundNetLog()); | 1450 session, url, LOWEST, BoundNetLog()); |
1445 ASSERT_TRUE(spdy_stream_lowest); | 1451 ASSERT_TRUE(spdy_stream_lowest); |
1446 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); | 1452 EXPECT_EQ(0u, spdy_stream_lowest->stream_id()); |
1447 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); | 1453 test::StreamDelegateDoNothing delegate_lowest(spdy_stream_lowest); |
1448 spdy_stream_lowest->SetDelegate(&delegate_lowest); | 1454 spdy_stream_lowest->SetDelegate(&delegate_lowest); |
1449 | 1455 |
1450 base::WeakPtr<SpdyStream> spdy_stream_highest = | 1456 base::WeakPtr<SpdyStream> spdy_stream_highest = |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1495 MockRead(ASYNC, 0, 3) // EOF | 1501 MockRead(ASYNC, 0, 3) // EOF |
1496 }; | 1502 }; |
1497 | 1503 |
1498 session_deps_.host_resolver->set_synchronous_mode(true); | 1504 session_deps_.host_resolver->set_synchronous_mode(true); |
1499 | 1505 |
1500 DeterministicSocketData data(reads, arraysize(reads), | 1506 DeterministicSocketData data(reads, arraysize(reads), |
1501 writes, arraysize(writes)); | 1507 writes, arraysize(writes)); |
1502 data.set_connect_data(connect_data); | 1508 data.set_connect_data(connect_data); |
1503 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1509 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1504 | 1510 |
1505 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1506 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1507 | |
1508 CreateDeterministicNetworkSession(); | 1511 CreateDeterministicNetworkSession(); |
1509 | 1512 |
1510 base::WeakPtr<SpdySession> session = | 1513 base::WeakPtr<SpdySession> session = |
1511 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1514 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1512 | 1515 |
1513 GURL url1("http://www.google.com"); | 1516 GURL url1(kDefaultURL); |
1514 base::WeakPtr<SpdyStream> spdy_stream1 = | 1517 base::WeakPtr<SpdyStream> spdy_stream1 = |
1515 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1518 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1516 session, url1, HIGHEST, BoundNetLog()); | 1519 session, url1, HIGHEST, BoundNetLog()); |
1517 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1520 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1518 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1521 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1519 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 1522 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
1520 spdy_stream1->SetDelegate(&delegate1); | 1523 spdy_stream1->SetDelegate(&delegate1); |
1521 | 1524 |
1522 GURL url2("http://www.google.com"); | 1525 GURL url2(kDefaultURL); |
1523 base::WeakPtr<SpdyStream> spdy_stream2 = | 1526 base::WeakPtr<SpdyStream> spdy_stream2 = |
1524 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1527 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1525 session, url2, LOWEST, BoundNetLog()); | 1528 session, url2, LOWEST, BoundNetLog()); |
1526 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1529 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1527 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1530 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1528 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1531 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
1529 spdy_stream2->SetDelegate(&delegate2); | 1532 spdy_stream2->SetDelegate(&delegate2); |
1530 | 1533 |
1531 scoped_ptr<SpdyHeaderBlock> headers( | 1534 scoped_ptr<SpdyHeaderBlock> headers( |
1532 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 1535 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1568 }; | 1571 }; |
1569 | 1572 |
1570 MockRead reads[] = { | 1573 MockRead reads[] = { |
1571 MockRead(ASYNC, 0, 0) // EOF | 1574 MockRead(ASYNC, 0, 0) // EOF |
1572 }; | 1575 }; |
1573 DeterministicSocketData data(reads, arraysize(reads), | 1576 DeterministicSocketData data(reads, arraysize(reads), |
1574 writes, arraysize(writes)); | 1577 writes, arraysize(writes)); |
1575 data.set_connect_data(connect_data); | 1578 data.set_connect_data(connect_data); |
1576 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1579 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1577 | 1580 |
1578 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1579 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1580 | |
1581 CreateDeterministicNetworkSession(); | 1581 CreateDeterministicNetworkSession(); |
1582 | 1582 |
1583 base::WeakPtr<SpdySession> session = | 1583 base::WeakPtr<SpdySession> session = |
1584 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1584 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1585 | 1585 |
1586 GURL url1("http://www.google.com"); | 1586 GURL url1(kDefaultURL); |
1587 base::WeakPtr<SpdyStream> spdy_stream1 = | 1587 base::WeakPtr<SpdyStream> spdy_stream1 = |
1588 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1588 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1589 session, url1, HIGHEST, BoundNetLog()); | 1589 session, url1, HIGHEST, BoundNetLog()); |
1590 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1590 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1591 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1591 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1592 | 1592 |
1593 GURL url2("http://www.google.com"); | 1593 GURL url2(kDefaultURL); |
1594 base::WeakPtr<SpdyStream> spdy_stream2 = | 1594 base::WeakPtr<SpdyStream> spdy_stream2 = |
1595 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1595 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1596 session, url2, LOWEST, BoundNetLog()); | 1596 session, url2, LOWEST, BoundNetLog()); |
1597 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1597 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1598 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1598 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1599 | 1599 |
1600 test::ClosingDelegate delegate1(spdy_stream1); | 1600 test::ClosingDelegate delegate1(spdy_stream1); |
1601 spdy_stream1->SetDelegate(&delegate1); | 1601 spdy_stream1->SetDelegate(&delegate1); |
1602 | 1602 |
1603 test::ClosingDelegate delegate2(spdy_stream2); | 1603 test::ClosingDelegate delegate2(spdy_stream2); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1642 }; | 1642 }; |
1643 | 1643 |
1644 MockRead reads[] = { | 1644 MockRead reads[] = { |
1645 MockRead(ASYNC, 0, 0) // EOF | 1645 MockRead(ASYNC, 0, 0) // EOF |
1646 }; | 1646 }; |
1647 DeterministicSocketData data(reads, arraysize(reads), | 1647 DeterministicSocketData data(reads, arraysize(reads), |
1648 writes, arraysize(writes)); | 1648 writes, arraysize(writes)); |
1649 data.set_connect_data(connect_data); | 1649 data.set_connect_data(connect_data); |
1650 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1650 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1651 | 1651 |
1652 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1653 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1654 | |
1655 CreateDeterministicNetworkSession(); | 1652 CreateDeterministicNetworkSession(); |
1656 | 1653 |
1657 base::WeakPtr<SpdySession> session = | 1654 base::WeakPtr<SpdySession> session = |
1658 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1655 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1659 | 1656 |
1660 GURL url1("http://www.google.com"); | 1657 GURL url1(kDefaultURL); |
1661 base::WeakPtr<SpdyStream> spdy_stream1 = | 1658 base::WeakPtr<SpdyStream> spdy_stream1 = |
1662 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1659 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1663 session, url1, HIGHEST, BoundNetLog()); | 1660 session, url1, HIGHEST, BoundNetLog()); |
1664 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1661 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1665 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1662 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1666 | 1663 |
1667 GURL url2("http://www.google.com"); | 1664 GURL url2(kDefaultURL); |
1668 base::WeakPtr<SpdyStream> spdy_stream2 = | 1665 base::WeakPtr<SpdyStream> spdy_stream2 = |
1669 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 1666 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
1670 session, url2, LOWEST, BoundNetLog()); | 1667 session, url2, LOWEST, BoundNetLog()); |
1671 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1668 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1672 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1669 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1673 | 1670 |
1674 // Make |spdy_stream1| close |spdy_stream2|. | 1671 // Make |spdy_stream1| close |spdy_stream2|. |
1675 test::ClosingDelegate delegate1(spdy_stream2); | 1672 test::ClosingDelegate delegate1(spdy_stream2); |
1676 spdy_stream1->SetDelegate(&delegate1); | 1673 spdy_stream1->SetDelegate(&delegate1); |
1677 | 1674 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1723 | 1720 |
1724 MockRead reads[] = { | 1721 MockRead reads[] = { |
1725 MockRead(ASYNC, 0, 2) // EOF | 1722 MockRead(ASYNC, 0, 2) // EOF |
1726 }; | 1723 }; |
1727 | 1724 |
1728 DeterministicSocketData data(reads, arraysize(reads), | 1725 DeterministicSocketData data(reads, arraysize(reads), |
1729 writes, arraysize(writes)); | 1726 writes, arraysize(writes)); |
1730 data.set_connect_data(connect_data); | 1727 data.set_connect_data(connect_data); |
1731 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1728 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1732 | 1729 |
1733 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1734 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1735 | |
1736 CreateDeterministicNetworkSession(); | 1730 CreateDeterministicNetworkSession(); |
1737 | 1731 |
1738 base::WeakPtr<SpdySession> session = | 1732 base::WeakPtr<SpdySession> session = |
1739 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1733 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1740 | 1734 |
1741 GURL url1("http://www.google.com"); | 1735 GURL url1(kDefaultURL); |
1742 base::WeakPtr<SpdyStream> spdy_stream1 = | 1736 base::WeakPtr<SpdyStream> spdy_stream1 = |
1743 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1737 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1744 session, url1, MEDIUM, BoundNetLog()); | 1738 session, url1, MEDIUM, BoundNetLog()); |
1745 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1739 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1746 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1740 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1747 | 1741 |
1748 GURL url2("http://www.google.com"); | 1742 GURL url2(kDefaultURL); |
1749 base::WeakPtr<SpdyStream> spdy_stream2 = | 1743 base::WeakPtr<SpdyStream> spdy_stream2 = |
1750 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1744 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1751 session, url2, MEDIUM, BoundNetLog()); | 1745 session, url2, MEDIUM, BoundNetLog()); |
1752 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1746 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1753 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1747 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1754 | 1748 |
1755 test::ClosingDelegate delegate1(spdy_stream1); | 1749 test::ClosingDelegate delegate1(spdy_stream1); |
1756 spdy_stream1->SetDelegate(&delegate1); | 1750 spdy_stream1->SetDelegate(&delegate1); |
1757 | 1751 |
1758 test::ClosingDelegate delegate2(spdy_stream2); | 1752 test::ClosingDelegate delegate2(spdy_stream2); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1807 | 1801 |
1808 MockRead reads[] = { | 1802 MockRead reads[] = { |
1809 MockRead(ASYNC, 0, 2) // EOF | 1803 MockRead(ASYNC, 0, 2) // EOF |
1810 }; | 1804 }; |
1811 | 1805 |
1812 DeterministicSocketData data(reads, arraysize(reads), | 1806 DeterministicSocketData data(reads, arraysize(reads), |
1813 writes, arraysize(writes)); | 1807 writes, arraysize(writes)); |
1814 data.set_connect_data(connect_data); | 1808 data.set_connect_data(connect_data); |
1815 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1809 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1816 | 1810 |
1817 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1818 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1819 | |
1820 CreateDeterministicNetworkSession(); | 1811 CreateDeterministicNetworkSession(); |
1821 | 1812 |
1822 base::WeakPtr<SpdySession> session = | 1813 base::WeakPtr<SpdySession> session = |
1823 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1814 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1824 | 1815 |
1825 GURL url1("http://www.google.com"); | 1816 GURL url1(kDefaultURL); |
1826 base::WeakPtr<SpdyStream> spdy_stream1 = | 1817 base::WeakPtr<SpdyStream> spdy_stream1 = |
1827 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1818 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1828 session, url1, MEDIUM, BoundNetLog()); | 1819 session, url1, MEDIUM, BoundNetLog()); |
1829 ASSERT_TRUE(spdy_stream1.get() != NULL); | 1820 ASSERT_TRUE(spdy_stream1.get() != NULL); |
1830 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1821 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
1831 | 1822 |
1832 GURL url2("http://www.google.com"); | 1823 GURL url2(kDefaultURL); |
1833 base::WeakPtr<SpdyStream> spdy_stream2 = | 1824 base::WeakPtr<SpdyStream> spdy_stream2 = |
1834 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1825 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1835 session, url2, MEDIUM, BoundNetLog()); | 1826 session, url2, MEDIUM, BoundNetLog()); |
1836 ASSERT_TRUE(spdy_stream2.get() != NULL); | 1827 ASSERT_TRUE(spdy_stream2.get() != NULL); |
1837 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1828 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
1838 | 1829 |
1839 // Make |spdy_stream1| close |spdy_stream2|. | 1830 // Make |spdy_stream1| close |spdy_stream2|. |
1840 test::ClosingDelegate delegate1(spdy_stream2); | 1831 test::ClosingDelegate delegate1(spdy_stream2); |
1841 spdy_stream1->SetDelegate(&delegate1); | 1832 spdy_stream1->SetDelegate(&delegate1); |
1842 | 1833 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1907 }; | 1898 }; |
1908 | 1899 |
1909 MockRead reads[] = { | 1900 MockRead reads[] = { |
1910 MockRead(ASYNC, 0, 1) // EOF | 1901 MockRead(ASYNC, 0, 1) // EOF |
1911 }; | 1902 }; |
1912 DeterministicSocketData data(reads, arraysize(reads), | 1903 DeterministicSocketData data(reads, arraysize(reads), |
1913 writes, arraysize(writes)); | 1904 writes, arraysize(writes)); |
1914 data.set_connect_data(connect_data); | 1905 data.set_connect_data(connect_data); |
1915 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 1906 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
1916 | 1907 |
1917 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
1918 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
1919 | |
1920 CreateDeterministicNetworkSession(); | 1908 CreateDeterministicNetworkSession(); |
1921 | 1909 |
1922 base::WeakPtr<SpdySession> session = | 1910 base::WeakPtr<SpdySession> session = |
1923 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 1911 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
1924 | 1912 |
1925 GURL url("http://www.google.com"); | 1913 GURL url(kDefaultURL); |
1926 base::WeakPtr<SpdyStream> spdy_stream = | 1914 base::WeakPtr<SpdyStream> spdy_stream = |
1927 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 1915 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
1928 session, url, MEDIUM, BoundNetLog()); | 1916 session, url, MEDIUM, BoundNetLog()); |
1929 ASSERT_TRUE(spdy_stream.get() != NULL); | 1917 ASSERT_TRUE(spdy_stream.get() != NULL); |
1930 EXPECT_EQ(0u, spdy_stream->stream_id()); | 1918 EXPECT_EQ(0u, spdy_stream->stream_id()); |
1931 | 1919 |
1932 SessionClosingDelegate delegate(spdy_stream, session); | 1920 SessionClosingDelegate delegate(spdy_stream, session); |
1933 spdy_stream->SetDelegate(&delegate); | 1921 spdy_stream->SetDelegate(&delegate); |
1934 | 1922 |
1935 scoped_ptr<SpdyHeaderBlock> headers( | 1923 scoped_ptr<SpdyHeaderBlock> headers( |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2083 CreateMockRead(*resp3, 8), | 2071 CreateMockRead(*resp3, 8), |
2084 CreateMockRead(*body3, 9), | 2072 CreateMockRead(*body3, 9), |
2085 MockRead(ASYNC, 0, 10) // EOF | 2073 MockRead(ASYNC, 0, 10) // EOF |
2086 }; | 2074 }; |
2087 | 2075 |
2088 DeterministicSocketData data(reads, arraysize(reads), | 2076 DeterministicSocketData data(reads, arraysize(reads), |
2089 writes, arraysize(writes)); | 2077 writes, arraysize(writes)); |
2090 data.set_connect_data(connect_data); | 2078 data.set_connect_data(connect_data); |
2091 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2079 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2092 | 2080 |
2093 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2094 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2095 | |
2096 CreateDeterministicNetworkSession(); | 2081 CreateDeterministicNetworkSession(); |
2097 | 2082 |
2098 base::WeakPtr<SpdySession> session = | 2083 base::WeakPtr<SpdySession> session = |
2099 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2084 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2100 | 2085 |
2101 // Read the settings frame. | 2086 // Read the settings frame. |
2102 data.RunFor(1); | 2087 data.RunFor(1); |
2103 | 2088 |
2104 GURL url1("http://www.google.com"); | 2089 GURL url1(kDefaultURL); |
2105 base::WeakPtr<SpdyStream> spdy_stream1 = | 2090 base::WeakPtr<SpdyStream> spdy_stream1 = |
2106 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2091 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2107 session, url1, LOWEST, BoundNetLog()); | 2092 session, url1, LOWEST, BoundNetLog()); |
2108 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2093 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2109 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2094 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2110 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2095 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2111 spdy_stream1->SetDelegate(&delegate1); | 2096 spdy_stream1->SetDelegate(&delegate1); |
2112 | 2097 |
2113 TestCompletionCallback callback2; | 2098 TestCompletionCallback callback2; |
2114 GURL url2("http://www.google.com"); | 2099 GURL url2(kDefaultURL); |
2115 SpdyStreamRequest request2; | 2100 SpdyStreamRequest request2; |
2116 ASSERT_EQ(ERR_IO_PENDING, | 2101 ASSERT_EQ(ERR_IO_PENDING, |
2117 request2.StartRequest( | 2102 request2.StartRequest( |
2118 SPDY_REQUEST_RESPONSE_STREAM, | 2103 SPDY_REQUEST_RESPONSE_STREAM, |
2119 session, url2, LOWEST, BoundNetLog(), callback2.callback())); | 2104 session, url2, LOWEST, BoundNetLog(), callback2.callback())); |
2120 | 2105 |
2121 TestCompletionCallback callback3; | 2106 TestCompletionCallback callback3; |
2122 GURL url3("http://www.google.com"); | 2107 GURL url3(kDefaultURL); |
2123 SpdyStreamRequest request3; | 2108 SpdyStreamRequest request3; |
2124 ASSERT_EQ(ERR_IO_PENDING, | 2109 ASSERT_EQ(ERR_IO_PENDING, |
2125 request3.StartRequest( | 2110 request3.StartRequest( |
2126 SPDY_REQUEST_RESPONSE_STREAM, | 2111 SPDY_REQUEST_RESPONSE_STREAM, |
2127 session, url3, LOWEST, BoundNetLog(), callback3.callback())); | 2112 session, url3, LOWEST, BoundNetLog(), callback3.callback())); |
2128 | 2113 |
2129 EXPECT_EQ(0u, session->num_active_streams()); | 2114 EXPECT_EQ(0u, session->num_active_streams()); |
2130 EXPECT_EQ(1u, session->num_created_streams()); | 2115 EXPECT_EQ(1u, session->num_created_streams()); |
2131 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2116 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
2132 | 2117 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2206 MockRead reads[] = { | 2191 MockRead reads[] = { |
2207 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 2192 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
2208 }; | 2193 }; |
2209 | 2194 |
2210 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); | 2195 StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0); |
2211 MockConnect connect_data(SYNCHRONOUS, OK); | 2196 MockConnect connect_data(SYNCHRONOUS, OK); |
2212 | 2197 |
2213 data.set_connect_data(connect_data); | 2198 data.set_connect_data(connect_data); |
2214 session_deps_.socket_factory->AddSocketDataProvider(&data); | 2199 session_deps_.socket_factory->AddSocketDataProvider(&data); |
2215 | 2200 |
2216 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2217 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
2218 | |
2219 CreateNetworkSession(); | 2201 CreateNetworkSession(); |
2220 | 2202 |
2221 base::WeakPtr<SpdySession> session = | 2203 base::WeakPtr<SpdySession> session = |
2222 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2204 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2223 | 2205 |
2224 // Leave room for only one more stream to be created. | 2206 // Leave room for only one more stream to be created. |
2225 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { | 2207 for (size_t i = 0; i < kInitialMaxConcurrentStreams - 1; ++i) { |
2226 base::WeakPtr<SpdyStream> spdy_stream = | 2208 base::WeakPtr<SpdyStream> spdy_stream = |
2227 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2209 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
2228 session, test_url_, MEDIUM, BoundNetLog()); | 2210 session, test_url_, MEDIUM, BoundNetLog()); |
2229 ASSERT_TRUE(spdy_stream != NULL); | 2211 ASSERT_TRUE(spdy_stream != NULL); |
2230 } | 2212 } |
2231 | 2213 |
2232 GURL url1("http://www.google.com"); | 2214 GURL url1(kDefaultURL); |
2233 base::WeakPtr<SpdyStream> spdy_stream1 = | 2215 base::WeakPtr<SpdyStream> spdy_stream1 = |
2234 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 2216 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
2235 session, url1, LOWEST, BoundNetLog()); | 2217 session, url1, LOWEST, BoundNetLog()); |
2236 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2218 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2237 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2219 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2238 | 2220 |
2239 TestCompletionCallback callback2; | 2221 TestCompletionCallback callback2; |
2240 GURL url2("http://www.google.com"); | 2222 GURL url2(kDefaultURL); |
2241 SpdyStreamRequest request2; | 2223 SpdyStreamRequest request2; |
2242 ASSERT_EQ(ERR_IO_PENDING, | 2224 ASSERT_EQ(ERR_IO_PENDING, |
2243 request2.StartRequest( | 2225 request2.StartRequest( |
2244 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), | 2226 SPDY_BIDIRECTIONAL_STREAM, session, url2, LOWEST, BoundNetLog(), |
2245 callback2.callback())); | 2227 callback2.callback())); |
2246 | 2228 |
2247 TestCompletionCallback callback3; | 2229 TestCompletionCallback callback3; |
2248 GURL url3("http://www.google.com"); | 2230 GURL url3(kDefaultURL); |
2249 SpdyStreamRequest request3; | 2231 SpdyStreamRequest request3; |
2250 ASSERT_EQ(ERR_IO_PENDING, | 2232 ASSERT_EQ(ERR_IO_PENDING, |
2251 request3.StartRequest( | 2233 request3.StartRequest( |
2252 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), | 2234 SPDY_BIDIRECTIONAL_STREAM, session, url3, LOWEST, BoundNetLog(), |
2253 callback3.callback())); | 2235 callback3.callback())); |
2254 | 2236 |
2255 EXPECT_EQ(0u, session->num_active_streams()); | 2237 EXPECT_EQ(0u, session->num_active_streams()); |
2256 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); | 2238 EXPECT_EQ(kInitialMaxConcurrentStreams, session->num_created_streams()); |
2257 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); | 2239 EXPECT_EQ(2u, session->pending_create_stream_queue_size(LOWEST)); |
2258 | 2240 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2327 MockRead(ASYNC, 0, 6) // EOF | 2309 MockRead(ASYNC, 0, 6) // EOF |
2328 }; | 2310 }; |
2329 | 2311 |
2330 // Create SpdySession and SpdyStream and send the request. | 2312 // Create SpdySession and SpdyStream and send the request. |
2331 DeterministicSocketData data(reads, arraysize(reads), | 2313 DeterministicSocketData data(reads, arraysize(reads), |
2332 writes, arraysize(writes)); | 2314 writes, arraysize(writes)); |
2333 data.set_connect_data(connect_data); | 2315 data.set_connect_data(connect_data); |
2334 session_deps_.host_resolver->set_synchronous_mode(true); | 2316 session_deps_.host_resolver->set_synchronous_mode(true); |
2335 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2317 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2336 | 2318 |
2337 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2338 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2339 | |
2340 CreateDeterministicNetworkSession(); | 2319 CreateDeterministicNetworkSession(); |
2341 | 2320 |
2342 base::WeakPtr<SpdySession> session = | 2321 base::WeakPtr<SpdySession> session = |
2343 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2322 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2344 | 2323 |
2345 GURL url1("http://www.google.com"); | 2324 GURL url1(kDefaultURL); |
2346 base::WeakPtr<SpdyStream> spdy_stream1 = | 2325 base::WeakPtr<SpdyStream> spdy_stream1 = |
2347 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2326 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2348 session, url1, MEDIUM, BoundNetLog()); | 2327 session, url1, MEDIUM, BoundNetLog()); |
2349 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2328 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2350 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2329 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2351 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2330 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2352 spdy_stream1->SetDelegate(&delegate1); | 2331 spdy_stream1->SetDelegate(&delegate1); |
2353 | 2332 |
2354 scoped_ptr<SpdyHeaderBlock> headers1( | 2333 scoped_ptr<SpdyHeaderBlock> headers1( |
2355 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2334 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2421 MockRead(ASYNC, 0, 7) // EOF | 2400 MockRead(ASYNC, 0, 7) // EOF |
2422 }; | 2401 }; |
2423 | 2402 |
2424 // Create SpdySession and SpdyStream and send the request. | 2403 // Create SpdySession and SpdyStream and send the request. |
2425 DeterministicSocketData data(reads, arraysize(reads), | 2404 DeterministicSocketData data(reads, arraysize(reads), |
2426 writes, arraysize(writes)); | 2405 writes, arraysize(writes)); |
2427 data.set_connect_data(connect_data); | 2406 data.set_connect_data(connect_data); |
2428 session_deps_.host_resolver->set_synchronous_mode(true); | 2407 session_deps_.host_resolver->set_synchronous_mode(true); |
2429 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2408 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2430 | 2409 |
2431 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2432 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2433 | |
2434 CreateDeterministicNetworkSession(); | 2410 CreateDeterministicNetworkSession(); |
2435 | 2411 |
2436 base::WeakPtr<SpdySession> session = | 2412 base::WeakPtr<SpdySession> session = |
2437 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2413 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2438 | 2414 |
2439 GURL url1("http://www.google.com"); | 2415 GURL url1(kDefaultURL); |
2440 base::WeakPtr<SpdyStream> spdy_stream1 = | 2416 base::WeakPtr<SpdyStream> spdy_stream1 = |
2441 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2417 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2442 session, url1, MEDIUM, BoundNetLog()); | 2418 session, url1, MEDIUM, BoundNetLog()); |
2443 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2419 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2444 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2420 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2445 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2421 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2446 spdy_stream1->SetDelegate(&delegate1); | 2422 spdy_stream1->SetDelegate(&delegate1); |
2447 | 2423 |
2448 scoped_ptr<SpdyHeaderBlock> headers1( | 2424 scoped_ptr<SpdyHeaderBlock> headers1( |
2449 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2425 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2537 MockRead(ASYNC, 0, 12) // EOF | 2513 MockRead(ASYNC, 0, 12) // EOF |
2538 }; | 2514 }; |
2539 | 2515 |
2540 // Create SpdySession and SpdyStream and send the request. | 2516 // Create SpdySession and SpdyStream and send the request. |
2541 DeterministicSocketData data(reads, arraysize(reads), | 2517 DeterministicSocketData data(reads, arraysize(reads), |
2542 writes, arraysize(writes)); | 2518 writes, arraysize(writes)); |
2543 data.set_connect_data(connect_data); | 2519 data.set_connect_data(connect_data); |
2544 session_deps_.host_resolver->set_synchronous_mode(true); | 2520 session_deps_.host_resolver->set_synchronous_mode(true); |
2545 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2521 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2546 | 2522 |
2547 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2548 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2549 | |
2550 CreateDeterministicNetworkSession(); | 2523 CreateDeterministicNetworkSession(); |
2551 | 2524 |
2552 base::WeakPtr<SpdySession> session = | 2525 base::WeakPtr<SpdySession> session = |
2553 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2526 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2554 | 2527 |
2555 GURL url1("http://www.google.com"); | 2528 GURL url1(kDefaultURL); |
2556 base::WeakPtr<SpdyStream> spdy_stream1 = | 2529 base::WeakPtr<SpdyStream> spdy_stream1 = |
2557 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2530 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2558 session, url1, MEDIUM, BoundNetLog()); | 2531 session, url1, MEDIUM, BoundNetLog()); |
2559 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2532 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2560 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2533 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2561 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2534 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2562 spdy_stream1->SetDelegate(&delegate1); | 2535 spdy_stream1->SetDelegate(&delegate1); |
2563 | 2536 |
2564 scoped_ptr<SpdyHeaderBlock> headers1( | 2537 scoped_ptr<SpdyHeaderBlock> headers1( |
2565 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2538 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2611 CreateMockRead(*goaway, 3), | 2584 CreateMockRead(*goaway, 3), |
2612 }; | 2585 }; |
2613 | 2586 |
2614 // Create SpdySession and SpdyStream and send the request. | 2587 // Create SpdySession and SpdyStream and send the request. |
2615 DeterministicSocketData data(reads, arraysize(reads), | 2588 DeterministicSocketData data(reads, arraysize(reads), |
2616 writes, arraysize(writes)); | 2589 writes, arraysize(writes)); |
2617 data.set_connect_data(connect_data); | 2590 data.set_connect_data(connect_data); |
2618 session_deps_.host_resolver->set_synchronous_mode(true); | 2591 session_deps_.host_resolver->set_synchronous_mode(true); |
2619 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2592 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
2620 | 2593 |
2621 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
2622 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
2623 | |
2624 CreateDeterministicNetworkSession(); | 2594 CreateDeterministicNetworkSession(); |
2625 | 2595 |
2626 base::WeakPtr<SpdySession> session = | 2596 base::WeakPtr<SpdySession> session = |
2627 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2597 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
2628 | 2598 |
2629 GURL url1("http://www.google.com"); | 2599 GURL url1(kDefaultURL); |
2630 base::WeakPtr<SpdyStream> spdy_stream1 = | 2600 base::WeakPtr<SpdyStream> spdy_stream1 = |
2631 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2601 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2632 session, url1, MEDIUM, BoundNetLog()); | 2602 session, url1, MEDIUM, BoundNetLog()); |
2633 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2603 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
2634 spdy_stream1->SetDelegate(&delegate1); | 2604 spdy_stream1->SetDelegate(&delegate1); |
2635 ASSERT_TRUE(spdy_stream1.get() != NULL); | 2605 ASSERT_TRUE(spdy_stream1.get() != NULL); |
2636 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2606 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
2637 | 2607 |
2638 scoped_ptr<SpdyHeaderBlock> headers1( | 2608 scoped_ptr<SpdyHeaderBlock> headers1( |
2639 spdy_util_.ConstructGetHeaderBlock(url1.spec())); | 2609 spdy_util_.ConstructGetHeaderBlock(url1.spec())); |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2857 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 2827 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
2858 | 2828 |
2859 | 2829 |
2860 CreateNetworkSession(); | 2830 CreateNetworkSession(); |
2861 | 2831 |
2862 TransportClientSocketPool* pool = | 2832 TransportClientSocketPool* pool = |
2863 http_session_->GetTransportSocketPool( | 2833 http_session_->GetTransportSocketPool( |
2864 HttpNetworkSession::NORMAL_SOCKET_POOL); | 2834 HttpNetworkSession::NORMAL_SOCKET_POOL); |
2865 | 2835 |
2866 // Create a SPDY session. | 2836 // Create a SPDY session. |
2867 GURL url1("http://www.google.com"); | 2837 GURL url1(kDefaultURL); |
2868 SpdySessionKey key1(HostPortPair(url1.host(), 80), | 2838 SpdySessionKey key1(HostPortPair(url1.host(), 80), |
2869 ProxyServer::Direct(), kPrivacyModeDisabled); | 2839 ProxyServer::Direct(), kPrivacyModeDisabled); |
2870 base::WeakPtr<SpdySession> session1 = | 2840 base::WeakPtr<SpdySession> session1 = |
2871 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); | 2841 CreateInsecureSpdySession(http_session_, key1, BoundNetLog()); |
2872 EXPECT_FALSE(pool->IsStalled()); | 2842 EXPECT_FALSE(pool->IsStalled()); |
2873 | 2843 |
2874 // Create a stream using the session, and send a request. | 2844 // Create a stream using the session, and send a request. |
2875 | 2845 |
2876 TestCompletionCallback callback1; | 2846 TestCompletionCallback callback1; |
2877 base::WeakPtr<SpdyStream> spdy_stream1 = | 2847 base::WeakPtr<SpdyStream> spdy_stream1 = |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2961 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { | 2931 class StreamCreatingDelegate : public test::StreamDelegateDoNothing { |
2962 public: | 2932 public: |
2963 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, | 2933 StreamCreatingDelegate(const base::WeakPtr<SpdyStream>& stream, |
2964 const base::WeakPtr<SpdySession>& session) | 2934 const base::WeakPtr<SpdySession>& session) |
2965 : StreamDelegateDoNothing(stream), | 2935 : StreamDelegateDoNothing(stream), |
2966 session_(session) {} | 2936 session_(session) {} |
2967 | 2937 |
2968 virtual ~StreamCreatingDelegate() {} | 2938 virtual ~StreamCreatingDelegate() {} |
2969 | 2939 |
2970 virtual void OnClose(int status) OVERRIDE { | 2940 virtual void OnClose(int status) OVERRIDE { |
2971 GURL url("http://www.google.com"); | 2941 GURL url(kDefaultURL); |
2972 ignore_result( | 2942 ignore_result( |
2973 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2943 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
2974 session_, url, MEDIUM, BoundNetLog())); | 2944 session_, url, MEDIUM, BoundNetLog())); |
2975 } | 2945 } |
2976 | 2946 |
2977 private: | 2947 private: |
2978 const base::WeakPtr<SpdySession> session_; | 2948 const base::WeakPtr<SpdySession> session_; |
2979 }; | 2949 }; |
2980 | 2950 |
2981 // Create another stream in response to a stream being reset. Nothing | 2951 // Create another stream in response to a stream being reset. Nothing |
(...skipping 14 matching lines...) Expand all Loading... | |
2996 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); | 2966 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); |
2997 MockRead reads[] = { | 2967 MockRead reads[] = { |
2998 CreateMockRead(*rst, 1), | 2968 CreateMockRead(*rst, 1), |
2999 MockRead(ASYNC, 0, 2) // EOF | 2969 MockRead(ASYNC, 0, 2) // EOF |
3000 }; | 2970 }; |
3001 DeterministicSocketData data(reads, arraysize(reads), | 2971 DeterministicSocketData data(reads, arraysize(reads), |
3002 writes, arraysize(writes)); | 2972 writes, arraysize(writes)); |
3003 data.set_connect_data(connect_data); | 2973 data.set_connect_data(connect_data); |
3004 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 2974 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3005 | 2975 |
3006 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3007 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3008 | |
3009 CreateDeterministicNetworkSession(); | 2976 CreateDeterministicNetworkSession(); |
3010 | 2977 |
3011 base::WeakPtr<SpdySession> session = | 2978 base::WeakPtr<SpdySession> session = |
3012 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 2979 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3013 | 2980 |
3014 GURL url("http://www.google.com"); | 2981 GURL url(kDefaultURL); |
3015 base::WeakPtr<SpdyStream> spdy_stream = | 2982 base::WeakPtr<SpdyStream> spdy_stream = |
3016 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, | 2983 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, |
3017 session, url, MEDIUM, BoundNetLog()); | 2984 session, url, MEDIUM, BoundNetLog()); |
3018 ASSERT_TRUE(spdy_stream.get() != NULL); | 2985 ASSERT_TRUE(spdy_stream.get() != NULL); |
3019 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2986 EXPECT_EQ(0u, spdy_stream->stream_id()); |
3020 | 2987 |
3021 StreamCreatingDelegate delegate(spdy_stream, session); | 2988 StreamCreatingDelegate delegate(spdy_stream, session); |
3022 spdy_stream->SetDelegate(&delegate); | 2989 spdy_stream->SetDelegate(&delegate); |
3023 | 2990 |
3024 scoped_ptr<SpdyHeaderBlock> headers( | 2991 scoped_ptr<SpdyHeaderBlock> headers( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3065 MockRead(ASYNC, 0, 1) // EOF | 3032 MockRead(ASYNC, 0, 1) // EOF |
3066 }; | 3033 }; |
3067 | 3034 |
3068 session_deps_.host_resolver->set_synchronous_mode(true); | 3035 session_deps_.host_resolver->set_synchronous_mode(true); |
3069 | 3036 |
3070 scoped_ptr<DeterministicSocketData> data( | 3037 scoped_ptr<DeterministicSocketData> data( |
3071 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); | 3038 new DeterministicSocketData(reads, arraysize(reads), NULL, 0)); |
3072 data->set_connect_data(connect_data); | 3039 data->set_connect_data(connect_data); |
3073 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); | 3040 session_deps_.deterministic_socket_factory->AddSocketDataProvider(data.get()); |
3074 | 3041 |
3075 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3076 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | |
3077 | |
3078 CreateDeterministicNetworkSession(); | 3042 CreateDeterministicNetworkSession(); |
3079 | 3043 |
3080 base::WeakPtr<SpdySession> session = | 3044 base::WeakPtr<SpdySession> session = |
3081 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3045 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3082 base::WeakPtr<SpdyStream> spdy_stream1 = | 3046 base::WeakPtr<SpdyStream> spdy_stream1 = |
3083 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3047 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3084 session, test_url_, MEDIUM, BoundNetLog()); | 3048 session, test_url_, MEDIUM, BoundNetLog()); |
3085 ASSERT_TRUE(spdy_stream1.get() != NULL); | 3049 ASSERT_TRUE(spdy_stream1.get() != NULL); |
3086 TestCompletionCallback callback1; | 3050 TestCompletionCallback callback1; |
3087 EXPECT_NE(spdy_stream1->send_window_size(), window_size); | 3051 EXPECT_NE(spdy_stream1->send_window_size(), window_size); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3127 kSessionFlowControlStreamId, | 3091 kSessionFlowControlStreamId, |
3128 kSpdySessionInitialWindowSize + delta_window_size)); | 3092 kSpdySessionInitialWindowSize + delta_window_size)); |
3129 MockWrite writes[] = { | 3093 MockWrite writes[] = { |
3130 CreateMockWrite(*window_update, 0), | 3094 CreateMockWrite(*window_update, 0), |
3131 }; | 3095 }; |
3132 DeterministicSocketData data(reads, arraysize(reads), | 3096 DeterministicSocketData data(reads, arraysize(reads), |
3133 writes, arraysize(writes)); | 3097 writes, arraysize(writes)); |
3134 data.set_connect_data(connect_data); | 3098 data.set_connect_data(connect_data); |
3135 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3099 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3136 | 3100 |
3137 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3138 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3139 | |
3140 CreateDeterministicNetworkSession(); | 3101 CreateDeterministicNetworkSession(); |
3141 base::WeakPtr<SpdySession> session = | 3102 base::WeakPtr<SpdySession> session = |
3142 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3103 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3143 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3104 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
3144 session->flow_control_state()); | 3105 session->flow_control_state()); |
3145 | 3106 |
3146 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3107 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
3147 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3108 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
3148 | 3109 |
3149 session->IncreaseRecvWindowSize(delta_window_size); | 3110 session->IncreaseRecvWindowSize(delta_window_size); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3217 MockConnect connect_data(SYNCHRONOUS, OK); | 3178 MockConnect connect_data(SYNCHRONOUS, OK); |
3218 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); | 3179 scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyBodyFrame(1, false)); |
3219 MockRead reads[] = { | 3180 MockRead reads[] = { |
3220 CreateMockRead(*resp, 0), | 3181 CreateMockRead(*resp, 0), |
3221 MockRead(ASYNC, 0, 1) // EOF | 3182 MockRead(ASYNC, 0, 1) // EOF |
3222 }; | 3183 }; |
3223 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); | 3184 DeterministicSocketData data(reads, arraysize(reads), NULL, 0); |
3224 data.set_connect_data(connect_data); | 3185 data.set_connect_data(connect_data); |
3225 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3186 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3226 | 3187 |
3227 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3228 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3229 | |
3230 CreateDeterministicNetworkSession(); | 3188 CreateDeterministicNetworkSession(); |
3231 base::WeakPtr<SpdySession> session = | 3189 base::WeakPtr<SpdySession> session = |
3232 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3190 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3233 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, | 3191 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, |
3234 session->flow_control_state()); | 3192 session->flow_control_state()); |
3235 | 3193 |
3236 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); | 3194 EXPECT_EQ(kSpdySessionInitialWindowSize, session->session_recv_window_size_); |
3237 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); | 3195 EXPECT_EQ(0, session->session_unacked_recv_window_bytes_); |
3238 | 3196 |
3239 data.RunFor(1); | 3197 data.RunFor(1); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3295 MockRead(ASYNC, 0, 4) // EOF | 3253 MockRead(ASYNC, 0, 4) // EOF |
3296 }; | 3254 }; |
3297 | 3255 |
3298 // Create SpdySession and SpdyStream and send the request. | 3256 // Create SpdySession and SpdyStream and send the request. |
3299 DeterministicSocketData data(reads, arraysize(reads), | 3257 DeterministicSocketData data(reads, arraysize(reads), |
3300 writes, arraysize(writes)); | 3258 writes, arraysize(writes)); |
3301 data.set_connect_data(connect_data); | 3259 data.set_connect_data(connect_data); |
3302 session_deps_.host_resolver->set_synchronous_mode(true); | 3260 session_deps_.host_resolver->set_synchronous_mode(true); |
3303 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3261 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3304 | 3262 |
3305 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3306 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3307 | |
3308 CreateDeterministicNetworkSession(); | 3263 CreateDeterministicNetworkSession(); |
3309 | 3264 |
3310 base::WeakPtr<SpdySession> session = | 3265 base::WeakPtr<SpdySession> session = |
3311 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3266 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3312 | 3267 |
3313 GURL url(kStreamUrl); | 3268 GURL url(kStreamUrl); |
3314 base::WeakPtr<SpdyStream> stream = | 3269 base::WeakPtr<SpdyStream> stream = |
3315 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3270 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3316 session, url, MEDIUM, BoundNetLog()); | 3271 session, url, MEDIUM, BoundNetLog()); |
3317 ASSERT_TRUE(stream.get() != NULL); | 3272 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3373 MockRead(ASYNC, 0, 2) // EOF | 3328 MockRead(ASYNC, 0, 2) // EOF |
3374 }; | 3329 }; |
3375 | 3330 |
3376 // Create SpdySession and SpdyStream and send the request. | 3331 // Create SpdySession and SpdyStream and send the request. |
3377 DeterministicSocketData data(reads, arraysize(reads), | 3332 DeterministicSocketData data(reads, arraysize(reads), |
3378 writes, arraysize(writes)); | 3333 writes, arraysize(writes)); |
3379 data.set_connect_data(connect_data); | 3334 data.set_connect_data(connect_data); |
3380 session_deps_.host_resolver->set_synchronous_mode(true); | 3335 session_deps_.host_resolver->set_synchronous_mode(true); |
3381 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3336 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3382 | 3337 |
3383 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3384 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3385 | |
3386 CreateDeterministicNetworkSession(); | 3338 CreateDeterministicNetworkSession(); |
3387 | 3339 |
3388 base::WeakPtr<SpdySession> session = | 3340 base::WeakPtr<SpdySession> session = |
3389 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3341 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3390 | 3342 |
3391 GURL url(kStreamUrl); | 3343 GURL url(kStreamUrl); |
3392 base::WeakPtr<SpdyStream> stream = | 3344 base::WeakPtr<SpdyStream> stream = |
3393 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3345 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3394 session, url, MEDIUM, BoundNetLog()); | 3346 session, url, MEDIUM, BoundNetLog()); |
3395 ASSERT_TRUE(stream.get() != NULL); | 3347 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3465 MockRead(ASYNC, 0, 5) // EOF | 3417 MockRead(ASYNC, 0, 5) // EOF |
3466 }; | 3418 }; |
3467 | 3419 |
3468 // Create SpdySession and SpdyStream and send the request. | 3420 // Create SpdySession and SpdyStream and send the request. |
3469 DeterministicSocketData data(reads, arraysize(reads), | 3421 DeterministicSocketData data(reads, arraysize(reads), |
3470 writes, arraysize(writes)); | 3422 writes, arraysize(writes)); |
3471 data.set_connect_data(connect_data); | 3423 data.set_connect_data(connect_data); |
3472 session_deps_.host_resolver->set_synchronous_mode(true); | 3424 session_deps_.host_resolver->set_synchronous_mode(true); |
3473 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 3425 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
3474 | 3426 |
3475 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); | |
3476 session_deps_.deterministic_socket_factory->AddSSLSocketDataProvider(&ssl); | |
3477 | |
3478 CreateDeterministicNetworkSession(); | 3427 CreateDeterministicNetworkSession(); |
3479 | 3428 |
3480 base::WeakPtr<SpdySession> session = | 3429 base::WeakPtr<SpdySession> session = |
3481 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); | 3430 CreateInsecureSpdySession(http_session_, key_, BoundNetLog()); |
3482 | 3431 |
3483 GURL url(kStreamUrl); | 3432 GURL url(kStreamUrl); |
3484 base::WeakPtr<SpdyStream> stream = | 3433 base::WeakPtr<SpdyStream> stream = |
3485 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, | 3434 CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM, |
3486 session, url, MEDIUM, BoundNetLog()); | 3435 session, url, MEDIUM, BoundNetLog()); |
3487 ASSERT_TRUE(stream.get() != NULL); | 3436 ASSERT_TRUE(stream.get() != NULL); |
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4135 EXPECT_TRUE(delegate1.send_headers_completed()); | 4084 EXPECT_TRUE(delegate1.send_headers_completed()); |
4136 EXPECT_EQ(std::string(), delegate1.TakeReceivedData()); | 4085 EXPECT_EQ(std::string(), delegate1.TakeReceivedData()); |
4137 | 4086 |
4138 EXPECT_TRUE(delegate2.send_headers_completed()); | 4087 EXPECT_TRUE(delegate2.send_headers_completed()); |
4139 EXPECT_EQ(std::string(), delegate2.TakeReceivedData()); | 4088 EXPECT_EQ(std::string(), delegate2.TakeReceivedData()); |
4140 | 4089 |
4141 EXPECT_TRUE(data.at_write_eof()); | 4090 EXPECT_TRUE(data.at_write_eof()); |
4142 } | 4091 } |
4143 | 4092 |
4144 } // namespace net | 4093 } // namespace net |
OLD | NEW |