Chromium Code Reviews| 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/quic/bidirectional_stream_quic_impl.h" | 5 #include "net/quic/bidirectional_stream_quic_impl.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 14 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
| 15 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 16 #include "net/http/bidirectional_stream_request_info.h" | 16 #include "net/http/bidirectional_stream_request_info.h" |
| 17 #include "net/http/transport_security_state.h" | 17 #include "net/http/transport_security_state.h" |
| 18 #include "net/log/test_net_log.h" | |
| 19 #include "net/log/test_net_log_util.h" | |
| 18 #include "net/quic/crypto/crypto_protocol.h" | 20 #include "net/quic/crypto/crypto_protocol.h" |
| 19 #include "net/quic/crypto/quic_decrypter.h" | 21 #include "net/quic/crypto/quic_decrypter.h" |
| 20 #include "net/quic/crypto/quic_encrypter.h" | 22 #include "net/quic/crypto/quic_encrypter.h" |
| 21 #include "net/quic/crypto/quic_server_info.h" | 23 #include "net/quic/crypto/quic_server_info.h" |
| 22 #include "net/quic/quic_chromium_client_session.h" | 24 #include "net/quic/quic_chromium_client_session.h" |
| 23 #include "net/quic/quic_chromium_client_stream.h" | 25 #include "net/quic/quic_chromium_client_stream.h" |
| 24 #include "net/quic/quic_chromium_connection_helper.h" | 26 #include "net/quic/quic_chromium_connection_helper.h" |
| 25 #include "net/quic/quic_chromium_packet_reader.h" | 27 #include "net/quic/quic_chromium_packet_reader.h" |
| 26 #include "net/quic/quic_chromium_packet_writer.h" | 28 #include "net/quic/quic_chromium_packet_writer.h" |
| 27 #include "net/quic/quic_connection.h" | 29 #include "net/quic/quic_connection.h" |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 struct PacketToWrite { | 267 struct PacketToWrite { |
| 266 PacketToWrite(IoMode mode, QuicEncryptedPacket* packet) | 268 PacketToWrite(IoMode mode, QuicEncryptedPacket* packet) |
| 267 : mode(mode), packet(packet) {} | 269 : mode(mode), packet(packet) {} |
| 268 PacketToWrite(IoMode mode, int rv) : mode(mode), packet(nullptr), rv(rv) {} | 270 PacketToWrite(IoMode mode, int rv) : mode(mode), packet(nullptr), rv(rv) {} |
| 269 IoMode mode; | 271 IoMode mode; |
| 270 QuicEncryptedPacket* packet; | 272 QuicEncryptedPacket* packet; |
| 271 int rv; | 273 int rv; |
| 272 }; | 274 }; |
| 273 | 275 |
| 274 BidirectionalStreamQuicImplTest() | 276 BidirectionalStreamQuicImplTest() |
| 275 : net_log_(BoundNetLog()), | 277 : crypto_config_(CryptoTestUtils::ProofVerifierForTesting()), |
| 276 crypto_config_(CryptoTestUtils::ProofVerifierForTesting()), | |
| 277 read_buffer_(new IOBufferWithSize(4096)), | 278 read_buffer_(new IOBufferWithSize(4096)), |
| 278 connection_id_(2), | 279 connection_id_(2), |
| 279 stream_id_(kClientDataStreamId1), | 280 stream_id_(kClientDataStreamId1), |
| 280 maker_(GetParam(), connection_id_, &clock_, kDefaultServerHostName), | 281 maker_(GetParam(), connection_id_, &clock_, kDefaultServerHostName), |
| 281 random_generator_(0) { | 282 random_generator_(0) { |
| 282 IPAddressNumber ip; | 283 IPAddressNumber ip; |
| 283 CHECK(ParseIPLiteralToNumber("192.0.2.33", &ip)); | 284 CHECK(ParseIPLiteralToNumber("192.0.2.33", &ip)); |
| 284 peer_addr_ = IPEndPoint(ip, 443); | 285 peer_addr_ = IPEndPoint(ip, 443); |
| 285 self_addr_ = IPEndPoint(ip, 8435); | 286 self_addr_ = IPEndPoint(ip, 8435); |
| 286 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); | 287 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 315 mock_writes_[i] = MockWrite(writes_[i].mode, writes_[i].rv, i); | 316 mock_writes_[i] = MockWrite(writes_[i].mode, writes_[i].rv, i); |
| 316 } else { | 317 } else { |
| 317 mock_writes_[i] = MockWrite(writes_[i].mode, writes_[i].packet->data(), | 318 mock_writes_[i] = MockWrite(writes_[i].mode, writes_[i].packet->data(), |
| 318 writes_[i].packet->length()); | 319 writes_[i].packet->length()); |
| 319 } | 320 } |
| 320 }; | 321 }; |
| 321 | 322 |
| 322 socket_data_.reset(new StaticSocketDataProvider( | 323 socket_data_.reset(new StaticSocketDataProvider( |
| 323 nullptr, 0, mock_writes_.get(), writes_.size())); | 324 nullptr, 0, mock_writes_.get(), writes_.size())); |
| 324 | 325 |
| 325 MockUDPClientSocket* socket = | 326 MockUDPClientSocket* socket = new MockUDPClientSocket( |
|
mmenke
2016/03/23 20:32:21
Not realted to this CL, but this should be a scope
xunjieli
2016/03/23 22:19:23
You are right. I copied from quic_http_stream_test
| |
| 326 new MockUDPClientSocket(socket_data_.get(), net_log_.net_log()); | 327 socket_data_.get(), net_log().bound().net_log()); |
| 327 socket->Connect(peer_addr_); | 328 socket->Connect(peer_addr_); |
| 328 runner_ = new TestTaskRunner(&clock_); | 329 runner_ = new TestTaskRunner(&clock_); |
| 329 helper_.reset(new QuicChromiumConnectionHelper(runner_.get(), &clock_, | 330 helper_.reset(new QuicChromiumConnectionHelper(runner_.get(), &clock_, |
| 330 &random_generator_)); | 331 &random_generator_)); |
| 331 connection_ = new QuicConnection( | 332 connection_ = new QuicConnection( |
| 332 connection_id_, peer_addr_, helper_.get(), | 333 connection_id_, peer_addr_, helper_.get(), |
| 333 new QuicChromiumPacketWriter(socket), true /* owns_writer */, | 334 new QuicChromiumPacketWriter(socket), true /* owns_writer */, |
| 334 Perspective::IS_CLIENT, SupportedVersions(GetParam())); | 335 Perspective::IS_CLIENT, SupportedVersions(GetParam())); |
| 335 | 336 |
| 336 session_.reset(new QuicChromiumClientSession( | 337 session_.reset(new QuicChromiumClientSession( |
| 337 connection_, scoped_ptr<DatagramClientSocket>(socket), | 338 connection_, scoped_ptr<DatagramClientSocket>(socket), |
| 338 /*stream_factory=*/nullptr, &crypto_client_stream_factory_, &clock_, | 339 /*stream_factory=*/nullptr, &crypto_client_stream_factory_, &clock_, |
| 339 &transport_security_state_, make_scoped_ptr((QuicServerInfo*)nullptr), | 340 &transport_security_state_, make_scoped_ptr((QuicServerInfo*)nullptr), |
| 340 QuicServerId(kDefaultServerHostName, kDefaultServerPort, | 341 QuicServerId(kDefaultServerHostName, kDefaultServerPort, |
| 341 PRIVACY_MODE_DISABLED), | 342 PRIVACY_MODE_DISABLED), |
| 342 kQuicYieldAfterPacketsRead, | 343 kQuicYieldAfterPacketsRead, |
| 343 QuicTime::Delta::FromMilliseconds(kQuicYieldAfterDurationMilliseconds), | 344 QuicTime::Delta::FromMilliseconds(kQuicYieldAfterDurationMilliseconds), |
| 344 /*cert_verify_flags=*/0, DefaultQuicConfig(), &crypto_config_, | 345 /*cert_verify_flags=*/0, DefaultQuicConfig(), &crypto_config_, |
| 345 "CONNECTION_UNKNOWN", base::TimeTicks::Now(), &push_promise_index_, | 346 "CONNECTION_UNKNOWN", base::TimeTicks::Now(), &push_promise_index_, |
| 346 base::ThreadTaskRunnerHandle::Get().get(), | 347 base::ThreadTaskRunnerHandle::Get().get(), |
| 347 /*socket_performance_watcher=*/nullptr, nullptr)); | 348 /*socket_performance_watcher=*/nullptr, net_log().bound().net_log())); |
| 348 session_->Initialize(); | 349 session_->Initialize(); |
| 349 session_->GetCryptoStream()->CryptoConnect(); | 350 session_->GetCryptoStream()->CryptoConnect(); |
| 350 EXPECT_TRUE(session_->IsCryptoHandshakeConfirmed()); | 351 EXPECT_TRUE(session_->IsCryptoHandshakeConfirmed()); |
| 351 } | 352 } |
| 352 | 353 |
| 353 void SetRequest(const std::string& method, | 354 void SetRequest(const std::string& method, |
| 354 const std::string& path, | 355 const std::string& path, |
| 355 RequestPriority priority) { | 356 RequestPriority priority) { |
| 356 request_headers_ = maker_.GetRequestHeaders(method, "http", path); | 357 request_headers_ = maker_.GetRequestHeaders(method, "http", path); |
| 357 } | 358 } |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 451 } | 452 } |
| 452 | 453 |
| 453 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( | 454 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( |
| 454 QuicPacketNumber packet_number, | 455 QuicPacketNumber packet_number, |
| 455 QuicPacketNumber largest_received, | 456 QuicPacketNumber largest_received, |
| 456 QuicPacketNumber least_unacked) { | 457 QuicPacketNumber least_unacked) { |
| 457 return maker_.MakeAckPacket(packet_number, largest_received, least_unacked, | 458 return maker_.MakeAckPacket(packet_number, largest_received, least_unacked, |
| 458 !kIncludeCongestionFeedback); | 459 !kIncludeCongestionFeedback); |
| 459 } | 460 } |
| 460 | 461 |
| 461 const BoundNetLog& net_log() const { return net_log_; } | 462 const BoundTestNetLog& net_log() const { return net_log_; } |
|
mmenke
2016/03/23 20:32:21
This should be a TestNetLog
BoundTestNetLog is fo
mmenke
2016/03/23 22:11:59
Oops...intended to delete this comment - looks lik
xunjieli
2016/03/23 22:19:23
Acknowledged.
| |
| 462 | 463 |
| 463 QuicChromiumClientSession* session() const { return session_.get(); } | 464 QuicChromiumClientSession* session() const { return session_.get(); } |
| 464 | 465 |
| 465 private: | 466 private: |
| 466 BoundNetLog net_log_; | 467 BoundTestNetLog net_log_; |
| 467 scoped_refptr<TestTaskRunner> runner_; | 468 scoped_refptr<TestTaskRunner> runner_; |
| 468 scoped_ptr<MockWrite[]> mock_writes_; | 469 scoped_ptr<MockWrite[]> mock_writes_; |
| 469 MockClock clock_; | 470 MockClock clock_; |
| 470 QuicConnection* connection_; | 471 QuicConnection* connection_; |
| 471 scoped_ptr<QuicChromiumConnectionHelper> helper_; | 472 scoped_ptr<QuicChromiumConnectionHelper> helper_; |
| 472 TransportSecurityState transport_security_state_; | 473 TransportSecurityState transport_security_state_; |
| 473 scoped_ptr<QuicChromiumClientSession> session_; | 474 scoped_ptr<QuicChromiumClientSession> session_; |
| 474 QuicCryptoClientConfig crypto_config_; | 475 QuicCryptoClientConfig crypto_config_; |
| 475 HttpRequestHeaders headers_; | 476 HttpRequestHeaders headers_; |
| 476 HttpResponseInfo response_; | 477 HttpResponseInfo response_; |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 503 | 504 |
| 504 BidirectionalStreamRequestInfo request; | 505 BidirectionalStreamRequestInfo request; |
| 505 request.method = "GET"; | 506 request.method = "GET"; |
| 506 request.url = GURL("http://www.google.com/"); | 507 request.url = GURL("http://www.google.com/"); |
| 507 request.end_stream_on_headers = true; | 508 request.end_stream_on_headers = true; |
| 508 request.priority = DEFAULT_PRIORITY; | 509 request.priority = DEFAULT_PRIORITY; |
| 509 | 510 |
| 510 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 511 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 511 scoped_ptr<TestDelegateBase> delegate( | 512 scoped_ptr<TestDelegateBase> delegate( |
| 512 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 513 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 513 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 514 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 514 delegate->WaitUntilNextCallback(); // OnHeadersSent | 515 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 515 | 516 |
| 516 // Server acks the request. | 517 // Server acks the request. |
| 517 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 518 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 518 | 519 |
| 519 // Server sends the response headers. | 520 // Server sends the response headers. |
| 520 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 521 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 521 | 522 |
| 522 size_t spdy_response_headers_frame_length; | 523 size_t spdy_response_headers_frame_length; |
| 523 QuicStreamOffset offset = 0; | 524 QuicStreamOffset offset = 0; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 558 | 559 |
| 559 EXPECT_EQ(2, delegate->on_data_read_count()); | 560 EXPECT_EQ(2, delegate->on_data_read_count()); |
| 560 EXPECT_EQ(0, delegate->on_data_sent_count()); | 561 EXPECT_EQ(0, delegate->on_data_sent_count()); |
| 561 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); | 562 EXPECT_EQ(kProtoQUIC1SPDY3, delegate->GetProtocol()); |
| 562 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), | 563 EXPECT_EQ(static_cast<int64_t>(spdy_request_headers_frame_length), |
| 563 delegate->GetTotalSentBytes()); | 564 delegate->GetTotalSentBytes()); |
| 564 EXPECT_EQ( | 565 EXPECT_EQ( |
| 565 static_cast<int64_t>(spdy_response_headers_frame_length + | 566 static_cast<int64_t>(spdy_response_headers_frame_length + |
| 566 strlen(kResponseBody) + spdy_trailers_frame_length), | 567 strlen(kResponseBody) + spdy_trailers_frame_length), |
| 567 delegate->GetTotalReceivedBytes()); | 568 delegate->GetTotalReceivedBytes()); |
| 569 // Check that NetLog was filled as expected. | |
| 570 TestNetLogEntry::List entries; | |
| 571 net_log().GetEntries(&entries); | |
| 572 size_t pos = ExpectLogContainsSomewhere( | |
| 573 entries, /*min_offset=*/0, | |
| 574 NetLog::TYPE_QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS, | |
| 575 NetLog::PHASE_NONE); | |
| 576 pos = ExpectLogContainsSomewhere( | |
| 577 entries, /*min_offset=*/pos, | |
| 578 NetLog::TYPE_QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS, | |
| 579 NetLog::PHASE_NONE); | |
| 580 ExpectLogContainsSomewhere( | |
| 581 entries, /*min_offset=*/pos, | |
| 582 NetLog::TYPE_QUIC_CHROMIUM_CLIENT_STREAM_SEND_REQUEST_HEADERS, | |
| 583 NetLog::PHASE_NONE); | |
| 568 } | 584 } |
| 569 | 585 |
| 570 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) { | 586 TEST_P(BidirectionalStreamQuicImplTest, PostRequest) { |
| 571 SetRequest("POST", "/", DEFAULT_PRIORITY); | 587 SetRequest("POST", "/", DEFAULT_PRIORITY); |
| 572 size_t spdy_request_headers_frame_length; | 588 size_t spdy_request_headers_frame_length; |
| 573 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY, | 589 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY, |
| 574 &spdy_request_headers_frame_length)); | 590 &spdy_request_headers_frame_length)); |
| 575 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, kUploadData)); | 591 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, kUploadData)); |
| 576 AddWrite(ConstructAckPacket(3, 3, 1)); | 592 AddWrite(ConstructAckPacket(3, 3, 1)); |
| 577 | 593 |
| 578 Initialize(); | 594 Initialize(); |
| 579 | 595 |
| 580 BidirectionalStreamRequestInfo request; | 596 BidirectionalStreamRequestInfo request; |
| 581 request.method = "POST"; | 597 request.method = "POST"; |
| 582 request.url = GURL("http://www.google.com/"); | 598 request.url = GURL("http://www.google.com/"); |
| 583 request.end_stream_on_headers = false; | 599 request.end_stream_on_headers = false; |
| 584 request.priority = DEFAULT_PRIORITY; | 600 request.priority = DEFAULT_PRIORITY; |
| 585 | 601 |
| 586 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 602 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 587 scoped_ptr<TestDelegateBase> delegate( | 603 scoped_ptr<TestDelegateBase> delegate( |
| 588 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 604 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 589 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 605 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 590 delegate->WaitUntilNextCallback(); // OnHeadersSent | 606 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 591 | 607 |
| 592 // Send a DATA frame. | 608 // Send a DATA frame. |
| 593 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); | 609 scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData)); |
| 594 | 610 |
| 595 delegate->SendData(buf.get(), buf->size(), true); | 611 delegate->SendData(buf.get(), buf->size(), true); |
| 596 delegate->WaitUntilNextCallback(); // OnDataSent | 612 delegate->WaitUntilNextCallback(); // OnDataSent |
| 597 | 613 |
| 598 // Server acks the request. | 614 // Server acks the request. |
| 599 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 615 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 656 | 672 |
| 657 BidirectionalStreamRequestInfo request; | 673 BidirectionalStreamRequestInfo request; |
| 658 request.method = "POST"; | 674 request.method = "POST"; |
| 659 request.url = GURL("http://www.google.com/"); | 675 request.url = GURL("http://www.google.com/"); |
| 660 request.end_stream_on_headers = false; | 676 request.end_stream_on_headers = false; |
| 661 request.priority = DEFAULT_PRIORITY; | 677 request.priority = DEFAULT_PRIORITY; |
| 662 | 678 |
| 663 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 679 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 664 scoped_ptr<TestDelegateBase> delegate( | 680 scoped_ptr<TestDelegateBase> delegate( |
| 665 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 681 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 666 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 682 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 667 delegate->WaitUntilNextCallback(); // OnHeadersSent | 683 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 668 | 684 |
| 669 // Server acks the request. | 685 // Server acks the request. |
| 670 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 686 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 671 | 687 |
| 672 // Server sends the response headers. | 688 // Server sends the response headers. |
| 673 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 689 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 674 size_t spdy_response_headers_frame_length; | 690 size_t spdy_response_headers_frame_length; |
| 675 ProcessPacket(ConstructResponseHeadersPacket( | 691 ProcessPacket(ConstructResponseHeadersPacket( |
| 676 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); | 692 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 733 | 749 |
| 734 BidirectionalStreamRequestInfo request; | 750 BidirectionalStreamRequestInfo request; |
| 735 request.method = "GET"; | 751 request.method = "GET"; |
| 736 request.url = GURL("http://www.google.com/"); | 752 request.url = GURL("http://www.google.com/"); |
| 737 request.end_stream_on_headers = true; | 753 request.end_stream_on_headers = true; |
| 738 request.priority = DEFAULT_PRIORITY; | 754 request.priority = DEFAULT_PRIORITY; |
| 739 | 755 |
| 740 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 756 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 741 scoped_ptr<TestDelegateBase> delegate( | 757 scoped_ptr<TestDelegateBase> delegate( |
| 742 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 758 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 743 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 759 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 744 delegate->WaitUntilNextCallback(); // OnHeadersSent | 760 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 745 | 761 |
| 746 // Server sends a Rst. | 762 // Server sends a Rst. |
| 747 ProcessPacket(ConstructRstStreamPacket(1)); | 763 ProcessPacket(ConstructRstStreamPacket(1)); |
| 748 | 764 |
| 749 delegate->WaitUntilNextCallback(); // OnFailed | 765 delegate->WaitUntilNextCallback(); // OnFailed |
| 750 TestCompletionCallback cb; | 766 TestCompletionCallback cb; |
| 751 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->ReadData(cb.callback())); | 767 EXPECT_EQ(ERR_QUIC_PROTOCOL_ERROR, delegate->ReadData(cb.callback())); |
| 752 | 768 |
| 753 base::MessageLoop::current()->RunUntilIdle(); | 769 base::MessageLoop::current()->RunUntilIdle(); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 772 | 788 |
| 773 BidirectionalStreamRequestInfo request; | 789 BidirectionalStreamRequestInfo request; |
| 774 request.method = "GET"; | 790 request.method = "GET"; |
| 775 request.url = GURL("http://www.google.com/"); | 791 request.url = GURL("http://www.google.com/"); |
| 776 request.end_stream_on_headers = true; | 792 request.end_stream_on_headers = true; |
| 777 request.priority = DEFAULT_PRIORITY; | 793 request.priority = DEFAULT_PRIORITY; |
| 778 | 794 |
| 779 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 795 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 780 scoped_ptr<TestDelegateBase> delegate( | 796 scoped_ptr<TestDelegateBase> delegate( |
| 781 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 797 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 782 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 798 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 783 delegate->WaitUntilNextCallback(); // OnHeadersSent | 799 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 784 | 800 |
| 785 // Server acks the request. | 801 // Server acks the request. |
| 786 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 802 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 787 | 803 |
| 788 // Server sends the response headers. | 804 // Server sends the response headers. |
| 789 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 805 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 790 | 806 |
| 791 size_t spdy_response_headers_frame_length; | 807 size_t spdy_response_headers_frame_length; |
| 792 QuicStreamOffset offset = 0; | 808 QuicStreamOffset offset = 0; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 829 | 845 |
| 830 BidirectionalStreamRequestInfo request; | 846 BidirectionalStreamRequestInfo request; |
| 831 request.method = "POST"; | 847 request.method = "POST"; |
| 832 request.url = GURL("http://www.google.com/"); | 848 request.url = GURL("http://www.google.com/"); |
| 833 request.end_stream_on_headers = false; | 849 request.end_stream_on_headers = false; |
| 834 request.priority = DEFAULT_PRIORITY; | 850 request.priority = DEFAULT_PRIORITY; |
| 835 | 851 |
| 836 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 852 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 837 scoped_ptr<TestDelegateBase> delegate( | 853 scoped_ptr<TestDelegateBase> delegate( |
| 838 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 854 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 839 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 855 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 840 delegate->WaitUntilNextCallback(); // OnHeadersSent | 856 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 841 | 857 |
| 842 // Server acks the request. | 858 // Server acks the request. |
| 843 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 859 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 844 | 860 |
| 845 // Server sends the response headers. | 861 // Server sends the response headers. |
| 846 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 862 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 847 size_t spdy_response_headers_frame_length; | 863 size_t spdy_response_headers_frame_length; |
| 848 ProcessPacket(ConstructResponseHeadersPacket( | 864 ProcessPacket(ConstructResponseHeadersPacket( |
| 849 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); | 865 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 879 | 895 |
| 880 BidirectionalStreamRequestInfo request; | 896 BidirectionalStreamRequestInfo request; |
| 881 request.method = "GET"; | 897 request.method = "GET"; |
| 882 request.url = GURL("http://www.google.com/"); | 898 request.url = GURL("http://www.google.com/"); |
| 883 request.end_stream_on_headers = true; | 899 request.end_stream_on_headers = true; |
| 884 request.priority = DEFAULT_PRIORITY; | 900 request.priority = DEFAULT_PRIORITY; |
| 885 | 901 |
| 886 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 902 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 887 scoped_ptr<TestDelegateBase> delegate( | 903 scoped_ptr<TestDelegateBase> delegate( |
| 888 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 904 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 889 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 905 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 890 delegate->WaitUntilNextCallback(); // OnHeadersSent | 906 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 891 | 907 |
| 892 // Server acks the request. | 908 // Server acks the request. |
| 893 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 909 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 894 | 910 |
| 895 // Server sends the response headers. | 911 // Server sends the response headers. |
| 896 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 912 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 897 | 913 |
| 898 size_t spdy_response_headers_frame_length; | 914 size_t spdy_response_headers_frame_length; |
| 899 QuicStreamOffset offset = 0; | 915 QuicStreamOffset offset = 0; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 933 | 949 |
| 934 BidirectionalStreamRequestInfo request; | 950 BidirectionalStreamRequestInfo request; |
| 935 request.method = "POST"; | 951 request.method = "POST"; |
| 936 request.url = GURL("http://www.google.com/"); | 952 request.url = GURL("http://www.google.com/"); |
| 937 request.end_stream_on_headers = false; | 953 request.end_stream_on_headers = false; |
| 938 request.priority = DEFAULT_PRIORITY; | 954 request.priority = DEFAULT_PRIORITY; |
| 939 | 955 |
| 940 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 956 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 941 scoped_ptr<TestDelegateBase> delegate( | 957 scoped_ptr<TestDelegateBase> delegate( |
| 942 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); | 958 new TestDelegateBase(read_buffer.get(), kReadBufferSize)); |
| 943 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 959 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 944 delegate->WaitUntilNextCallback(); // OnHeadersSent | 960 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 945 | 961 |
| 946 // Server acks the request. | 962 // Server acks the request. |
| 947 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 963 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 948 | 964 |
| 949 // Server sends the response headers. | 965 // Server sends the response headers. |
| 950 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 966 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 951 size_t spdy_response_headers_frame_length; | 967 size_t spdy_response_headers_frame_length; |
| 952 ProcessPacket(ConstructResponseHeadersPacket( | 968 ProcessPacket(ConstructResponseHeadersPacket( |
| 953 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); | 969 2, !kFin, response_headers, &spdy_response_headers_frame_length, 0)); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 983 BidirectionalStreamRequestInfo request; | 999 BidirectionalStreamRequestInfo request; |
| 984 request.method = "POST"; | 1000 request.method = "POST"; |
| 985 request.url = GURL("http://www.google.com/"); | 1001 request.url = GURL("http://www.google.com/"); |
| 986 request.end_stream_on_headers = false; | 1002 request.end_stream_on_headers = false; |
| 987 request.priority = DEFAULT_PRIORITY; | 1003 request.priority = DEFAULT_PRIORITY; |
| 988 | 1004 |
| 989 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 1005 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 990 scoped_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( | 1006 scoped_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( |
| 991 read_buffer.get(), kReadBufferSize, | 1007 read_buffer.get(), kReadBufferSize, |
| 992 DeleteStreamDelegate::ON_HEADERS_RECEIVED, true)); | 1008 DeleteStreamDelegate::ON_HEADERS_RECEIVED, true)); |
| 993 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 1009 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 994 delegate->WaitUntilNextCallback(); // OnHeadersSent | 1010 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 995 | 1011 |
| 996 // Server acks the request. | 1012 // Server acks the request. |
| 997 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 1013 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 998 | 1014 |
| 999 // Server sends the response headers. | 1015 // Server sends the response headers. |
| 1000 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 1016 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 1001 | 1017 |
| 1002 size_t spdy_response_headers_frame_length; | 1018 size_t spdy_response_headers_frame_length; |
| 1003 ProcessPacket(ConstructResponseHeadersPacket( | 1019 ProcessPacket(ConstructResponseHeadersPacket( |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1026 BidirectionalStreamRequestInfo request; | 1042 BidirectionalStreamRequestInfo request; |
| 1027 request.method = "POST"; | 1043 request.method = "POST"; |
| 1028 request.url = GURL("http://www.google.com/"); | 1044 request.url = GURL("http://www.google.com/"); |
| 1029 request.end_stream_on_headers = false; | 1045 request.end_stream_on_headers = false; |
| 1030 request.priority = DEFAULT_PRIORITY; | 1046 request.priority = DEFAULT_PRIORITY; |
| 1031 | 1047 |
| 1032 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 1048 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 1033 scoped_ptr<DeleteStreamDelegate> delegate( | 1049 scoped_ptr<DeleteStreamDelegate> delegate( |
| 1034 new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, | 1050 new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize, |
| 1035 DeleteStreamDelegate::ON_DATA_READ, true)); | 1051 DeleteStreamDelegate::ON_DATA_READ, true)); |
| 1036 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 1052 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 1037 delegate->WaitUntilNextCallback(); // OnHeadersSent | 1053 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 1038 | 1054 |
| 1039 // Server acks the request. | 1055 // Server acks the request. |
| 1040 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 1056 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 1041 | 1057 |
| 1042 // Server sends the response headers. | 1058 // Server sends the response headers. |
| 1043 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 1059 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 1044 | 1060 |
| 1045 size_t spdy_response_headers_frame_length; | 1061 size_t spdy_response_headers_frame_length; |
| 1046 ProcessPacket(ConstructResponseHeadersPacket( | 1062 ProcessPacket(ConstructResponseHeadersPacket( |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1078 BidirectionalStreamRequestInfo request; | 1094 BidirectionalStreamRequestInfo request; |
| 1079 request.method = "GET"; | 1095 request.method = "GET"; |
| 1080 request.url = GURL("http://www.google.com/"); | 1096 request.url = GURL("http://www.google.com/"); |
| 1081 request.end_stream_on_headers = true; | 1097 request.end_stream_on_headers = true; |
| 1082 request.priority = DEFAULT_PRIORITY; | 1098 request.priority = DEFAULT_PRIORITY; |
| 1083 | 1099 |
| 1084 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); | 1100 scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize)); |
| 1085 scoped_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( | 1101 scoped_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate( |
| 1086 read_buffer.get(), kReadBufferSize, | 1102 read_buffer.get(), kReadBufferSize, |
| 1087 DeleteStreamDelegate::ON_TRAILERS_RECEIVED, true)); | 1103 DeleteStreamDelegate::ON_TRAILERS_RECEIVED, true)); |
| 1088 delegate->Start(&request, net_log(), session()->GetWeakPtr()); | 1104 delegate->Start(&request, net_log().bound(), session()->GetWeakPtr()); |
| 1089 delegate->WaitUntilNextCallback(); // OnHeadersSent | 1105 delegate->WaitUntilNextCallback(); // OnHeadersSent |
| 1090 | 1106 |
| 1091 // Server acks the request. | 1107 // Server acks the request. |
| 1092 ProcessPacket(ConstructAckPacket(1, 0, 0)); | 1108 ProcessPacket(ConstructAckPacket(1, 0, 0)); |
| 1093 | 1109 |
| 1094 // Server sends the response headers. | 1110 // Server sends the response headers. |
| 1095 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); | 1111 SpdyHeaderBlock response_headers = ConstructResponseHeaders("200"); |
| 1096 | 1112 |
| 1097 QuicStreamOffset offset = 0; | 1113 QuicStreamOffset offset = 0; |
| 1098 size_t spdy_response_headers_frame_length; | 1114 size_t spdy_response_headers_frame_length; |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1129 | 1145 |
| 1130 base::MessageLoop::current()->RunUntilIdle(); | 1146 base::MessageLoop::current()->RunUntilIdle(); |
| 1131 | 1147 |
| 1132 EXPECT_EQ(1, delegate->on_data_read_count()); | 1148 EXPECT_EQ(1, delegate->on_data_read_count()); |
| 1133 EXPECT_EQ(0, delegate->on_data_sent_count()); | 1149 EXPECT_EQ(0, delegate->on_data_sent_count()); |
| 1134 } | 1150 } |
| 1135 | 1151 |
| 1136 } // namespace test | 1152 } // namespace test |
| 1137 | 1153 |
| 1138 } // namespace net | 1154 } // namespace net |
| OLD | NEW |