| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/bidirectional_stream_spdy_impl.h" | 5 #include "net/spdy/bidirectional_stream_spdy_impl.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 TestLoadTimingNotReused(load_timing_info); | 378 TestLoadTimingNotReused(load_timing_info); |
| 379 LoadTimingInfo load_timing_info2; | 379 LoadTimingInfo load_timing_info2; |
| 380 EXPECT_TRUE(delegate2->GetLoadTimingInfo(&load_timing_info2)); | 380 EXPECT_TRUE(delegate2->GetLoadTimingInfo(&load_timing_info2)); |
| 381 TestLoadTimingReused(load_timing_info2); | 381 TestLoadTimingReused(load_timing_info2); |
| 382 } | 382 } |
| 383 | 383 |
| 384 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) { | 384 TEST_F(BidirectionalStreamSpdyImplTest, SendDataAfterStreamFailed) { |
| 385 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 385 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 386 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); | 386 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); |
| 387 SpdySerializedFrame rst( | 387 SpdySerializedFrame rst( |
| 388 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 388 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 389 | 389 |
| 390 MockWrite writes[] = { | 390 MockWrite writes[] = { |
| 391 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), | 391 CreateMockWrite(req, 0), CreateMockWrite(rst, 2), |
| 392 }; | 392 }; |
| 393 | 393 |
| 394 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 394 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 395 SpdySerializedFrame resp( | 395 SpdySerializedFrame resp( |
| 396 spdy_util_.ConstructSpdyGetReply(kExtraHeaders, 1, 1)); | 396 spdy_util_.ConstructSpdyGetReply(kExtraHeaders, 1, 1)); |
| 397 | 397 |
| 398 MockRead reads[] = { | 398 MockRead reads[] = { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 // Tests that when received RST_STREAM with NO_ERROR, BidirectionalStream does | 439 // Tests that when received RST_STREAM with NO_ERROR, BidirectionalStream does |
| 440 // not crash when processing pending writes. See crbug.com/650438. | 440 // not crash when processing pending writes. See crbug.com/650438. |
| 441 TEST_P(BidirectionalStreamSpdyImplTest, RstWithNoErrorBeforeSendIsComplete) { | 441 TEST_P(BidirectionalStreamSpdyImplTest, RstWithNoErrorBeforeSendIsComplete) { |
| 442 bool is_test_sendv = GetParam(); | 442 bool is_test_sendv = GetParam(); |
| 443 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 443 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 444 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); | 444 kDefaultUrl, 1, kBodyDataSize * 3, LOW, nullptr, 0)); |
| 445 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 445 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 446 | 446 |
| 447 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); | 447 SpdySerializedFrame resp(spdy_util_.ConstructSpdyPostReply(nullptr, 0)); |
| 448 SpdySerializedFrame rst( | 448 SpdySerializedFrame rst( |
| 449 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_NO_ERROR)); | 449 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_NO_ERROR)); |
| 450 MockRead reads[] = {CreateMockRead(resp, 1), | 450 MockRead reads[] = {CreateMockRead(resp, 1), |
| 451 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. | 451 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause. |
| 452 CreateMockRead(rst, 3), MockRead(ASYNC, 0, 4)}; | 452 CreateMockRead(rst, 3), MockRead(ASYNC, 0, 4)}; |
| 453 | 453 |
| 454 InitSession(reads, arraysize(reads), writes, arraysize(writes)); | 454 InitSession(reads, arraysize(reads), writes, arraysize(writes)); |
| 455 | 455 |
| 456 BidirectionalStreamRequestInfo request_info; | 456 BidirectionalStreamRequestInfo request_info; |
| 457 request_info.method = "POST"; | 457 request_info.method = "POST"; |
| 458 request_info.url = default_url_; | 458 request_info.url = default_url_; |
| 459 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, | 459 request_info.extra_headers.SetHeader(net::HttpRequestHeaders::kContentLength, |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 } else { | 513 } else { |
| 514 delegate->SendData(write_buffer.get(), write_buffer->size(), true); | 514 delegate->SendData(write_buffer.get(), write_buffer->size(), true); |
| 515 } | 515 } |
| 516 base::RunLoop().RunUntilIdle(); | 516 base::RunLoop().RunUntilIdle(); |
| 517 EXPECT_THAT(delegate->error(), IsError(ERR_UNEXPECTED)); | 517 EXPECT_THAT(delegate->error(), IsError(ERR_UNEXPECTED)); |
| 518 EXPECT_TRUE(delegate->on_failed_called()); | 518 EXPECT_TRUE(delegate->on_failed_called()); |
| 519 EXPECT_EQ(is_test_sendv ? 2 : 4, delegate->on_data_sent_count()); | 519 EXPECT_EQ(is_test_sendv ? 2 : 4, delegate->on_data_sent_count()); |
| 520 } | 520 } |
| 521 | 521 |
| 522 } // namespace net | 522 } // namespace net |
| OLD | NEW |