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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 scoped_ptr<HttpNetworkTransaction> trans( | 269 scoped_ptr<HttpNetworkTransaction> trans( |
270 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); | 270 new HttpNetworkTransaction(DEFAULT_PRIORITY, session_.get())); |
271 RunTransaction(trans.get()); | 271 RunTransaction(trans.get()); |
272 CheckWasQuicResponse(trans); | 272 CheckWasQuicResponse(trans); |
273 CheckResponseData(trans.get(), expected); | 273 CheckResponseData(trans.get(), expected); |
274 } | 274 } |
275 | 275 |
276 void AddQuicAlternateProtocolMapping( | 276 void AddQuicAlternateProtocolMapping( |
277 MockCryptoClientStream::HandshakeMode handshake_mode) { | 277 MockCryptoClientStream::HandshakeMode handshake_mode) { |
278 crypto_client_stream_factory_.set_handshake_mode(handshake_mode); | 278 crypto_client_stream_factory_.set_handshake_mode(handshake_mode); |
279 session_->http_server_properties()->SetAlternateProtocol( | 279 session_->http_server_properties()->AddAlternateProtocol( |
280 HostPortPair::FromURL(request_.url), 80, QUIC, 1); | 280 HostPortPair::FromURL(request_.url), 80, QUIC, 1); |
281 } | 281 } |
282 | 282 |
283 void ExpectBrokenAlternateProtocolMapping() { | 283 void ExpectBrokenAlternateProtocolMapping() { |
284 ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( | 284 ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( |
285 HostPortPair::FromURL(request_.url))); | 285 HostPortPair::FromURL(request_.url))); |
286 const AlternateProtocolInfo alternate = | 286 const AlternateProtocols alternate_protocols = |
287 session_->http_server_properties()->GetAlternateProtocol( | 287 session_->http_server_properties()->GetAlternateProtocol( |
288 HostPortPair::FromURL(request_.url)); | 288 HostPortPair::FromURL(request_.url)); |
289 EXPECT_EQ(ALTERNATE_PROTOCOL_BROKEN, alternate.protocol); | 289 for (AlternateProtocols::const_iterator it = alternate_protocols.begin(); |
| 290 it != alternate_protocols.end(); |
| 291 ++it) { |
| 292 if (it->protocol == ALTERNATE_PROTOCOL_BROKEN) { |
| 293 return; |
| 294 } |
| 295 } |
| 296 EXPECT_FALSE(true) << "No broken protocol found."; |
290 } | 297 } |
291 | 298 |
292 void ExpectQuicAlternateProtocolMapping() { | 299 void ExpectQuicAlternateProtocolMapping() { |
293 ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( | 300 ASSERT_TRUE(session_->http_server_properties()->HasAlternateProtocol( |
294 HostPortPair::FromURL(request_.url))); | 301 HostPortPair::FromURL(request_.url))); |
295 const AlternateProtocolInfo alternate = | 302 const AlternateProtocols alternate_protocols = |
296 session_->http_server_properties()->GetAlternateProtocol( | 303 session_->http_server_properties()->GetAlternateProtocol( |
297 HostPortPair::FromURL(request_.url)); | 304 HostPortPair::FromURL(request_.url)); |
298 EXPECT_EQ(QUIC, alternate.protocol); | 305 ASSERT_EQ(1u, alternate_protocols.size()); |
| 306 EXPECT_EQ(QUIC, alternate_protocols[0].protocol); |
299 } | 307 } |
300 | 308 |
301 void AddHangingNonAlternateProtocolSocketData() { | 309 void AddHangingNonAlternateProtocolSocketData() { |
302 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); | 310 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); |
303 hanging_data_.set_connect_data(hanging_connect); | 311 hanging_data_.set_connect_data(hanging_connect); |
304 socket_factory_.AddSocketDataProvider(&hanging_data_); | 312 socket_factory_.AddSocketDataProvider(&hanging_data_); |
305 } | 313 } |
306 | 314 |
307 MockClock* clock_; // Owned by QuicStreamFactory after CreateSession. | 315 MockClock* clock_; // Owned by QuicStreamFactory after CreateSession. |
308 QuicTestPacketMaker maker_; | 316 QuicTestPacketMaker maker_; |
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 nullptr, | 1040 nullptr, |
1033 net_log_.bound()); | 1041 net_log_.bound()); |
1034 | 1042 |
1035 CreateSessionWithNextProtos(); | 1043 CreateSessionWithNextProtos(); |
1036 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 1044 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
1037 SendRequestAndExpectHttpResponse("hello world"); | 1045 SendRequestAndExpectHttpResponse("hello world"); |
1038 } | 1046 } |
1039 | 1047 |
1040 } // namespace test | 1048 } // namespace test |
1041 } // namespace net | 1049 } // namespace net |
OLD | NEW |