| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/compiler_specific.h" | 6 #include "base/compiler_specific.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "net/base/mock_cert_verifier.h" | 8 #include "net/base/mock_cert_verifier.h" |
| 9 #include "net/base/mock_host_resolver.h" | 9 #include "net/base/mock_host_resolver.h" |
| 10 #include "net/base/ssl_config_service_defaults.h" | 10 #include "net/base/ssl_config_service_defaults.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 | 84 |
| 85 // TODO(rch): factor these Construct* methods out into a test helper class. | 85 // TODO(rch): factor these Construct* methods out into a test helper class. |
| 86 scoped_ptr<QuicEncryptedPacket> ConstructChlo() { | 86 scoped_ptr<QuicEncryptedPacket> ConstructChlo() { |
| 87 const std::string host = "www.google.com"; | 87 const std::string host = "www.google.com"; |
| 88 scoped_ptr<QuicPacket> chlo(ConstructClientHelloPacket(0xDEADBEEF, | 88 scoped_ptr<QuicPacket> chlo(ConstructClientHelloPacket(0xDEADBEEF, |
| 89 clock_, | 89 clock_, |
| 90 &random_generator_, | 90 &random_generator_, |
| 91 host)); | 91 host)); |
| 92 QuicFramer framer(QuicDecrypter::Create(kNULL), | 92 QuicFramer framer(QuicDecrypter::Create(kNULL), |
| 93 QuicEncrypter::Create(kNULL)); | 93 QuicEncrypter::Create(kNULL)); |
| 94 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(*chlo)); | 94 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(1, *chlo)); |
| 95 } | 95 } |
| 96 | 96 |
| 97 scoped_ptr<QuicEncryptedPacket> ConstructShlo() { | 97 scoped_ptr<QuicEncryptedPacket> ConstructShlo() { |
| 98 scoped_ptr<QuicPacket> shlo(ConstructHandshakePacket(0xDEADBEEF, kSHLO)); | 98 scoped_ptr<QuicPacket> shlo(ConstructHandshakePacket(0xDEADBEEF, kSHLO)); |
| 99 QuicFramer framer(QuicDecrypter::Create(kNULL), | 99 QuicFramer framer(QuicDecrypter::Create(kNULL), |
| 100 QuicEncrypter::Create(kNULL)); | 100 QuicEncrypter::Create(kNULL)); |
| 101 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(*shlo)); | 101 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(1, *shlo)); |
| 102 } | 102 } |
| 103 | 103 |
| 104 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket( | 104 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket( |
| 105 QuicPacketSequenceNumber num, | 105 QuicPacketSequenceNumber num, |
| 106 QuicStreamId stream_id) { | 106 QuicStreamId stream_id) { |
| 107 QuicPacketHeader header; | 107 QuicPacketHeader header; |
| 108 header.public_header.guid = 0xDEADBEEF; | 108 header.public_header.guid = 0xDEADBEEF; |
| 109 header.public_header.flags = PACKET_PUBLIC_FLAGS_NONE; | 109 header.public_header.reset_flag = false; |
| 110 header.public_header.version_flag = false; |
| 110 header.packet_sequence_number = num; | 111 header.packet_sequence_number = num; |
| 111 header.private_flags = PACKET_PRIVATE_FLAGS_NONE; | 112 header.entropy_flag = false; |
| 113 header.fec_flag = false; |
| 114 header.fec_entropy_flag = false; |
| 112 header.fec_group = 0; | 115 header.fec_group = 0; |
| 113 | 116 |
| 114 QuicRstStreamFrame rst(stream_id, 0, QUIC_NO_ERROR); | 117 QuicRstStreamFrame rst(stream_id, QUIC_NO_ERROR); |
| 115 return scoped_ptr<QuicEncryptedPacket>( | 118 return scoped_ptr<QuicEncryptedPacket>( |
| 116 ConstructPacket(header, QuicFrame(&rst))); | 119 ConstructPacket(header, QuicFrame(&rst))); |
| 117 } | 120 } |
| 118 | 121 |
| 119 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( | 122 scoped_ptr<QuicEncryptedPacket> ConstructAckPacket( |
| 120 QuicPacketSequenceNumber largest_received, | 123 QuicPacketSequenceNumber largest_received, |
| 121 QuicPacketSequenceNumber least_unacked) { | 124 QuicPacketSequenceNumber least_unacked) { |
| 122 QuicPacketHeader header; | 125 QuicPacketHeader header; |
| 123 header.public_header.guid = 0xDEADBEEF; | 126 header.public_header.guid = 0xDEADBEEF; |
| 124 header.public_header.flags = PACKET_PUBLIC_FLAGS_NONE; | 127 header.public_header.reset_flag = false; |
| 128 header.public_header.version_flag = false; |
| 125 header.packet_sequence_number = 3; | 129 header.packet_sequence_number = 3; |
| 126 header.private_flags = PACKET_PRIVATE_FLAGS_NONE; | 130 header.entropy_flag = false; |
| 131 header.fec_flag = false; |
| 132 header.fec_entropy_flag = false; |
| 127 header.fec_group = 0; | 133 header.fec_group = 0; |
| 128 | 134 |
| 129 QuicAckFrame ack(largest_received, least_unacked); | 135 QuicAckFrame ack(largest_received, least_unacked); |
| 130 | 136 |
| 131 QuicCongestionFeedbackFrame feedback; | 137 QuicCongestionFeedbackFrame feedback; |
| 132 feedback.type = kTCP; | 138 feedback.type = kTCP; |
| 133 feedback.tcp.accumulated_number_of_lost_packets = 0; | 139 feedback.tcp.accumulated_number_of_lost_packets = 0; |
| 134 feedback.tcp.receive_window = 256000; | 140 feedback.tcp.receive_window = 256000; |
| 135 | 141 |
| 136 QuicFramer framer(QuicDecrypter::Create(kNULL), | 142 QuicFramer framer(QuicDecrypter::Create(kNULL), |
| 137 QuicEncrypter::Create(kNULL)); | 143 QuicEncrypter::Create(kNULL)); |
| 138 QuicFrames frames; | 144 QuicFrames frames; |
| 139 frames.push_back(QuicFrame(&ack)); | 145 frames.push_back(QuicFrame(&ack)); |
| 140 frames.push_back(QuicFrame(&feedback)); | 146 frames.push_back(QuicFrame(&feedback)); |
| 141 scoped_ptr<QuicPacket> packet( | 147 scoped_ptr<QuicPacket> packet( |
| 142 framer.ConstructFrameDataPacket(header, frames)); | 148 framer.ConstructFrameDataPacket(header, frames).packet); |
| 143 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(*packet)); | 149 return scoped_ptr<QuicEncryptedPacket>( |
| 150 framer.EncryptPacket(header.packet_sequence_number, *packet)); |
| 144 } | 151 } |
| 145 | 152 |
| 146 std::string GetRequestString(const std::string& method, | 153 std::string GetRequestString(const std::string& method, |
| 147 const std::string& path) { | 154 const std::string& path) { |
| 148 SpdyHeaderBlock headers; | 155 SpdyHeaderBlock headers; |
| 149 headers[":method"] = method; | 156 headers[":method"] = method; |
| 150 headers[":host"] = "www.google.com"; | 157 headers[":host"] = "www.google.com"; |
| 151 headers[":path"] = path; | 158 headers[":path"] = path; |
| 152 headers[":scheme"] = "http"; | 159 headers[":scheme"] = "http"; |
| 153 headers[":version"] = "HTTP/1.1"; | 160 headers[":version"] = "HTTP/1.1"; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 183 } | 190 } |
| 184 | 191 |
| 185 scoped_ptr<QuicEncryptedPacket> ConstructPacket( | 192 scoped_ptr<QuicEncryptedPacket> ConstructPacket( |
| 186 const QuicPacketHeader& header, | 193 const QuicPacketHeader& header, |
| 187 const QuicFrame& frame) { | 194 const QuicFrame& frame) { |
| 188 QuicFramer framer(QuicDecrypter::Create(kNULL), | 195 QuicFramer framer(QuicDecrypter::Create(kNULL), |
| 189 QuicEncrypter::Create(kNULL)); | 196 QuicEncrypter::Create(kNULL)); |
| 190 QuicFrames frames; | 197 QuicFrames frames; |
| 191 frames.push_back(frame); | 198 frames.push_back(frame); |
| 192 scoped_ptr<QuicPacket> packet( | 199 scoped_ptr<QuicPacket> packet( |
| 193 framer.ConstructFrameDataPacket(header, frames)); | 200 framer.ConstructFrameDataPacket(header, frames).packet); |
| 194 return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket(*packet)); | 201 return scoped_ptr<QuicEncryptedPacket>( |
| 202 framer.EncryptPacket(header.packet_sequence_number, *packet)); |
| 195 } | 203 } |
| 196 | 204 |
| 197 void InitializeHeader(QuicPacketSequenceNumber sequence_number) { | 205 void InitializeHeader(QuicPacketSequenceNumber sequence_number) { |
| 198 header_.public_header.guid = random_generator_.RandUint64(); | 206 header_.public_header.guid = random_generator_.RandUint64(); |
| 199 header_.public_header.flags = PACKET_PUBLIC_FLAGS_NONE; | 207 header_.public_header.reset_flag = false; |
| 208 header_.public_header.version_flag = false; |
| 200 header_.packet_sequence_number = sequence_number; | 209 header_.packet_sequence_number = sequence_number; |
| 201 header_.fec_group = 0; | 210 header_.fec_group = 0; |
| 202 header_.private_flags = PACKET_PRIVATE_FLAGS_NONE; | 211 header_.entropy_flag = false; |
| 212 header_.fec_flag = false; |
| 213 header_.fec_entropy_flag = false; |
| 203 } | 214 } |
| 204 | 215 |
| 205 void CreateSession() { | 216 void CreateSession() { |
| 206 params_.client_socket_factory = &socket_factory_; | 217 params_.client_socket_factory = &socket_factory_; |
| 207 params_.host_resolver = &host_resolver_; | 218 params_.host_resolver = &host_resolver_; |
| 208 params_.cert_verifier = &cert_verifier_; | 219 params_.cert_verifier = &cert_verifier_; |
| 209 params_.proxy_service = proxy_service_.get(); | 220 params_.proxy_service = proxy_service_.get(); |
| 210 params_.ssl_config_service = ssl_config_service_.get(); | 221 params_.ssl_config_service = ssl_config_service_.get(); |
| 211 params_.http_auth_handler_factory = auth_handler_factory_.get(); | 222 params_.http_auth_handler_factory = auth_handler_factory_.get(); |
| 212 params_.http_server_properties = &http_server_properties; | 223 params_.http_server_properties = &http_server_properties; |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 ASSERT_TRUE(response->headers != NULL); | 332 ASSERT_TRUE(response->headers != NULL); |
| 322 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 333 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 323 EXPECT_TRUE(response->was_fetched_via_spdy); | 334 EXPECT_TRUE(response->was_fetched_via_spdy); |
| 324 | 335 |
| 325 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 336 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 326 EXPECT_EQ("hello!", response_data); | 337 EXPECT_EQ("hello!", response_data); |
| 327 } | 338 } |
| 328 | 339 |
| 329 } // namespace test | 340 } // namespace test |
| 330 } // namespace net | 341 } // namespace net |
| OLD | NEW |