| 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_http_stream.h" | 5 #include "net/spdy/spdy_http_stream.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 public: | 69 public: |
| 70 enum class FailureMode { SYNC, ASYNC }; | 70 enum class FailureMode { SYNC, ASYNC }; |
| 71 | 71 |
| 72 explicit ReadErrorUploadDataStream(FailureMode mode) | 72 explicit ReadErrorUploadDataStream(FailureMode mode) |
| 73 : UploadDataStream(true, 0), async_(mode), weak_factory_(this) {} | 73 : UploadDataStream(true, 0), async_(mode), weak_factory_(this) {} |
| 74 | 74 |
| 75 private: | 75 private: |
| 76 void CompleteRead() { UploadDataStream::OnReadCompleted(ERR_FAILED); } | 76 void CompleteRead() { UploadDataStream::OnReadCompleted(ERR_FAILED); } |
| 77 | 77 |
| 78 // UploadDataStream implementation: | 78 // UploadDataStream implementation: |
| 79 int InitInternal() override { return OK; } | 79 int InitInternal(const BoundNetLog& net_log) override { return OK; } |
| 80 | 80 |
| 81 int ReadInternal(IOBuffer* buf, int buf_len) override { | 81 int ReadInternal(IOBuffer* buf, int buf_len) override { |
| 82 if (async_ == FailureMode::ASYNC) { | 82 if (async_ == FailureMode::ASYNC) { |
| 83 base::ThreadTaskRunnerHandle::Get()->PostTask( | 83 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 84 FROM_HERE, base::Bind(&ReadErrorUploadDataStream::CompleteRead, | 84 FROM_HERE, base::Bind(&ReadErrorUploadDataStream::CompleteRead, |
| 85 weak_factory_.GetWeakPtr())); | 85 weak_factory_.GetWeakPtr())); |
| 86 return ERR_IO_PENDING; | 86 return ERR_IO_PENDING; |
| 87 } | 87 } |
| 88 return ERR_FAILED; | 88 return ERR_FAILED; |
| 89 } | 89 } |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 const int kFirstChunkSize = kUploadDataSize/2; | 357 const int kFirstChunkSize = kUploadDataSize/2; |
| 358 upload_stream.AppendData(kUploadData, kFirstChunkSize, false); | 358 upload_stream.AppendData(kUploadData, kFirstChunkSize, false); |
| 359 upload_stream.AppendData(kUploadData + kFirstChunkSize, | 359 upload_stream.AppendData(kUploadData + kFirstChunkSize, |
| 360 kUploadDataSize - kFirstChunkSize, true); | 360 kUploadDataSize - kFirstChunkSize, true); |
| 361 | 361 |
| 362 HttpRequestInfo request; | 362 HttpRequestInfo request; |
| 363 request.method = "POST"; | 363 request.method = "POST"; |
| 364 request.url = GURL("http://www.example.org/"); | 364 request.url = GURL("http://www.example.org/"); |
| 365 request.upload_data_stream = &upload_stream; | 365 request.upload_data_stream = &upload_stream; |
| 366 | 366 |
| 367 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 367 ASSERT_THAT( |
| 368 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 369 IsOk()); |
| 368 | 370 |
| 369 TestCompletionCallback callback; | 371 TestCompletionCallback callback; |
| 370 HttpResponseInfo response; | 372 HttpResponseInfo response; |
| 371 HttpRequestHeaders headers; | 373 HttpRequestHeaders headers; |
| 372 BoundNetLog net_log; | 374 BoundNetLog net_log; |
| 373 SpdyHttpStream http_stream(session_, true); | 375 SpdyHttpStream http_stream(session_, true); |
| 374 ASSERT_EQ( | 376 ASSERT_EQ( |
| 375 OK, | 377 OK, |
| 376 http_stream.InitializeStream(&request, DEFAULT_PRIORITY, | 378 http_stream.InitializeStream(&request, DEFAULT_PRIORITY, |
| 377 net_log, CompletionCallback())); | 379 net_log, CompletionCallback())); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 413 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 412 | 414 |
| 413 ChunkedUploadDataStream upload_stream(0); | 415 ChunkedUploadDataStream upload_stream(0); |
| 414 upload_stream.AppendData(nullptr, 0, true); | 416 upload_stream.AppendData(nullptr, 0, true); |
| 415 | 417 |
| 416 HttpRequestInfo request; | 418 HttpRequestInfo request; |
| 417 request.method = "POST"; | 419 request.method = "POST"; |
| 418 request.url = GURL("http://www.example.org/"); | 420 request.url = GURL("http://www.example.org/"); |
| 419 request.upload_data_stream = &upload_stream; | 421 request.upload_data_stream = &upload_stream; |
| 420 | 422 |
| 421 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 423 ASSERT_THAT( |
| 424 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 425 IsOk()); |
| 422 | 426 |
| 423 TestCompletionCallback callback; | 427 TestCompletionCallback callback; |
| 424 HttpResponseInfo response; | 428 HttpResponseInfo response; |
| 425 HttpRequestHeaders headers; | 429 HttpRequestHeaders headers; |
| 426 BoundNetLog net_log; | 430 BoundNetLog net_log; |
| 427 SpdyHttpStream http_stream(session_, true); | 431 SpdyHttpStream http_stream(session_, true); |
| 428 ASSERT_EQ(OK, http_stream.InitializeStream(&request, DEFAULT_PRIORITY, | 432 ASSERT_EQ(OK, http_stream.InitializeStream(&request, DEFAULT_PRIORITY, |
| 429 net_log, CompletionCallback())); | 433 net_log, CompletionCallback())); |
| 430 EXPECT_EQ(ERR_IO_PENDING, | 434 EXPECT_EQ(ERR_IO_PENDING, |
| 431 http_stream.SendRequest(headers, &response, callback.callback())); | 435 http_stream.SendRequest(headers, &response, callback.callback())); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 462 | 466 |
| 463 ChunkedUploadDataStream upload_stream(0); | 467 ChunkedUploadDataStream upload_stream(0); |
| 464 // Append first chunk. | 468 // Append first chunk. |
| 465 upload_stream.AppendData(kUploadData, kUploadDataSize, false); | 469 upload_stream.AppendData(kUploadData, kUploadDataSize, false); |
| 466 | 470 |
| 467 HttpRequestInfo request; | 471 HttpRequestInfo request; |
| 468 request.method = "POST"; | 472 request.method = "POST"; |
| 469 request.url = GURL("http://www.example.org/"); | 473 request.url = GURL("http://www.example.org/"); |
| 470 request.upload_data_stream = &upload_stream; | 474 request.upload_data_stream = &upload_stream; |
| 471 | 475 |
| 472 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 476 ASSERT_THAT( |
| 477 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 478 IsOk()); |
| 473 | 479 |
| 474 TestCompletionCallback callback; | 480 TestCompletionCallback callback; |
| 475 HttpResponseInfo response; | 481 HttpResponseInfo response; |
| 476 HttpRequestHeaders headers; | 482 HttpRequestHeaders headers; |
| 477 BoundNetLog net_log; | 483 BoundNetLog net_log; |
| 478 SpdyHttpStream http_stream(session_, true); | 484 SpdyHttpStream http_stream(session_, true); |
| 479 ASSERT_EQ(OK, http_stream.InitializeStream(&request, DEFAULT_PRIORITY, | 485 ASSERT_EQ(OK, http_stream.InitializeStream(&request, DEFAULT_PRIORITY, |
| 480 net_log, CompletionCallback())); | 486 net_log, CompletionCallback())); |
| 481 | 487 |
| 482 EXPECT_EQ(ERR_IO_PENDING, | 488 EXPECT_EQ(ERR_IO_PENDING, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 | 535 |
| 530 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 536 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 531 | 537 |
| 532 ChunkedUploadDataStream upload_stream(0); | 538 ChunkedUploadDataStream upload_stream(0); |
| 533 | 539 |
| 534 HttpRequestInfo request; | 540 HttpRequestInfo request; |
| 535 request.method = "POST"; | 541 request.method = "POST"; |
| 536 request.url = GURL("http://www.example.org/"); | 542 request.url = GURL("http://www.example.org/"); |
| 537 request.upload_data_stream = &upload_stream; | 543 request.upload_data_stream = &upload_stream; |
| 538 | 544 |
| 539 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 545 ASSERT_THAT( |
| 546 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 547 IsOk()); |
| 540 upload_stream.AppendData(kUploadData, kUploadDataSize, false); | 548 upload_stream.AppendData(kUploadData, kUploadDataSize, false); |
| 541 | 549 |
| 542 BoundNetLog net_log; | 550 BoundNetLog net_log; |
| 543 std::unique_ptr<SpdyHttpStream> http_stream( | 551 std::unique_ptr<SpdyHttpStream> http_stream( |
| 544 new SpdyHttpStream(session_, true)); | 552 new SpdyHttpStream(session_, true)); |
| 545 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, | 553 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, |
| 546 net_log, CompletionCallback())); | 554 net_log, CompletionCallback())); |
| 547 | 555 |
| 548 TestCompletionCallback callback; | 556 TestCompletionCallback callback; |
| 549 HttpRequestHeaders headers; | 557 HttpRequestHeaders headers; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 | 629 |
| 622 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 630 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 623 | 631 |
| 624 ChunkedUploadDataStream upload_stream(0); | 632 ChunkedUploadDataStream upload_stream(0); |
| 625 | 633 |
| 626 HttpRequestInfo request; | 634 HttpRequestInfo request; |
| 627 request.method = "POST"; | 635 request.method = "POST"; |
| 628 request.url = GURL("http://www.example.org/"); | 636 request.url = GURL("http://www.example.org/"); |
| 629 request.upload_data_stream = &upload_stream; | 637 request.upload_data_stream = &upload_stream; |
| 630 | 638 |
| 631 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 639 ASSERT_THAT( |
| 640 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 641 IsOk()); |
| 632 upload_stream.AppendData(kUploadData, kUploadDataSize, false); | 642 upload_stream.AppendData(kUploadData, kUploadDataSize, false); |
| 633 | 643 |
| 634 BoundNetLog net_log; | 644 BoundNetLog net_log; |
| 635 std::unique_ptr<SpdyHttpStream> http_stream( | 645 std::unique_ptr<SpdyHttpStream> http_stream( |
| 636 new SpdyHttpStream(session_, true)); | 646 new SpdyHttpStream(session_, true)); |
| 637 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, | 647 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, |
| 638 net_log, CompletionCallback())); | 648 net_log, CompletionCallback())); |
| 639 | 649 |
| 640 TestCompletionCallback callback; | 650 TestCompletionCallback callback; |
| 641 HttpRequestHeaders headers; | 651 HttpRequestHeaders headers; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 | 712 |
| 703 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 713 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 704 | 714 |
| 705 ChunkedUploadDataStream upload_stream(0); | 715 ChunkedUploadDataStream upload_stream(0); |
| 706 | 716 |
| 707 HttpRequestInfo request; | 717 HttpRequestInfo request; |
| 708 request.method = "POST"; | 718 request.method = "POST"; |
| 709 request.url = GURL("http://www.example.org/"); | 719 request.url = GURL("http://www.example.org/"); |
| 710 request.upload_data_stream = &upload_stream; | 720 request.upload_data_stream = &upload_stream; |
| 711 | 721 |
| 712 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 722 ASSERT_THAT( |
| 723 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 724 IsOk()); |
| 713 upload_stream.AppendData("", 0, true); | 725 upload_stream.AppendData("", 0, true); |
| 714 | 726 |
| 715 BoundNetLog net_log; | 727 BoundNetLog net_log; |
| 716 std::unique_ptr<SpdyHttpStream> http_stream( | 728 std::unique_ptr<SpdyHttpStream> http_stream( |
| 717 new SpdyHttpStream(session_, true)); | 729 new SpdyHttpStream(session_, true)); |
| 718 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, | 730 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, |
| 719 net_log, CompletionCallback())); | 731 net_log, CompletionCallback())); |
| 720 | 732 |
| 721 TestCompletionCallback callback; | 733 TestCompletionCallback callback; |
| 722 HttpRequestHeaders headers; | 734 HttpRequestHeaders headers; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 813 | 825 |
| 814 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 826 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 815 | 827 |
| 816 ChunkedUploadDataStream upload_stream(0); | 828 ChunkedUploadDataStream upload_stream(0); |
| 817 | 829 |
| 818 HttpRequestInfo request; | 830 HttpRequestInfo request; |
| 819 request.method = "POST"; | 831 request.method = "POST"; |
| 820 request.url = GURL("http://www.example.org/"); | 832 request.url = GURL("http://www.example.org/"); |
| 821 request.upload_data_stream = &upload_stream; | 833 request.upload_data_stream = &upload_stream; |
| 822 | 834 |
| 823 ASSERT_THAT(upload_stream.Init(TestCompletionCallback().callback()), IsOk()); | 835 ASSERT_THAT( |
| 836 upload_stream.Init(TestCompletionCallback().callback(), BoundNetLog()), |
| 837 IsOk()); |
| 824 | 838 |
| 825 BoundNetLog net_log; | 839 BoundNetLog net_log; |
| 826 std::unique_ptr<SpdyHttpStream> http_stream( | 840 std::unique_ptr<SpdyHttpStream> http_stream( |
| 827 new SpdyHttpStream(session_, true)); | 841 new SpdyHttpStream(session_, true)); |
| 828 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, | 842 ASSERT_EQ(OK, http_stream->InitializeStream(&request, DEFAULT_PRIORITY, |
| 829 net_log, CompletionCallback())); | 843 net_log, CompletionCallback())); |
| 830 | 844 |
| 831 HttpRequestHeaders headers; | 845 HttpRequestHeaders headers; |
| 832 HttpResponseInfo response; | 846 HttpResponseInfo response; |
| 833 // This will attempt to Write() the initial request and headers, which will | 847 // This will attempt to Write() the initial request and headers, which will |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 907 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); | 921 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); |
| 908 | 922 |
| 909 MockRead reads[] = { | 923 MockRead reads[] = { |
| 910 CreateMockRead(resp, 2), MockRead(SYNCHRONOUS, 0, 3), | 924 CreateMockRead(resp, 2), MockRead(SYNCHRONOUS, 0, 3), |
| 911 }; | 925 }; |
| 912 | 926 |
| 913 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 927 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 914 | 928 |
| 915 ReadErrorUploadDataStream upload_data_stream( | 929 ReadErrorUploadDataStream upload_data_stream( |
| 916 ReadErrorUploadDataStream::FailureMode::SYNC); | 930 ReadErrorUploadDataStream::FailureMode::SYNC); |
| 917 ASSERT_THAT(upload_data_stream.Init(TestCompletionCallback().callback()), | 931 ASSERT_THAT(upload_data_stream.Init(TestCompletionCallback().callback(), |
| 932 BoundNetLog()), |
| 918 IsOk()); | 933 IsOk()); |
| 919 | 934 |
| 920 HttpRequestInfo request; | 935 HttpRequestInfo request; |
| 921 request.method = "POST"; | 936 request.method = "POST"; |
| 922 request.url = GURL("http://www.example.org/"); | 937 request.url = GURL("http://www.example.org/"); |
| 923 request.upload_data_stream = &upload_data_stream; | 938 request.upload_data_stream = &upload_data_stream; |
| 924 | 939 |
| 925 TestCompletionCallback callback; | 940 TestCompletionCallback callback; |
| 926 HttpResponseInfo response; | 941 HttpResponseInfo response; |
| 927 HttpRequestHeaders headers; | 942 HttpRequestHeaders headers; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 955 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); | 970 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); |
| 956 | 971 |
| 957 MockRead reads[] = { | 972 MockRead reads[] = { |
| 958 MockRead(ASYNC, 0, 2), | 973 MockRead(ASYNC, 0, 2), |
| 959 }; | 974 }; |
| 960 | 975 |
| 961 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 976 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 962 | 977 |
| 963 ReadErrorUploadDataStream upload_data_stream( | 978 ReadErrorUploadDataStream upload_data_stream( |
| 964 ReadErrorUploadDataStream::FailureMode::ASYNC); | 979 ReadErrorUploadDataStream::FailureMode::ASYNC); |
| 965 ASSERT_THAT(upload_data_stream.Init(TestCompletionCallback().callback()), | 980 ASSERT_THAT(upload_data_stream.Init(TestCompletionCallback().callback(), |
| 981 BoundNetLog()), |
| 966 IsOk()); | 982 IsOk()); |
| 967 | 983 |
| 968 HttpRequestInfo request; | 984 HttpRequestInfo request; |
| 969 request.method = "POST"; | 985 request.method = "POST"; |
| 970 request.url = GURL("http://www.example.org/"); | 986 request.url = GURL("http://www.example.org/"); |
| 971 request.upload_data_stream = &upload_data_stream; | 987 request.upload_data_stream = &upload_data_stream; |
| 972 | 988 |
| 973 TestCompletionCallback callback; | 989 TestCompletionCallback callback; |
| 974 HttpResponseInfo response; | 990 HttpResponseInfo response; |
| 975 HttpRequestHeaders headers; | 991 HttpRequestHeaders headers; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 999 MockRead reads[] = {MockRead(ASYNC, 0, 3)}; | 1015 MockRead reads[] = {MockRead(ASYNC, 0, 3)}; |
| 1000 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 1016 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 1001 | 1017 |
| 1002 HttpRequestInfo request; | 1018 HttpRequestInfo request; |
| 1003 request.method = "POST"; | 1019 request.method = "POST"; |
| 1004 request.url = GURL("http://www.example.org/"); | 1020 request.url = GURL("http://www.example.org/"); |
| 1005 ChunkedUploadDataStream upload_stream(0); | 1021 ChunkedUploadDataStream upload_stream(0); |
| 1006 request.upload_data_stream = &upload_stream; | 1022 request.upload_data_stream = &upload_stream; |
| 1007 | 1023 |
| 1008 TestCompletionCallback upload_callback; | 1024 TestCompletionCallback upload_callback; |
| 1009 ASSERT_THAT(upload_stream.Init(upload_callback.callback()), IsOk()); | 1025 ASSERT_THAT(upload_stream.Init(upload_callback.callback(), BoundNetLog()), |
| 1026 IsOk()); |
| 1010 upload_stream.AppendData("", 0, true); | 1027 upload_stream.AppendData("", 0, true); |
| 1011 | 1028 |
| 1012 BoundNetLog net_log; | 1029 BoundNetLog net_log; |
| 1013 SpdyHttpStream http_stream(session_, true); | 1030 SpdyHttpStream http_stream(session_, true); |
| 1014 ASSERT_THAT(http_stream.InitializeStream(&request, DEFAULT_PRIORITY, net_log, | 1031 ASSERT_THAT(http_stream.InitializeStream(&request, DEFAULT_PRIORITY, net_log, |
| 1015 CompletionCallback()), | 1032 CompletionCallback()), |
| 1016 IsOk()); | 1033 IsOk()); |
| 1017 | 1034 |
| 1018 CancelStreamCallback callback(&http_stream); | 1035 CancelStreamCallback callback(&http_stream); |
| 1019 HttpRequestHeaders headers; | 1036 HttpRequestHeaders headers; |
| 1020 HttpResponseInfo response; | 1037 HttpResponseInfo response; |
| 1021 // This will attempt to Write() the initial request and headers, which will | 1038 // This will attempt to Write() the initial request and headers, which will |
| 1022 // complete asynchronously. | 1039 // complete asynchronously. |
| 1023 EXPECT_EQ(ERR_IO_PENDING, | 1040 EXPECT_EQ(ERR_IO_PENDING, |
| 1024 http_stream.SendRequest(headers, &response, callback.callback())); | 1041 http_stream.SendRequest(headers, &response, callback.callback())); |
| 1025 EXPECT_TRUE(HasSpdySession(http_session_->spdy_session_pool(), key_)); | 1042 EXPECT_TRUE(HasSpdySession(http_session_->spdy_session_pool(), key_)); |
| 1026 | 1043 |
| 1027 // The callback cancels |http_stream|. | 1044 // The callback cancels |http_stream|. |
| 1028 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 1045 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
| 1029 | 1046 |
| 1030 EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_)); | 1047 EXPECT_FALSE(HasSpdySession(http_session_->spdy_session_pool(), key_)); |
| 1031 } | 1048 } |
| 1032 | 1049 |
| 1033 // TODO(willchan): Write a longer test for SpdyStream that exercises all | 1050 // TODO(willchan): Write a longer test for SpdyStream that exercises all |
| 1034 // methods. | 1051 // methods. |
| 1035 | 1052 |
| 1036 } // namespace net | 1053 } // namespace net |
| OLD | NEW |