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/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "net/base/test_data_directory.h" | 9 #include "net/base/test_data_directory.h" |
10 #include "net/cert/cert_verifier.h" | 10 #include "net/cert/cert_verifier.h" |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 }; | 91 }; |
92 | 92 |
93 class QuicStreamFactoryTest : public ::testing::TestWithParam<QuicVersion> { | 93 class QuicStreamFactoryTest : public ::testing::TestWithParam<QuicVersion> { |
94 protected: | 94 protected: |
95 QuicStreamFactoryTest() | 95 QuicStreamFactoryTest() |
96 : random_generator_(0), | 96 : random_generator_(0), |
97 clock_(new MockClock()), | 97 clock_(new MockClock()), |
98 maker_(GetParam(), 0, clock_), | 98 maker_(GetParam(), 0, clock_), |
99 cert_verifier_(CertVerifier::CreateDefault()), | 99 cert_verifier_(CertVerifier::CreateDefault()), |
100 channel_id_service_( | 100 channel_id_service_( |
101 new ChannelIDService(new DefaultChannelIDStore(NULL), | 101 new ChannelIDService(new DefaultChannelIDStore(nullptr), |
102 base::MessageLoopProxy::current())), | 102 base::MessageLoopProxy::current())), |
103 factory_(&host_resolver_, | 103 factory_(&host_resolver_, |
104 &socket_factory_, | 104 &socket_factory_, |
105 base::WeakPtr<HttpServerProperties>(), | 105 base::WeakPtr<HttpServerProperties>(), |
106 cert_verifier_.get(), | 106 cert_verifier_.get(), |
107 channel_id_service_.get(), | 107 channel_id_service_.get(), |
108 &transport_security_state_, | 108 &transport_security_state_, |
109 &crypto_client_stream_factory_, | 109 &crypto_client_stream_factory_, |
110 &random_generator_, | 110 &random_generator_, |
111 clock_, | 111 clock_, |
(...skipping 23 matching lines...) Expand all Loading... |
135 } | 135 } |
136 | 136 |
137 int GetSourcePortForNewSessionAndGoAway( | 137 int GetSourcePortForNewSessionAndGoAway( |
138 const HostPortPair& destination) { | 138 const HostPortPair& destination) { |
139 return GetSourcePortForNewSessionInner(destination, true); | 139 return GetSourcePortForNewSessionInner(destination, true); |
140 } | 140 } |
141 | 141 |
142 int GetSourcePortForNewSessionInner(const HostPortPair& destination, | 142 int GetSourcePortForNewSessionInner(const HostPortPair& destination, |
143 bool goaway_received) { | 143 bool goaway_received) { |
144 // Should only be called if there is no active session for this destination. | 144 // Should only be called if there is no active session for this destination. |
145 EXPECT_EQ(NULL, CreateIfSessionExists(destination, net_log_).get()); | 145 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get()); |
146 size_t socket_count = socket_factory_.udp_client_sockets().size(); | 146 size_t socket_count = socket_factory_.udp_client_sockets().size(); |
147 | 147 |
148 MockRead reads[] = { | 148 MockRead reads[] = { |
149 MockRead(ASYNC, OK, 0) // EOF | 149 MockRead(ASYNC, OK, 0) // EOF |
150 }; | 150 }; |
151 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 151 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
152 socket_data.StopAfter(1); | 152 socket_data.StopAfter(1); |
153 socket_factory_.AddSocketDataProvider(&socket_data); | 153 socket_factory_.AddSocketDataProvider(&socket_data); |
154 | 154 |
155 QuicStreamRequest request(&factory_); | 155 QuicStreamRequest request(&factory_); |
156 EXPECT_EQ(ERR_IO_PENDING, | 156 EXPECT_EQ(ERR_IO_PENDING, |
157 request.Request(destination, | 157 request.Request(destination, |
158 is_https_, | 158 is_https_, |
159 privacy_mode_, | 159 privacy_mode_, |
160 "GET", | 160 "GET", |
161 net_log_, | 161 net_log_, |
(...skipping 15 matching lines...) Expand all Loading... |
177 IPEndPoint endpoint; | 177 IPEndPoint endpoint; |
178 socket_factory_. | 178 socket_factory_. |
179 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); | 179 udp_client_sockets()[socket_count]->GetLocalAddress(&endpoint); |
180 int port = endpoint.port(); | 180 int port = endpoint.port(); |
181 if (goaway_received) { | 181 if (goaway_received) { |
182 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); | 182 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); |
183 session->OnGoAway(goaway); | 183 session->OnGoAway(goaway); |
184 } | 184 } |
185 | 185 |
186 factory_.OnSessionClosed(session); | 186 factory_.OnSessionClosed(session); |
187 EXPECT_EQ(NULL, CreateIfSessionExists(destination, net_log_).get()); | 187 EXPECT_EQ(nullptr, CreateIfSessionExists(destination, net_log_).get()); |
188 EXPECT_TRUE(socket_data.at_read_eof()); | 188 EXPECT_TRUE(socket_data.at_read_eof()); |
189 EXPECT_TRUE(socket_data.at_write_eof()); | 189 EXPECT_TRUE(socket_data.at_write_eof()); |
190 return port; | 190 return port; |
191 } | 191 } |
192 | 192 |
193 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { | 193 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { |
194 QuicStreamId stream_id = kClientDataStreamId1; | 194 QuicStreamId stream_id = kClientDataStreamId1; |
195 return maker_.MakeRstPacket( | 195 return maker_.MakeRstPacket( |
196 1, true, stream_id, | 196 1, true, stream_id, |
197 AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam())); | 197 AdjustErrorForVersion(QUIC_RST_FLOW_CONTROL_ACCOUNTING, GetParam())); |
(...skipping 13 matching lines...) Expand all Loading... |
211 bool is_https_; | 211 bool is_https_; |
212 PrivacyMode privacy_mode_; | 212 PrivacyMode privacy_mode_; |
213 BoundNetLog net_log_; | 213 BoundNetLog net_log_; |
214 TestCompletionCallback callback_; | 214 TestCompletionCallback callback_; |
215 }; | 215 }; |
216 | 216 |
217 INSTANTIATE_TEST_CASE_P(Version, QuicStreamFactoryTest, | 217 INSTANTIATE_TEST_CASE_P(Version, QuicStreamFactoryTest, |
218 ::testing::ValuesIn(QuicSupportedVersions())); | 218 ::testing::ValuesIn(QuicSupportedVersions())); |
219 | 219 |
220 TEST_P(QuicStreamFactoryTest, CreateIfSessionExists) { | 220 TEST_P(QuicStreamFactoryTest, CreateIfSessionExists) { |
221 EXPECT_EQ(NULL, CreateIfSessionExists(host_port_pair_, net_log_).get()); | 221 EXPECT_EQ(nullptr, CreateIfSessionExists(host_port_pair_, net_log_).get()); |
222 } | 222 } |
223 | 223 |
224 TEST_P(QuicStreamFactoryTest, Create) { | 224 TEST_P(QuicStreamFactoryTest, Create) { |
225 MockRead reads[] = { | 225 MockRead reads[] = { |
226 MockRead(ASYNC, OK, 0) // EOF | 226 MockRead(ASYNC, OK, 0) // EOF |
227 }; | 227 }; |
228 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 228 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
229 socket_factory_.AddSocketDataProvider(&socket_data); | 229 socket_factory_.AddSocketDataProvider(&socket_data); |
230 socket_data.StopAfter(1); | 230 socket_data.StopAfter(1); |
231 | 231 |
232 QuicStreamRequest request(&factory_); | 232 QuicStreamRequest request(&factory_); |
233 EXPECT_EQ(ERR_IO_PENDING, | 233 EXPECT_EQ(ERR_IO_PENDING, |
234 request.Request(host_port_pair_, | 234 request.Request(host_port_pair_, |
235 is_https_, | 235 is_https_, |
236 privacy_mode_, | 236 privacy_mode_, |
237 "GET", | 237 "GET", |
238 net_log_, | 238 net_log_, |
(...skipping 21 matching lines...) Expand all Loading... |
260 stream.reset(); // Will reset stream 7. | 260 stream.reset(); // Will reset stream 7. |
261 | 261 |
262 EXPECT_TRUE(socket_data.at_read_eof()); | 262 EXPECT_TRUE(socket_data.at_read_eof()); |
263 EXPECT_TRUE(socket_data.at_write_eof()); | 263 EXPECT_TRUE(socket_data.at_write_eof()); |
264 } | 264 } |
265 | 265 |
266 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 266 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
267 MockRead reads[] = { | 267 MockRead reads[] = { |
268 MockRead(ASYNC, OK, 0) // EOF | 268 MockRead(ASYNC, OK, 0) // EOF |
269 }; | 269 }; |
270 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 270 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
271 socket_factory_.AddSocketDataProvider(&socket_data); | 271 socket_factory_.AddSocketDataProvider(&socket_data); |
272 socket_data.StopAfter(1); | 272 socket_data.StopAfter(1); |
273 | 273 |
274 crypto_client_stream_factory_.set_handshake_mode( | 274 crypto_client_stream_factory_.set_handshake_mode( |
275 MockCryptoClientStream::ZERO_RTT); | 275 MockCryptoClientStream::ZERO_RTT); |
276 host_resolver_.set_synchronous_mode(true); | 276 host_resolver_.set_synchronous_mode(true); |
277 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 277 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
278 "192.168.0.1", ""); | 278 "192.168.0.1", ""); |
279 | 279 |
280 QuicStreamRequest request(&factory_); | 280 QuicStreamRequest request(&factory_); |
281 EXPECT_EQ(OK, | 281 EXPECT_EQ(OK, |
282 request.Request(host_port_pair_, | 282 request.Request(host_port_pair_, |
283 is_https_, | 283 is_https_, |
284 privacy_mode_, | 284 privacy_mode_, |
285 "GET", | 285 "GET", |
286 net_log_, | 286 net_log_, |
287 callback_.callback())); | 287 callback_.callback())); |
288 | 288 |
289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 289 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
290 EXPECT_TRUE(stream.get()); | 290 EXPECT_TRUE(stream.get()); |
291 EXPECT_TRUE(socket_data.at_read_eof()); | 291 EXPECT_TRUE(socket_data.at_read_eof()); |
292 EXPECT_TRUE(socket_data.at_write_eof()); | 292 EXPECT_TRUE(socket_data.at_write_eof()); |
293 } | 293 } |
294 | 294 |
295 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 295 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
296 MockRead reads[] = { | 296 MockRead reads[] = { |
297 MockRead(ASYNC, OK, 0) // EOF | 297 MockRead(ASYNC, OK, 0) // EOF |
298 }; | 298 }; |
299 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 299 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
300 socket_factory_.AddSocketDataProvider(&socket_data); | 300 socket_factory_.AddSocketDataProvider(&socket_data); |
301 socket_data.StopAfter(1); | 301 socket_data.StopAfter(1); |
302 | 302 |
303 crypto_client_stream_factory_.set_handshake_mode( | 303 crypto_client_stream_factory_.set_handshake_mode( |
304 MockCryptoClientStream::ZERO_RTT); | 304 MockCryptoClientStream::ZERO_RTT); |
305 host_resolver_.set_synchronous_mode(true); | 305 host_resolver_.set_synchronous_mode(true); |
306 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 306 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
307 "192.168.0.1", ""); | 307 "192.168.0.1", ""); |
308 | 308 |
309 QuicStreamRequest request(&factory_); | 309 QuicStreamRequest request(&factory_); |
(...skipping 14 matching lines...) Expand all Loading... |
324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 324 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
325 EXPECT_TRUE(stream.get()); | 325 EXPECT_TRUE(stream.get()); |
326 EXPECT_TRUE(socket_data.at_read_eof()); | 326 EXPECT_TRUE(socket_data.at_read_eof()); |
327 EXPECT_TRUE(socket_data.at_write_eof()); | 327 EXPECT_TRUE(socket_data.at_write_eof()); |
328 } | 328 } |
329 | 329 |
330 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { | 330 TEST_P(QuicStreamFactoryTest, CreateHttpVsHttps) { |
331 MockRead reads[] = { | 331 MockRead reads[] = { |
332 MockRead(ASYNC, OK, 0) // EOF | 332 MockRead(ASYNC, OK, 0) // EOF |
333 }; | 333 }; |
334 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 334 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
335 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 335 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
336 socket_factory_.AddSocketDataProvider(&socket_data1); | 336 socket_factory_.AddSocketDataProvider(&socket_data1); |
337 socket_factory_.AddSocketDataProvider(&socket_data2); | 337 socket_factory_.AddSocketDataProvider(&socket_data2); |
338 socket_data1.StopAfter(1); | 338 socket_data1.StopAfter(1); |
339 socket_data2.StopAfter(1); | 339 socket_data2.StopAfter(1); |
340 | 340 |
341 QuicStreamRequest request(&factory_); | 341 QuicStreamRequest request(&factory_); |
342 EXPECT_EQ(ERR_IO_PENDING, | 342 EXPECT_EQ(ERR_IO_PENDING, |
343 request.Request(host_port_pair_, | 343 request.Request(host_port_pair_, |
344 is_https_, | 344 is_https_, |
345 privacy_mode_, | 345 privacy_mode_, |
(...skipping 26 matching lines...) Expand all Loading... |
372 EXPECT_TRUE(socket_data1.at_read_eof()); | 372 EXPECT_TRUE(socket_data1.at_read_eof()); |
373 EXPECT_TRUE(socket_data1.at_write_eof()); | 373 EXPECT_TRUE(socket_data1.at_write_eof()); |
374 EXPECT_TRUE(socket_data2.at_read_eof()); | 374 EXPECT_TRUE(socket_data2.at_read_eof()); |
375 EXPECT_TRUE(socket_data2.at_write_eof()); | 375 EXPECT_TRUE(socket_data2.at_write_eof()); |
376 } | 376 } |
377 | 377 |
378 TEST_P(QuicStreamFactoryTest, Pooling) { | 378 TEST_P(QuicStreamFactoryTest, Pooling) { |
379 MockRead reads[] = { | 379 MockRead reads[] = { |
380 MockRead(ASYNC, OK, 0) // EOF | 380 MockRead(ASYNC, OK, 0) // EOF |
381 }; | 381 }; |
382 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 382 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
383 socket_factory_.AddSocketDataProvider(&socket_data); | 383 socket_factory_.AddSocketDataProvider(&socket_data); |
384 socket_data.StopAfter(1); | 384 socket_data.StopAfter(1); |
385 | 385 |
386 HostPortPair server2("mail.google.com", kDefaultServerPort); | 386 HostPortPair server2("mail.google.com", kDefaultServerPort); |
387 host_resolver_.set_synchronous_mode(true); | 387 host_resolver_.set_synchronous_mode(true); |
388 host_resolver_.rules()->AddIPLiteralRule( | 388 host_resolver_.rules()->AddIPLiteralRule( |
389 kDefaultServerHostName, "192.168.0.1", ""); | 389 kDefaultServerHostName, "192.168.0.1", ""); |
390 host_resolver_.rules()->AddIPLiteralRule( | 390 host_resolver_.rules()->AddIPLiteralRule( |
391 "mail.google.com", "192.168.0.1", ""); | 391 "mail.google.com", "192.168.0.1", ""); |
392 | 392 |
(...skipping 26 matching lines...) Expand all Loading... |
419 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); | 419 QuicStreamFactoryPeer::GetActiveSession(&factory_, server2, is_https_)); |
420 | 420 |
421 EXPECT_TRUE(socket_data.at_read_eof()); | 421 EXPECT_TRUE(socket_data.at_read_eof()); |
422 EXPECT_TRUE(socket_data.at_write_eof()); | 422 EXPECT_TRUE(socket_data.at_write_eof()); |
423 } | 423 } |
424 | 424 |
425 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { | 425 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
426 MockRead reads[] = { | 426 MockRead reads[] = { |
427 MockRead(ASYNC, OK, 0) // EOF | 427 MockRead(ASYNC, OK, 0) // EOF |
428 }; | 428 }; |
429 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 429 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
430 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 430 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
431 socket_factory_.AddSocketDataProvider(&socket_data1); | 431 socket_factory_.AddSocketDataProvider(&socket_data1); |
432 socket_factory_.AddSocketDataProvider(&socket_data2); | 432 socket_factory_.AddSocketDataProvider(&socket_data2); |
433 socket_data1.StopAfter(1); | 433 socket_data1.StopAfter(1); |
434 socket_data2.StopAfter(1); | 434 socket_data2.StopAfter(1); |
435 | 435 |
436 HostPortPair server2("mail.google.com", kDefaultServerPort); | 436 HostPortPair server2("mail.google.com", kDefaultServerPort); |
437 host_resolver_.set_synchronous_mode(true); | 437 host_resolver_.set_synchronous_mode(true); |
438 host_resolver_.rules()->AddIPLiteralRule( | 438 host_resolver_.rules()->AddIPLiteralRule( |
439 kDefaultServerHostName, "192.168.0.1", ""); | 439 kDefaultServerHostName, "192.168.0.1", ""); |
440 host_resolver_.rules()->AddIPLiteralRule( | 440 host_resolver_.rules()->AddIPLiteralRule( |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 EXPECT_TRUE(socket_data1.at_read_eof()); | 474 EXPECT_TRUE(socket_data1.at_read_eof()); |
475 EXPECT_TRUE(socket_data1.at_write_eof()); | 475 EXPECT_TRUE(socket_data1.at_write_eof()); |
476 EXPECT_TRUE(socket_data2.at_read_eof()); | 476 EXPECT_TRUE(socket_data2.at_read_eof()); |
477 EXPECT_TRUE(socket_data2.at_write_eof()); | 477 EXPECT_TRUE(socket_data2.at_write_eof()); |
478 } | 478 } |
479 | 479 |
480 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 480 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
481 MockRead reads[] = { | 481 MockRead reads[] = { |
482 MockRead(ASYNC, OK, 0) // EOF | 482 MockRead(ASYNC, OK, 0) // EOF |
483 }; | 483 }; |
484 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 484 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
485 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 485 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
486 socket_factory_.AddSocketDataProvider(&socket_data1); | 486 socket_factory_.AddSocketDataProvider(&socket_data1); |
487 socket_factory_.AddSocketDataProvider(&socket_data2); | 487 socket_factory_.AddSocketDataProvider(&socket_data2); |
488 socket_data1.StopAfter(1); | 488 socket_data1.StopAfter(1); |
489 socket_data2.StopAfter(1); | 489 socket_data2.StopAfter(1); |
490 | 490 |
491 HostPortPair server2("mail.google.com", kDefaultServerPort); | 491 HostPortPair server2("mail.google.com", kDefaultServerPort); |
492 host_resolver_.set_synchronous_mode(true); | 492 host_resolver_.set_synchronous_mode(true); |
493 host_resolver_.rules()->AddIPLiteralRule( | 493 host_resolver_.rules()->AddIPLiteralRule( |
494 kDefaultServerHostName, "192.168.0.1", ""); | 494 kDefaultServerHostName, "192.168.0.1", ""); |
495 host_resolver_.rules()->AddIPLiteralRule( | 495 host_resolver_.rules()->AddIPLiteralRule( |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 EXPECT_TRUE(socket_data1.at_read_eof()); | 543 EXPECT_TRUE(socket_data1.at_read_eof()); |
544 EXPECT_TRUE(socket_data1.at_write_eof()); | 544 EXPECT_TRUE(socket_data1.at_write_eof()); |
545 EXPECT_TRUE(socket_data2.at_read_eof()); | 545 EXPECT_TRUE(socket_data2.at_read_eof()); |
546 EXPECT_TRUE(socket_data2.at_write_eof()); | 546 EXPECT_TRUE(socket_data2.at_write_eof()); |
547 } | 547 } |
548 | 548 |
549 TEST_P(QuicStreamFactoryTest, HttpsPooling) { | 549 TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
550 MockRead reads[] = { | 550 MockRead reads[] = { |
551 MockRead(ASYNC, OK, 0) // EOF | 551 MockRead(ASYNC, OK, 0) // EOF |
552 }; | 552 }; |
553 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 553 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
554 socket_factory_.AddSocketDataProvider(&socket_data); | 554 socket_factory_.AddSocketDataProvider(&socket_data); |
555 socket_data.StopAfter(1); | 555 socket_data.StopAfter(1); |
556 | 556 |
557 HostPortPair server1("www.example.org", 443); | 557 HostPortPair server1("www.example.org", 443); |
558 HostPortPair server2("mail.example.org", 443); | 558 HostPortPair server2("mail.example.org", 443); |
559 | 559 |
560 // Load a cert that is valid for: | 560 // Load a cert that is valid for: |
561 // www.example.org (server1) | 561 // www.example.org (server1) |
562 // mail.example.org (server2) | 562 // mail.example.org (server2) |
563 // www.example.com | 563 // www.example.com |
564 base::FilePath certs_dir = GetTestCertsDirectory(); | 564 base::FilePath certs_dir = GetTestCertsDirectory(); |
565 scoped_refptr<X509Certificate> test_cert( | 565 scoped_refptr<X509Certificate> test_cert( |
566 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 566 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
567 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 567 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
568 ProofVerifyDetailsChromium verify_details; | 568 ProofVerifyDetailsChromium verify_details; |
569 verify_details.cert_verify_result.verified_cert = test_cert; | 569 verify_details.cert_verify_result.verified_cert = test_cert; |
570 verify_details.cert_verify_result.is_issued_by_known_root = true; | 570 verify_details.cert_verify_result.is_issued_by_known_root = true; |
571 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 571 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
572 | 572 |
573 host_resolver_.set_synchronous_mode(true); | 573 host_resolver_.set_synchronous_mode(true); |
574 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 574 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
575 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 575 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
576 | 576 |
577 QuicStreamRequest request(&factory_); | 577 QuicStreamRequest request(&factory_); |
(...skipping 26 matching lines...) Expand all Loading... |
604 &factory_, server2, is_https_)); | 604 &factory_, server2, is_https_)); |
605 | 605 |
606 EXPECT_TRUE(socket_data.at_read_eof()); | 606 EXPECT_TRUE(socket_data.at_read_eof()); |
607 EXPECT_TRUE(socket_data.at_write_eof()); | 607 EXPECT_TRUE(socket_data.at_write_eof()); |
608 } | 608 } |
609 | 609 |
610 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 610 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
611 MockRead reads[] = { | 611 MockRead reads[] = { |
612 MockRead(ASYNC, OK, 0) // EOF | 612 MockRead(ASYNC, OK, 0) // EOF |
613 }; | 613 }; |
614 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 614 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
615 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 615 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
616 socket_factory_.AddSocketDataProvider(&socket_data1); | 616 socket_factory_.AddSocketDataProvider(&socket_data1); |
617 socket_factory_.AddSocketDataProvider(&socket_data2); | 617 socket_factory_.AddSocketDataProvider(&socket_data2); |
618 socket_data1.StopAfter(1); | 618 socket_data1.StopAfter(1); |
619 socket_data2.StopAfter(1); | 619 socket_data2.StopAfter(1); |
620 | 620 |
621 HostPortPair server1("www.example.org", 443); | 621 HostPortPair server1("www.example.org", 443); |
622 HostPortPair server2("mail.example.org", 443); | 622 HostPortPair server2("mail.example.org", 443); |
623 | 623 |
624 // Load a cert that is valid for: | 624 // Load a cert that is valid for: |
625 // www.example.org (server1) | 625 // www.example.org (server1) |
626 // mail.example.org (server2) | 626 // mail.example.org (server2) |
627 // www.example.com | 627 // www.example.com |
628 base::FilePath certs_dir = GetTestCertsDirectory(); | 628 base::FilePath certs_dir = GetTestCertsDirectory(); |
629 scoped_refptr<X509Certificate> test_cert( | 629 scoped_refptr<X509Certificate> test_cert( |
630 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 630 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
631 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 631 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
632 ProofVerifyDetailsChromium verify_details; | 632 ProofVerifyDetailsChromium verify_details; |
633 verify_details.cert_verify_result.verified_cert = test_cert; | 633 verify_details.cert_verify_result.verified_cert = test_cert; |
634 verify_details.cert_verify_result.is_issued_by_known_root = true; | 634 verify_details.cert_verify_result.is_issued_by_known_root = true; |
635 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 635 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
636 | 636 |
637 host_resolver_.set_synchronous_mode(true); | 637 host_resolver_.set_synchronous_mode(true); |
638 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 638 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
639 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 639 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
640 | 640 |
641 // Disable connection pooling. | 641 // Disable connection pooling. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 EXPECT_TRUE(socket_data1.at_read_eof()); | 673 EXPECT_TRUE(socket_data1.at_read_eof()); |
674 EXPECT_TRUE(socket_data1.at_write_eof()); | 674 EXPECT_TRUE(socket_data1.at_write_eof()); |
675 EXPECT_TRUE(socket_data2.at_read_eof()); | 675 EXPECT_TRUE(socket_data2.at_read_eof()); |
676 EXPECT_TRUE(socket_data2.at_write_eof()); | 676 EXPECT_TRUE(socket_data2.at_write_eof()); |
677 } | 677 } |
678 | 678 |
679 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) { | 679 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithCertMismatch) { |
680 MockRead reads[] = { | 680 MockRead reads[] = { |
681 MockRead(ASYNC, OK, 0) // EOF | 681 MockRead(ASYNC, OK, 0) // EOF |
682 }; | 682 }; |
683 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 683 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
684 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 684 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
685 socket_factory_.AddSocketDataProvider(&socket_data1); | 685 socket_factory_.AddSocketDataProvider(&socket_data1); |
686 socket_factory_.AddSocketDataProvider(&socket_data2); | 686 socket_factory_.AddSocketDataProvider(&socket_data2); |
687 socket_data1.StopAfter(1); | 687 socket_data1.StopAfter(1); |
688 socket_data2.StopAfter(1); | 688 socket_data2.StopAfter(1); |
689 | 689 |
690 HostPortPair server1("www.example.org", 443); | 690 HostPortPair server1("www.example.org", 443); |
691 HostPortPair server2("mail.google.com", 443); | 691 HostPortPair server2("mail.google.com", 443); |
692 | 692 |
693 // Load a cert that is valid for: | 693 // Load a cert that is valid for: |
694 // www.example.org (server1) | 694 // www.example.org (server1) |
695 // mail.example.org | 695 // mail.example.org |
696 // www.example.com | 696 // www.example.com |
697 // But is not valid for mail.google.com (server2). | 697 // But is not valid for mail.google.com (server2). |
698 base::FilePath certs_dir = GetTestCertsDirectory(); | 698 base::FilePath certs_dir = GetTestCertsDirectory(); |
699 scoped_refptr<X509Certificate> test_cert( | 699 scoped_refptr<X509Certificate> test_cert( |
700 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 700 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
701 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 701 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
702 ProofVerifyDetailsChromium verify_details; | 702 ProofVerifyDetailsChromium verify_details; |
703 verify_details.cert_verify_result.verified_cert = test_cert; | 703 verify_details.cert_verify_result.verified_cert = test_cert; |
704 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 704 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
705 | 705 |
706 | 706 |
707 host_resolver_.set_synchronous_mode(true); | 707 host_resolver_.set_synchronous_mode(true); |
708 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 708 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
709 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 709 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
710 | 710 |
711 QuicStreamRequest request(&factory_); | 711 QuicStreamRequest request(&factory_); |
(...skipping 28 matching lines...) Expand all Loading... |
740 EXPECT_TRUE(socket_data1.at_read_eof()); | 740 EXPECT_TRUE(socket_data1.at_read_eof()); |
741 EXPECT_TRUE(socket_data1.at_write_eof()); | 741 EXPECT_TRUE(socket_data1.at_write_eof()); |
742 EXPECT_TRUE(socket_data2.at_read_eof()); | 742 EXPECT_TRUE(socket_data2.at_read_eof()); |
743 EXPECT_TRUE(socket_data2.at_write_eof()); | 743 EXPECT_TRUE(socket_data2.at_write_eof()); |
744 } | 744 } |
745 | 745 |
746 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 746 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
747 MockRead reads[] = { | 747 MockRead reads[] = { |
748 MockRead(ASYNC, OK, 0) // EOF | 748 MockRead(ASYNC, OK, 0) // EOF |
749 }; | 749 }; |
750 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 750 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
751 socket_factory_.AddSocketDataProvider(&socket_data); | 751 socket_factory_.AddSocketDataProvider(&socket_data); |
752 socket_data.StopAfter(1); | 752 socket_data.StopAfter(1); |
753 | 753 |
754 HostPortPair server1("www.example.org", 443); | 754 HostPortPair server1("www.example.org", 443); |
755 HostPortPair server2("mail.example.org", 443); | 755 HostPortPair server2("mail.example.org", 443); |
756 uint8 primary_pin = 1; | 756 uint8 primary_pin = 1; |
757 uint8 backup_pin = 2; | 757 uint8 backup_pin = 2; |
758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
759 backup_pin); | 759 backup_pin); |
760 | 760 |
761 // Load a cert that is valid for: | 761 // Load a cert that is valid for: |
762 // www.example.org (server1) | 762 // www.example.org (server1) |
763 // mail.example.org (server2) | 763 // mail.example.org (server2) |
764 base::FilePath certs_dir = GetTestCertsDirectory(); | 764 base::FilePath certs_dir = GetTestCertsDirectory(); |
765 scoped_refptr<X509Certificate> test_cert( | 765 scoped_refptr<X509Certificate> test_cert( |
766 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 766 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
767 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 767 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
768 ProofVerifyDetailsChromium verify_details; | 768 ProofVerifyDetailsChromium verify_details; |
769 verify_details.cert_verify_result.verified_cert = test_cert; | 769 verify_details.cert_verify_result.verified_cert = test_cert; |
770 verify_details.cert_verify_result.is_issued_by_known_root = true; | 770 verify_details.cert_verify_result.is_issued_by_known_root = true; |
771 verify_details.cert_verify_result.public_key_hashes.push_back( | 771 verify_details.cert_verify_result.public_key_hashes.push_back( |
772 test::GetTestHashValue(primary_pin)); | 772 test::GetTestHashValue(primary_pin)); |
773 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 773 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
774 | 774 |
775 | 775 |
776 host_resolver_.set_synchronous_mode(true); | 776 host_resolver_.set_synchronous_mode(true); |
777 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 777 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
(...skipping 29 matching lines...) Expand all Loading... |
807 &factory_, server2, is_https_)); | 807 &factory_, server2, is_https_)); |
808 | 808 |
809 EXPECT_TRUE(socket_data.at_read_eof()); | 809 EXPECT_TRUE(socket_data.at_read_eof()); |
810 EXPECT_TRUE(socket_data.at_write_eof()); | 810 EXPECT_TRUE(socket_data.at_write_eof()); |
811 } | 811 } |
812 | 812 |
813 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 813 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
814 MockRead reads[] = { | 814 MockRead reads[] = { |
815 MockRead(ASYNC, OK, 0) // EOF | 815 MockRead(ASYNC, OK, 0) // EOF |
816 }; | 816 }; |
817 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 817 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
818 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 818 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
819 socket_factory_.AddSocketDataProvider(&socket_data1); | 819 socket_factory_.AddSocketDataProvider(&socket_data1); |
820 socket_factory_.AddSocketDataProvider(&socket_data2); | 820 socket_factory_.AddSocketDataProvider(&socket_data2); |
821 socket_data1.StopAfter(1); | 821 socket_data1.StopAfter(1); |
822 socket_data2.StopAfter(1); | 822 socket_data2.StopAfter(1); |
823 | 823 |
824 HostPortPair server1("www.example.org", 443); | 824 HostPortPair server1("www.example.org", 443); |
825 HostPortPair server2("mail.example.org", 443); | 825 HostPortPair server2("mail.example.org", 443); |
826 uint8 primary_pin = 1; | 826 uint8 primary_pin = 1; |
827 uint8 backup_pin = 2; | 827 uint8 backup_pin = 2; |
828 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 828 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
829 backup_pin); | 829 backup_pin); |
830 | 830 |
831 // Load a cert that is valid for: | 831 // Load a cert that is valid for: |
832 // www.example.org (server1) | 832 // www.example.org (server1) |
833 // mail.example.org (server2) | 833 // mail.example.org (server2) |
834 base::FilePath certs_dir = GetTestCertsDirectory(); | 834 base::FilePath certs_dir = GetTestCertsDirectory(); |
835 scoped_refptr<X509Certificate> test_cert( | 835 scoped_refptr<X509Certificate> test_cert( |
836 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 836 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
837 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 837 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
838 ProofVerifyDetailsChromium verify_details; | 838 ProofVerifyDetailsChromium verify_details; |
839 verify_details.cert_verify_result.verified_cert = test_cert; | 839 verify_details.cert_verify_result.verified_cert = test_cert; |
840 verify_details.cert_verify_result.is_issued_by_known_root = true; | 840 verify_details.cert_verify_result.is_issued_by_known_root = true; |
841 verify_details.cert_verify_result.public_key_hashes.push_back( | 841 verify_details.cert_verify_result.public_key_hashes.push_back( |
842 test::GetTestHashValue(primary_pin)); | 842 test::GetTestHashValue(primary_pin)); |
843 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 843 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
844 | 844 |
845 | 845 |
846 host_resolver_.set_synchronous_mode(true); | 846 host_resolver_.set_synchronous_mode(true); |
847 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 847 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 EXPECT_TRUE(socket_data1.at_read_eof()); | 882 EXPECT_TRUE(socket_data1.at_read_eof()); |
883 EXPECT_TRUE(socket_data1.at_write_eof()); | 883 EXPECT_TRUE(socket_data1.at_write_eof()); |
884 EXPECT_TRUE(socket_data2.at_read_eof()); | 884 EXPECT_TRUE(socket_data2.at_read_eof()); |
885 EXPECT_TRUE(socket_data2.at_write_eof()); | 885 EXPECT_TRUE(socket_data2.at_write_eof()); |
886 } | 886 } |
887 | 887 |
888 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 888 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
889 MockRead reads[] = { | 889 MockRead reads[] = { |
890 MockRead(ASYNC, OK, 0) // EOF | 890 MockRead(ASYNC, OK, 0) // EOF |
891 }; | 891 }; |
892 DeterministicSocketData socket_data1(reads, arraysize(reads), NULL, 0); | 892 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
893 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 893 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
894 socket_factory_.AddSocketDataProvider(&socket_data1); | 894 socket_factory_.AddSocketDataProvider(&socket_data1); |
895 socket_factory_.AddSocketDataProvider(&socket_data2); | 895 socket_factory_.AddSocketDataProvider(&socket_data2); |
896 socket_data1.StopAfter(1); | 896 socket_data1.StopAfter(1); |
897 socket_data2.StopAfter(1); | 897 socket_data2.StopAfter(1); |
898 | 898 |
899 HostPortPair server1("www.example.org", 443); | 899 HostPortPair server1("www.example.org", 443); |
900 HostPortPair server2("mail.example.org", 443); | 900 HostPortPair server2("mail.example.org", 443); |
901 uint8 primary_pin = 1; | 901 uint8 primary_pin = 1; |
902 uint8 backup_pin = 2; | 902 uint8 backup_pin = 2; |
903 uint8 bad_pin = 3; | 903 uint8 bad_pin = 3; |
904 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 904 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
905 backup_pin); | 905 backup_pin); |
906 | 906 |
907 // Load a cert that is valid for: | 907 // Load a cert that is valid for: |
908 // www.example.org (server1) | 908 // www.example.org (server1) |
909 // mail.example.org (server2) | 909 // mail.example.org (server2) |
910 base::FilePath certs_dir = GetTestCertsDirectory(); | 910 base::FilePath certs_dir = GetTestCertsDirectory(); |
911 scoped_refptr<X509Certificate> test_cert( | 911 scoped_refptr<X509Certificate> test_cert( |
912 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); | 912 ImportCertFromFile(certs_dir, "spdy_pooling.pem")); |
913 ASSERT_NE(static_cast<X509Certificate*>(NULL), test_cert.get()); | 913 ASSERT_NE(static_cast<X509Certificate*>(nullptr), test_cert.get()); |
914 ProofVerifyDetailsChromium verify_details; | 914 ProofVerifyDetailsChromium verify_details; |
915 verify_details.cert_verify_result.verified_cert = test_cert; | 915 verify_details.cert_verify_result.verified_cert = test_cert; |
916 verify_details.cert_verify_result.is_issued_by_known_root = true; | 916 verify_details.cert_verify_result.is_issued_by_known_root = true; |
917 verify_details.cert_verify_result.public_key_hashes.push_back( | 917 verify_details.cert_verify_result.public_key_hashes.push_back( |
918 test::GetTestHashValue(bad_pin)); | 918 test::GetTestHashValue(bad_pin)); |
919 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); | 919 crypto_client_stream_factory_.set_proof_verify_details(&verify_details); |
920 | 920 |
921 | 921 |
922 host_resolver_.set_synchronous_mode(true); | 922 host_resolver_.set_synchronous_mode(true); |
923 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 923 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 EXPECT_TRUE(socket_data1.at_read_eof()); | 955 EXPECT_TRUE(socket_data1.at_read_eof()); |
956 EXPECT_TRUE(socket_data1.at_write_eof()); | 956 EXPECT_TRUE(socket_data1.at_write_eof()); |
957 EXPECT_TRUE(socket_data2.at_read_eof()); | 957 EXPECT_TRUE(socket_data2.at_read_eof()); |
958 EXPECT_TRUE(socket_data2.at_write_eof()); | 958 EXPECT_TRUE(socket_data2.at_write_eof()); |
959 } | 959 } |
960 | 960 |
961 TEST_P(QuicStreamFactoryTest, Goaway) { | 961 TEST_P(QuicStreamFactoryTest, Goaway) { |
962 MockRead reads[] = { | 962 MockRead reads[] = { |
963 MockRead(ASYNC, OK, 0) // EOF | 963 MockRead(ASYNC, OK, 0) // EOF |
964 }; | 964 }; |
965 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 965 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
966 socket_data.StopAfter(1); | 966 socket_data.StopAfter(1); |
967 socket_factory_.AddSocketDataProvider(&socket_data); | 967 socket_factory_.AddSocketDataProvider(&socket_data); |
968 DeterministicSocketData socket_data2(reads, arraysize(reads), NULL, 0); | 968 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
969 socket_data2.StopAfter(1); | 969 socket_data2.StopAfter(1); |
970 socket_factory_.AddSocketDataProvider(&socket_data2); | 970 socket_factory_.AddSocketDataProvider(&socket_data2); |
971 | 971 |
972 QuicStreamRequest request(&factory_); | 972 QuicStreamRequest request(&factory_); |
973 EXPECT_EQ(ERR_IO_PENDING, | 973 EXPECT_EQ(ERR_IO_PENDING, |
974 request.Request(host_port_pair_, | 974 request.Request(host_port_pair_, |
975 is_https_, | 975 is_https_, |
976 privacy_mode_, | 976 privacy_mode_, |
977 "GET", | 977 "GET", |
978 net_log_, | 978 net_log_, |
979 callback_.callback())); | 979 callback_.callback())); |
980 | 980 |
981 EXPECT_EQ(OK, callback_.WaitForResult()); | 981 EXPECT_EQ(OK, callback_.WaitForResult()); |
982 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 982 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
983 EXPECT_TRUE(stream.get()); | 983 EXPECT_TRUE(stream.get()); |
984 | 984 |
985 // Mark the session as going away. Ensure that while it is still alive | 985 // Mark the session as going away. Ensure that while it is still alive |
986 // that it is no longer active. | 986 // that it is no longer active. |
987 QuicClientSession* session = QuicStreamFactoryPeer::GetActiveSession( | 987 QuicClientSession* session = QuicStreamFactoryPeer::GetActiveSession( |
988 &factory_, host_port_pair_, is_https_); | 988 &factory_, host_port_pair_, is_https_); |
989 factory_.OnSessionGoingAway(session); | 989 factory_.OnSessionGoingAway(session); |
990 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session)); | 990 EXPECT_EQ(true, QuicStreamFactoryPeer::IsLiveSession(&factory_, session)); |
991 EXPECT_FALSE(QuicStreamFactoryPeer::HasActiveSession( | 991 EXPECT_FALSE(QuicStreamFactoryPeer::HasActiveSession( |
992 &factory_, host_port_pair_, is_https_)); | 992 &factory_, host_port_pair_, is_https_)); |
993 EXPECT_EQ(NULL, CreateIfSessionExists(host_port_pair_, net_log_).get()); | 993 EXPECT_EQ(nullptr, CreateIfSessionExists(host_port_pair_, net_log_).get()); |
994 | 994 |
995 // Create a new request for the same destination and verify that a | 995 // Create a new request for the same destination and verify that a |
996 // new session is created. | 996 // new session is created. |
997 QuicStreamRequest request2(&factory_); | 997 QuicStreamRequest request2(&factory_); |
998 EXPECT_EQ(ERR_IO_PENDING, | 998 EXPECT_EQ(ERR_IO_PENDING, |
999 request2.Request(host_port_pair_, | 999 request2.Request(host_port_pair_, |
1000 is_https_, | 1000 is_https_, |
1001 privacy_mode_, | 1001 privacy_mode_, |
1002 "GET", | 1002 "GET", |
1003 net_log_, | 1003 net_log_, |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1082 ASSERT_TRUE(callback_.have_result()); | 1082 ASSERT_TRUE(callback_.have_result()); |
1083 | 1083 |
1084 EXPECT_EQ(OK, callback_.WaitForResult()); | 1084 EXPECT_EQ(OK, callback_.WaitForResult()); |
1085 | 1085 |
1086 EXPECT_TRUE(socket_data.at_read_eof()); | 1086 EXPECT_TRUE(socket_data.at_read_eof()); |
1087 EXPECT_TRUE(socket_data.at_write_eof()); | 1087 EXPECT_TRUE(socket_data.at_write_eof()); |
1088 STLDeleteElements(&streams); | 1088 STLDeleteElements(&streams); |
1089 } | 1089 } |
1090 | 1090 |
1091 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { | 1091 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { |
1092 DeterministicSocketData socket_data(NULL, 0, NULL, 0); | 1092 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); |
1093 socket_factory_.AddSocketDataProvider(&socket_data); | 1093 socket_factory_.AddSocketDataProvider(&socket_data); |
1094 | 1094 |
1095 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); | 1095 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); |
1096 | 1096 |
1097 QuicStreamRequest request(&factory_); | 1097 QuicStreamRequest request(&factory_); |
1098 EXPECT_EQ(ERR_IO_PENDING, | 1098 EXPECT_EQ(ERR_IO_PENDING, |
1099 request.Request(host_port_pair_, | 1099 request.Request(host_port_pair_, |
1100 is_https_, | 1100 is_https_, |
1101 privacy_mode_, | 1101 privacy_mode_, |
1102 "GET", | 1102 "GET", |
1103 net_log_, | 1103 net_log_, |
1104 callback_.callback())); | 1104 callback_.callback())); |
1105 | 1105 |
1106 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); | 1106 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
1107 | 1107 |
1108 EXPECT_TRUE(socket_data.at_read_eof()); | 1108 EXPECT_TRUE(socket_data.at_read_eof()); |
1109 EXPECT_TRUE(socket_data.at_write_eof()); | 1109 EXPECT_TRUE(socket_data.at_write_eof()); |
1110 } | 1110 } |
1111 | 1111 |
1112 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { | 1112 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { |
1113 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); | 1113 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); |
1114 DeterministicSocketData socket_data(NULL, 0, NULL, 0); | 1114 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); |
1115 socket_data.set_connect_data(connect); | 1115 socket_data.set_connect_data(connect); |
1116 socket_factory_.AddSocketDataProvider(&socket_data); | 1116 socket_factory_.AddSocketDataProvider(&socket_data); |
1117 socket_data.StopAfter(1); | 1117 socket_data.StopAfter(1); |
1118 | 1118 |
1119 QuicStreamRequest request(&factory_); | 1119 QuicStreamRequest request(&factory_); |
1120 EXPECT_EQ(ERR_IO_PENDING, | 1120 EXPECT_EQ(ERR_IO_PENDING, |
1121 request.Request(host_port_pair_, | 1121 request.Request(host_port_pair_, |
1122 is_https_, | 1122 is_https_, |
1123 privacy_mode_, | 1123 privacy_mode_, |
1124 "GET", | 1124 "GET", |
1125 net_log_, | 1125 net_log_, |
1126 callback_.callback())); | 1126 callback_.callback())); |
1127 | 1127 |
1128 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); | 1128 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); |
1129 | 1129 |
1130 EXPECT_TRUE(socket_data.at_read_eof()); | 1130 EXPECT_TRUE(socket_data.at_read_eof()); |
1131 EXPECT_TRUE(socket_data.at_write_eof()); | 1131 EXPECT_TRUE(socket_data.at_write_eof()); |
1132 } | 1132 } |
1133 | 1133 |
1134 TEST_P(QuicStreamFactoryTest, CancelCreate) { | 1134 TEST_P(QuicStreamFactoryTest, CancelCreate) { |
1135 MockRead reads[] = { | 1135 MockRead reads[] = { |
1136 MockRead(ASYNC, OK, 0) // EOF | 1136 MockRead(ASYNC, OK, 0) // EOF |
1137 }; | 1137 }; |
1138 DeterministicSocketData socket_data(reads, arraysize(reads), NULL, 0); | 1138 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
1139 socket_factory_.AddSocketDataProvider(&socket_data); | 1139 socket_factory_.AddSocketDataProvider(&socket_data); |
1140 { | 1140 { |
1141 QuicStreamRequest request(&factory_); | 1141 QuicStreamRequest request(&factory_); |
1142 EXPECT_EQ(ERR_IO_PENDING, | 1142 EXPECT_EQ(ERR_IO_PENDING, |
1143 request.Request(host_port_pair_, | 1143 request.Request(host_port_pair_, |
1144 is_https_, | 1144 is_https_, |
1145 privacy_mode_, | 1145 privacy_mode_, |
1146 "GET", | 1146 "GET", |
1147 net_log_, | 1147 net_log_, |
1148 callback_.callback())); | 1148 callback_.callback())); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 } | 1186 } |
1187 | 1187 |
1188 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { | 1188 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
1189 MockRead reads[] = { | 1189 MockRead reads[] = { |
1190 MockRead(ASYNC, 0, 0) // EOF | 1190 MockRead(ASYNC, 0, 0) // EOF |
1191 }; | 1191 }; |
1192 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1192 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1193 std::vector<MockWrite> writes; | 1193 std::vector<MockWrite> writes; |
1194 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1194 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1195 DeterministicSocketData socket_data(reads, arraysize(reads), | 1195 DeterministicSocketData socket_data(reads, arraysize(reads), |
1196 writes.empty() ? NULL : &writes[0], | 1196 writes.empty() ? nullptr : &writes[0], |
1197 writes.size()); | 1197 writes.size()); |
1198 socket_factory_.AddSocketDataProvider(&socket_data); | 1198 socket_factory_.AddSocketDataProvider(&socket_data); |
1199 socket_data.StopAfter(1); | 1199 socket_data.StopAfter(1); |
1200 | 1200 |
1201 MockRead reads2[] = { | 1201 MockRead reads2[] = { |
1202 MockRead(ASYNC, 0, 0) // EOF | 1202 MockRead(ASYNC, 0, 0) // EOF |
1203 }; | 1203 }; |
1204 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); | 1204 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1205 socket_factory_.AddSocketDataProvider(&socket_data2); | 1205 socket_factory_.AddSocketDataProvider(&socket_data2); |
1206 socket_data2.StopAfter(1); | 1206 socket_data2.StopAfter(1); |
1207 | 1207 |
1208 QuicStreamRequest request(&factory_); | 1208 QuicStreamRequest request(&factory_); |
1209 EXPECT_EQ(ERR_IO_PENDING, | 1209 EXPECT_EQ(ERR_IO_PENDING, |
1210 request.Request(host_port_pair_, | 1210 request.Request(host_port_pair_, |
1211 is_https_, | 1211 is_https_, |
1212 privacy_mode_, | 1212 privacy_mode_, |
1213 "GET", | 1213 "GET", |
1214 net_log_, | 1214 net_log_, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1249 } | 1249 } |
1250 | 1250 |
1251 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1251 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
1252 MockRead reads[] = { | 1252 MockRead reads[] = { |
1253 MockRead(ASYNC, 0, 0) // EOF | 1253 MockRead(ASYNC, 0, 0) // EOF |
1254 }; | 1254 }; |
1255 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1255 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1256 std::vector<MockWrite> writes; | 1256 std::vector<MockWrite> writes; |
1257 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1257 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1258 DeterministicSocketData socket_data(reads, arraysize(reads), | 1258 DeterministicSocketData socket_data(reads, arraysize(reads), |
1259 writes.empty() ? NULL : &writes[0], | 1259 writes.empty() ? nullptr : &writes[0], |
1260 writes.size()); | 1260 writes.size()); |
1261 socket_factory_.AddSocketDataProvider(&socket_data); | 1261 socket_factory_.AddSocketDataProvider(&socket_data); |
1262 socket_data.StopAfter(1); | 1262 socket_data.StopAfter(1); |
1263 | 1263 |
1264 MockRead reads2[] = { | 1264 MockRead reads2[] = { |
1265 MockRead(ASYNC, 0, 0) // EOF | 1265 MockRead(ASYNC, 0, 0) // EOF |
1266 }; | 1266 }; |
1267 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); | 1267 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1268 socket_factory_.AddSocketDataProvider(&socket_data2); | 1268 socket_factory_.AddSocketDataProvider(&socket_data2); |
1269 socket_data2.StopAfter(1); | 1269 socket_data2.StopAfter(1); |
1270 | 1270 |
1271 QuicStreamRequest request(&factory_); | 1271 QuicStreamRequest request(&factory_); |
1272 EXPECT_EQ(ERR_IO_PENDING, | 1272 EXPECT_EQ(ERR_IO_PENDING, |
1273 request.Request(host_port_pair_, | 1273 request.Request(host_port_pair_, |
1274 is_https_, | 1274 is_https_, |
1275 privacy_mode_, | 1275 privacy_mode_, |
1276 "GET", | 1276 "GET", |
1277 net_log_, | 1277 net_log_, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1313 } | 1313 } |
1314 | 1314 |
1315 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 1315 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
1316 MockRead reads[] = { | 1316 MockRead reads[] = { |
1317 MockRead(ASYNC, 0, 0) // EOF | 1317 MockRead(ASYNC, 0, 0) // EOF |
1318 }; | 1318 }; |
1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1320 std::vector<MockWrite> writes; | 1320 std::vector<MockWrite> writes; |
1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1322 DeterministicSocketData socket_data(reads, arraysize(reads), | 1322 DeterministicSocketData socket_data(reads, arraysize(reads), |
1323 writes.empty() ? NULL : &writes[0], | 1323 writes.empty() ? nullptr : &writes[0], |
1324 writes.size()); | 1324 writes.size()); |
1325 socket_factory_.AddSocketDataProvider(&socket_data); | 1325 socket_factory_.AddSocketDataProvider(&socket_data); |
1326 socket_data.StopAfter(1); | 1326 socket_data.StopAfter(1); |
1327 | 1327 |
1328 MockRead reads2[] = { | 1328 MockRead reads2[] = { |
1329 MockRead(ASYNC, 0, 0) // EOF | 1329 MockRead(ASYNC, 0, 0) // EOF |
1330 }; | 1330 }; |
1331 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); | 1331 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1332 socket_factory_.AddSocketDataProvider(&socket_data2); | 1332 socket_factory_.AddSocketDataProvider(&socket_data2); |
1333 socket_data2.StopAfter(1); | 1333 socket_data2.StopAfter(1); |
1334 | 1334 |
1335 QuicStreamRequest request(&factory_); | 1335 QuicStreamRequest request(&factory_); |
1336 EXPECT_EQ(ERR_IO_PENDING, | 1336 EXPECT_EQ(ERR_IO_PENDING, |
1337 request.Request(host_port_pair_, | 1337 request.Request(host_port_pair_, |
1338 is_https_, | 1338 is_https_, |
1339 privacy_mode_, | 1339 privacy_mode_, |
1340 "GET", | 1340 "GET", |
1341 net_log_, | 1341 net_log_, |
1342 callback_.callback())); | 1342 callback_.callback())); |
1343 | 1343 |
1344 EXPECT_EQ(OK, callback_.WaitForResult()); | 1344 EXPECT_EQ(OK, callback_.WaitForResult()); |
1345 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1345 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
1346 HttpRequestInfo request_info; | 1346 HttpRequestInfo request_info; |
1347 EXPECT_EQ(OK, stream->InitializeStream(&request_info, | 1347 EXPECT_EQ(OK, stream->InitializeStream(&request_info, |
1348 DEFAULT_PRIORITY, | 1348 DEFAULT_PRIORITY, |
1349 net_log_, CompletionCallback())); | 1349 net_log_, CompletionCallback())); |
1350 | 1350 |
1351 // Add a cert and verify that stream saw the event. | 1351 // Add a cert and verify that stream saw the event. |
1352 factory_.OnCertAdded(NULL); | 1352 factory_.OnCertAdded(nullptr); |
1353 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 1353 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
1354 stream->ReadResponseHeaders(callback_.callback())); | 1354 stream->ReadResponseHeaders(callback_.callback())); |
1355 EXPECT_FALSE(factory_.require_confirmation()); | 1355 EXPECT_FALSE(factory_.require_confirmation()); |
1356 | 1356 |
1357 // Now attempting to request a stream to the same origin should create | 1357 // Now attempting to request a stream to the same origin should create |
1358 // a new session. | 1358 // a new session. |
1359 | 1359 |
1360 QuicStreamRequest request2(&factory_); | 1360 QuicStreamRequest request2(&factory_); |
1361 EXPECT_EQ(ERR_IO_PENDING, | 1361 EXPECT_EQ(ERR_IO_PENDING, |
1362 request2.Request(host_port_pair_, | 1362 request2.Request(host_port_pair_, |
(...skipping 14 matching lines...) Expand all Loading... |
1377 } | 1377 } |
1378 | 1378 |
1379 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 1379 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
1380 MockRead reads[] = { | 1380 MockRead reads[] = { |
1381 MockRead(ASYNC, 0, 0) // EOF | 1381 MockRead(ASYNC, 0, 0) // EOF |
1382 }; | 1382 }; |
1383 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1383 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
1384 std::vector<MockWrite> writes; | 1384 std::vector<MockWrite> writes; |
1385 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1385 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
1386 DeterministicSocketData socket_data(reads, arraysize(reads), | 1386 DeterministicSocketData socket_data(reads, arraysize(reads), |
1387 writes.empty() ? NULL : &writes[0], | 1387 writes.empty() ? nullptr : &writes[0], |
1388 writes.size()); | 1388 writes.size()); |
1389 socket_factory_.AddSocketDataProvider(&socket_data); | 1389 socket_factory_.AddSocketDataProvider(&socket_data); |
1390 socket_data.StopAfter(1); | 1390 socket_data.StopAfter(1); |
1391 | 1391 |
1392 MockRead reads2[] = { | 1392 MockRead reads2[] = { |
1393 MockRead(ASYNC, 0, 0) // EOF | 1393 MockRead(ASYNC, 0, 0) // EOF |
1394 }; | 1394 }; |
1395 DeterministicSocketData socket_data2(reads2, arraysize(reads2), NULL, 0); | 1395 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
1396 socket_factory_.AddSocketDataProvider(&socket_data2); | 1396 socket_factory_.AddSocketDataProvider(&socket_data2); |
1397 socket_data2.StopAfter(1); | 1397 socket_data2.StopAfter(1); |
1398 | 1398 |
1399 QuicStreamRequest request(&factory_); | 1399 QuicStreamRequest request(&factory_); |
1400 EXPECT_EQ(ERR_IO_PENDING, | 1400 EXPECT_EQ(ERR_IO_PENDING, |
1401 request.Request(host_port_pair_, | 1401 request.Request(host_port_pair_, |
1402 is_https_, | 1402 is_https_, |
1403 privacy_mode_, | 1403 privacy_mode_, |
1404 "GET", | 1404 "GET", |
1405 net_log_, | 1405 net_log_, |
1406 callback_.callback())); | 1406 callback_.callback())); |
1407 | 1407 |
1408 EXPECT_EQ(OK, callback_.WaitForResult()); | 1408 EXPECT_EQ(OK, callback_.WaitForResult()); |
1409 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1409 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
1410 HttpRequestInfo request_info; | 1410 HttpRequestInfo request_info; |
1411 EXPECT_EQ(OK, stream->InitializeStream(&request_info, | 1411 EXPECT_EQ(OK, stream->InitializeStream(&request_info, |
1412 DEFAULT_PRIORITY, | 1412 DEFAULT_PRIORITY, |
1413 net_log_, CompletionCallback())); | 1413 net_log_, CompletionCallback())); |
1414 | 1414 |
1415 // Change the CA cert and verify that stream saw the event. | 1415 // Change the CA cert and verify that stream saw the event. |
1416 factory_.OnCACertChanged(NULL); | 1416 factory_.OnCACertChanged(nullptr); |
1417 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 1417 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
1418 stream->ReadResponseHeaders(callback_.callback())); | 1418 stream->ReadResponseHeaders(callback_.callback())); |
1419 EXPECT_FALSE(factory_.require_confirmation()); | 1419 EXPECT_FALSE(factory_.require_confirmation()); |
1420 | 1420 |
1421 // Now attempting to request a stream to the same origin should create | 1421 // Now attempting to request a stream to the same origin should create |
1422 // a new session. | 1422 // a new session. |
1423 | 1423 |
1424 QuicStreamRequest request2(&factory_); | 1424 QuicStreamRequest request2(&factory_); |
1425 EXPECT_EQ(ERR_IO_PENDING, | 1425 EXPECT_EQ(ERR_IO_PENDING, |
1426 request2.Request(host_port_pair_, | 1426 request2.Request(host_port_pair_, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1504 QuicCryptoClientConfig::CachedState* cached2 = | 1504 QuicCryptoClientConfig::CachedState* cached2 = |
1505 crypto_config->LookupOrCreate(server_id2); | 1505 crypto_config->LookupOrCreate(server_id2); |
1506 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); | 1506 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); |
1507 EXPECT_TRUE(cached2->source_address_token().empty()); | 1507 EXPECT_TRUE(cached2->source_address_token().empty()); |
1508 EXPECT_FALSE(cached2->proof_valid()); | 1508 EXPECT_FALSE(cached2->proof_valid()); |
1509 } | 1509 } |
1510 } | 1510 } |
1511 | 1511 |
1512 } // namespace test | 1512 } // namespace test |
1513 } // namespace net | 1513 } // namespace net |
OLD | NEW |