| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/http/bidirectional_stream.h" | 5 #include "net/http/bidirectional_stream.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 HttpNetworkSession::Params params = | 346 HttpNetworkSession::Params params = |
| 347 SpdySessionDependencies::CreateSessionParams(&session_deps_); | 347 SpdySessionDependencies::CreateSessionParams(&session_deps_); |
| 348 scoped_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 348 scoped_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
| 349 delegate.SetRunUntilCompletion(true); | 349 delegate.SetRunUntilCompletion(true); |
| 350 delegate.Start(std::move(request_info), session.get()); | 350 delegate.Start(std::move(request_info), session.get()); |
| 351 | 351 |
| 352 EXPECT_EQ(ERR_DISALLOWED_URL_SCHEME, delegate.error()); | 352 EXPECT_EQ(ERR_DISALLOWED_URL_SCHEME, delegate.error()); |
| 353 } | 353 } |
| 354 | 354 |
| 355 // Simulates user calling ReadData after END_STREAM has been received in | 355 // Simulates user calling ReadData after END_STREAM has been received in |
| 356 // BidirectionalStreamSpdyJob. | 356 // BidirectionalStreamSpdyImpl. |
| 357 TEST_F(BidirectionalStreamTest, TestReadDataAfterClose) { | 357 TEST_F(BidirectionalStreamTest, TestReadDataAfterClose) { |
| 358 scoped_ptr<SpdyFrame> req( | 358 scoped_ptr<SpdyFrame> req( |
| 359 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 359 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 360 // Empty DATA frame with an END_STREAM flag. | 360 // Empty DATA frame with an END_STREAM flag. |
| 361 scoped_ptr<SpdyFrame> end_stream( | 361 scoped_ptr<SpdyFrame> end_stream( |
| 362 spdy_util_.ConstructSpdyBodyFrame(1, nullptr, 0, true)); | 362 spdy_util_.ConstructSpdyBodyFrame(1, nullptr, 0, true)); |
| 363 MockWrite writes[] = { | 363 MockWrite writes[] = { |
| 364 CreateMockWrite(*req.get(), 0), | 364 CreateMockWrite(*req.get(), 0), |
| 365 }; | 365 }; |
| 366 | 366 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 391 | 391 |
| 392 scoped_ptr<BidirectionalStreamRequestInfo> request_info( | 392 scoped_ptr<BidirectionalStreamRequestInfo> request_info( |
| 393 new BidirectionalStreamRequestInfo); | 393 new BidirectionalStreamRequestInfo); |
| 394 request_info->method = "GET"; | 394 request_info->method = "GET"; |
| 395 request_info->url = GURL("https://www.example.org/"); | 395 request_info->url = GURL("https://www.example.org/"); |
| 396 request_info->end_stream_on_headers = true; | 396 request_info->end_stream_on_headers = true; |
| 397 request_info->priority = LOWEST; | 397 request_info->priority = LOWEST; |
| 398 | 398 |
| 399 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 399 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 400 // Create a MockTimer. Retain a raw pointer since the underlying | 400 // Create a MockTimer. Retain a raw pointer since the underlying |
| 401 // BidirectionalStreamJob owns it. | 401 // BidirectionalStreamImpl owns it. |
| 402 MockTimer* timer = new MockTimer(); | 402 MockTimer* timer = new MockTimer(); |
| 403 scoped_ptr<TestDelegateBase> delegate(new TestDelegateBase( | 403 scoped_ptr<TestDelegateBase> delegate(new TestDelegateBase( |
| 404 read_buffer.get(), kReadBufferSize, make_scoped_ptr(timer))); | 404 read_buffer.get(), kReadBufferSize, make_scoped_ptr(timer))); |
| 405 delegate->set_do_not_start_read(true); | 405 delegate->set_do_not_start_read(true); |
| 406 | 406 |
| 407 delegate->Start(std::move(request_info), http_session_.get()); | 407 delegate->Start(std::move(request_info), http_session_.get()); |
| 408 | 408 |
| 409 // Write request, and deliver response headers. | 409 // Write request, and deliver response headers. |
| 410 sequenced_data_->RunUntilPaused(); | 410 sequenced_data_->RunUntilPaused(); |
| 411 EXPECT_FALSE(timer->IsRunning()); | 411 EXPECT_FALSE(timer->IsRunning()); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); | 542 EXPECT_EQ("200", delegate->response_headers().find(":status")->second); |
| 543 EXPECT_EQ(2, delegate->on_data_read_count()); | 543 EXPECT_EQ(2, delegate->on_data_read_count()); |
| 544 EXPECT_EQ(3, delegate->on_data_sent_count()); | 544 EXPECT_EQ(3, delegate->on_data_sent_count()); |
| 545 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); | 545 EXPECT_EQ(kProtoHTTP2, delegate->GetProtocol()); |
| 546 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 546 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 547 delegate->GetTotalSentBytes()); | 547 delegate->GetTotalSentBytes()); |
| 548 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 548 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 549 delegate->GetTotalReceivedBytes()); | 549 delegate->GetTotalReceivedBytes()); |
| 550 } | 550 } |
| 551 | 551 |
| 552 // Tests that BidirectionalStreamSpdyJob::OnClose will complete any remaining | 552 // Tests that BidirectionalStreamSpdyImpl::OnClose will complete any remaining |
| 553 // read even if the read queue is empty. | 553 // read even if the read queue is empty. |
| 554 TEST_F(BidirectionalStreamTest, TestCompleteAsyncRead) { | 554 TEST_F(BidirectionalStreamTest, TestCompleteAsyncRead) { |
| 555 scoped_ptr<SpdyFrame> req( | 555 scoped_ptr<SpdyFrame> req( |
| 556 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 556 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 557 // Empty DATA frame with an END_STREAM flag. | 557 // Empty DATA frame with an END_STREAM flag. |
| 558 scoped_ptr<SpdyFrame> end_stream( | 558 scoped_ptr<SpdyFrame> end_stream( |
| 559 spdy_util_.ConstructSpdyBodyFrame(1, nullptr, 0, true)); | 559 spdy_util_.ConstructSpdyBodyFrame(1, nullptr, 0, true)); |
| 560 | 560 |
| 561 MockWrite writes[] = {CreateMockWrite(*req.get(), 0)}; | 561 MockWrite writes[] = {CreateMockWrite(*req.get(), 0)}; |
| 562 | 562 |
| (...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 | 1189 |
| 1190 // If stream is destroyed, do not call into stream. | 1190 // If stream is destroyed, do not call into stream. |
| 1191 if (!GetParam()) | 1191 if (!GetParam()) |
| 1192 return; | 1192 return; |
| 1193 EXPECT_EQ(0, delegate->GetTotalSentBytes()); | 1193 EXPECT_EQ(0, delegate->GetTotalSentBytes()); |
| 1194 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); | 1194 EXPECT_EQ(0, delegate->GetTotalReceivedBytes()); |
| 1195 EXPECT_EQ(kProtoUnknown, delegate->GetProtocol()); | 1195 EXPECT_EQ(kProtoUnknown, delegate->GetProtocol()); |
| 1196 } | 1196 } |
| 1197 | 1197 |
| 1198 } // namespace net | 1198 } // namespace net |
| OLD | NEW |