Chromium Code Reviews| 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/tools/quic/test_tools/quic_test_client.h" | 5 #include "net/tools/quic/test_tools/quic_test_client.h" |
| 6 | 6 |
| 7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
| 8 #include "net/base/completion_callback.h" | 8 #include "net/base/completion_callback.h" |
| 9 #include "net/base/net_errors.h" | 9 #include "net/base/net_errors.h" |
| 10 #include "net/cert/cert_verify_result.h" | 10 #include "net/cert/cert_verify_result.h" |
| 11 #include "net/cert/x509_certificate.h" | 11 #include "net/cert/x509_certificate.h" |
| 12 #include "net/quic/crypto/proof_verifier.h" | 12 #include "net/quic/crypto/proof_verifier.h" |
| 13 #include "net/quic/quic_server_id.h" | 13 #include "net/quic/quic_server_id.h" |
| 14 #include "net/quic/test_tools/quic_connection_peer.h" | 14 #include "net/quic/test_tools/quic_connection_peer.h" |
| 15 #include "net/quic/test_tools/quic_session_peer.h" | 15 #include "net/quic/test_tools/quic_session_peer.h" |
| 16 #include "net/quic/test_tools/quic_test_utils.h" | 16 #include "net/quic/test_tools/quic_test_utils.h" |
| 17 #include "net/quic/test_tools/reliable_quic_stream_peer.h" | 17 #include "net/quic/test_tools/reliable_quic_stream_peer.h" |
| 18 #include "net/tools/balsa/balsa_headers.h" | 18 #include "net/tools/balsa/balsa_headers.h" |
| 19 #include "net/tools/quic/quic_epoll_connection_helper.h" | 19 #include "net/tools/quic/quic_epoll_connection_helper.h" |
| 20 #include "net/tools/quic/quic_packet_writer_wrapper.h" | 20 #include "net/tools/quic/quic_packet_writer_wrapper.h" |
| 21 #include "net/tools/quic/quic_spdy_client_stream.h" | 21 #include "net/tools/quic/quic_spdy_client_stream.h" |
| 22 #include "net/tools/quic/spdy_utils.h" | |
| 22 #include "net/tools/quic/test_tools/http_message.h" | 23 #include "net/tools/quic/test_tools/http_message.h" |
| 23 #include "net/tools/quic/test_tools/quic_client_peer.h" | 24 #include "net/tools/quic/test_tools/quic_client_peer.h" |
| 24 #include "url/gurl.h" | 25 #include "url/gurl.h" |
| 25 | 26 |
| 26 using base::StringPiece; | 27 using base::StringPiece; |
| 27 using net::QuicServerId; | 28 using net::QuicServerId; |
| 28 using net::test::QuicConnectionPeer; | 29 using net::test::QuicConnectionPeer; |
| 29 using net::test::QuicSessionPeer; | 30 using net::test::QuicSessionPeer; |
| 30 using net::test::ReliableQuicStreamPeer; | 31 using net::test::ReliableQuicStreamPeer; |
| 31 using std::string; | 32 using std::string; |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 PRIVACY_MODE_DISABLED)); | 249 PRIVACY_MODE_DISABLED)); |
| 249 } | 250 } |
| 250 } | 251 } |
| 251 | 252 |
| 252 QuicSpdyClientStream* stream = GetOrCreateStream(); | 253 QuicSpdyClientStream* stream = GetOrCreateStream(); |
| 253 if (!stream) { return 0; } | 254 if (!stream) { return 0; } |
| 254 | 255 |
| 255 scoped_ptr<BalsaHeaders> munged_headers(MungeHeaders(message.headers(), | 256 scoped_ptr<BalsaHeaders> munged_headers(MungeHeaders(message.headers(), |
| 256 secure_)); | 257 secure_)); |
| 257 ssize_t ret = GetOrCreateStream()->SendRequest( | 258 ssize_t ret = GetOrCreateStream()->SendRequest( |
| 258 munged_headers.get() ? *munged_headers : *message.headers(), | 259 SpdyUtils::RequestHeadersToSpdyHeaders( |
| 260 munged_headers.get() ? *munged_headers : *message.headers()), | |
| 259 message.body(), message.has_complete_message()); | 261 message.body(), message.has_complete_message()); |
| 260 WaitForWriteToFlush(); | 262 WaitForWriteToFlush(); |
| 261 return ret; | 263 return ret; |
| 262 } | 264 } |
| 263 | 265 |
| 264 ssize_t QuicTestClient::SendData(string data, bool last_data) { | 266 ssize_t QuicTestClient::SendData(string data, bool last_data) { |
| 265 return SendData(data, last_data, nullptr); | 267 return SendData(data, last_data, nullptr); |
| 266 } | 268 } |
| 267 | 269 |
| 268 ssize_t QuicTestClient::SendData(string data, | 270 ssize_t QuicTestClient::SendData(string data, |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 456 bool QuicTestClient::response_headers_complete() const { | 458 bool QuicTestClient::response_headers_complete() const { |
| 457 if (stream_ != nullptr) { | 459 if (stream_ != nullptr) { |
| 458 return stream_->headers_decompressed(); | 460 return stream_->headers_decompressed(); |
| 459 } else { | 461 } else { |
| 460 return response_headers_complete_; | 462 return response_headers_complete_; |
| 461 } | 463 } |
| 462 } | 464 } |
| 463 | 465 |
| 464 const BalsaHeaders* QuicTestClient::response_headers() const { | 466 const BalsaHeaders* QuicTestClient::response_headers() const { |
| 465 if (stream_ != nullptr) { | 467 if (stream_ != nullptr) { |
| 466 return &stream_->headers(); | 468 SpdyUtils::SpdyHeadersToResponseHeaders(stream_->headers(), &headers_); |
| 469 return &headers_; | |
| 467 } else { | 470 } else { |
|
ramant (doing other things)
2015/03/25 21:06:21
overly nit: could "return ... } else {" be deleted
Ryan Hamilton
2015/03/25 21:37:43
Done.
| |
| 468 return &headers_; | 471 return &headers_; |
| 469 } | 472 } |
| 470 } | 473 } |
| 471 | 474 |
| 472 int64 QuicTestClient::response_size() const { | 475 int64 QuicTestClient::response_size() const { |
| 473 return bytes_read_; | 476 return bytes_read_; |
| 474 } | 477 } |
| 475 | 478 |
| 476 size_t QuicTestClient::bytes_read() const { | 479 size_t QuicTestClient::bytes_read() const { |
| 477 return bytes_read_; | 480 return bytes_read_; |
| 478 } | 481 } |
| 479 | 482 |
| 480 size_t QuicTestClient::bytes_written() const { | 483 size_t QuicTestClient::bytes_written() const { |
| 481 return bytes_written_; | 484 return bytes_written_; |
| 482 } | 485 } |
| 483 | 486 |
| 484 void QuicTestClient::OnClose(QuicDataStream* stream) { | 487 void QuicTestClient::OnClose(QuicDataStream* stream) { |
| 485 if (stream_ != stream) { | 488 if (stream_ != stream) { |
| 486 return; | 489 return; |
| 487 } | 490 } |
| 488 if (buffer_body()) { | 491 if (buffer_body()) { |
| 489 // TODO(fnk): The stream still buffers the whole thing. Fix that. | 492 // TODO(fnk): The stream still buffers the whole thing. Fix that. |
| 490 response_ = stream_->data(); | 493 response_ = stream_->data(); |
| 491 } | 494 } |
| 492 response_complete_ = true; | 495 response_complete_ = true; |
| 493 response_headers_complete_ = stream_->headers_decompressed(); | 496 response_headers_complete_ = stream_->headers_decompressed(); |
| 494 headers_.CopyFrom(stream_->headers()); | 497 SpdyUtils::SpdyHeadersToResponseHeaders(stream_->headers(), |
| 498 &headers_); | |
| 495 stream_error_ = stream_->stream_error(); | 499 stream_error_ = stream_->stream_error(); |
| 496 bytes_read_ = stream_->stream_bytes_read() + stream_->header_bytes_read(); | 500 bytes_read_ = stream_->stream_bytes_read() + stream_->header_bytes_read(); |
| 497 bytes_written_ = | 501 bytes_written_ = |
| 498 stream_->stream_bytes_written() + stream_->header_bytes_written(); | 502 stream_->stream_bytes_written() + stream_->header_bytes_written(); |
| 499 response_header_size_ = headers_.GetSizeForWriteBuffer(); | 503 response_header_size_ = headers_.GetSizeForWriteBuffer(); |
| 500 response_body_size_ = stream_->data().size(); | 504 response_body_size_ = stream_->data().size(); |
| 501 stream_ = nullptr; | 505 stream_ = nullptr; |
| 502 } | 506 } |
| 503 | 507 |
| 504 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { | 508 void QuicTestClient::UseWriter(QuicPacketWriterWrapper* writer) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 554 // Set policy for headers and crypto streams. | 558 // Set policy for headers and crypto streams. |
| 555 ReliableQuicStreamPeer::SetFecPolicy( | 559 ReliableQuicStreamPeer::SetFecPolicy( |
| 556 QuicSessionPeer::GetHeadersStream(client()->session()), fec_policy); | 560 QuicSessionPeer::GetHeadersStream(client()->session()), fec_policy); |
| 557 ReliableQuicStreamPeer::SetFecPolicy(client()->session()->GetCryptoStream(), | 561 ReliableQuicStreamPeer::SetFecPolicy(client()->session()->GetCryptoStream(), |
| 558 fec_policy); | 562 fec_policy); |
| 559 } | 563 } |
| 560 | 564 |
| 561 } // namespace test | 565 } // namespace test |
| 562 } // namespace tools | 566 } // namespace tools |
| 563 } // namespace net | 567 } // namespace net |
| OLD | NEW |