Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: net/quic/chromium/quic_chromium_client_session_test.cc

Issue 2838113002: Simplify QUIC tests by adding a MakeInitialSettingsPacket method (Closed)
Patch Set: Rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/chromium/quic_chromium_client_session.h" 5 #include "net/quic/chromium/quic_chromium_client_session.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 ProofVerifyDetailsChromium verify_details_; 177 ProofVerifyDetailsChromium verify_details_;
178 }; 178 };
179 179
180 INSTANTIATE_TEST_CASE_P(Tests, 180 INSTANTIATE_TEST_CASE_P(Tests,
181 QuicChromiumClientSessionTest, 181 QuicChromiumClientSessionTest,
182 ::testing::ValuesIn(AllSupportedVersions())); 182 ::testing::ValuesIn(AllSupportedVersions()));
183 183
184 TEST_P(QuicChromiumClientSessionTest, CryptoConnect) { 184 TEST_P(QuicChromiumClientSessionTest, CryptoConnect) {
185 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 185 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
186 std::unique_ptr<QuicEncryptedPacket> settings_packet( 186 std::unique_ptr<QuicEncryptedPacket> settings_packet(
187 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 187 client_maker_.MakeInitialSettingsPacket(1, nullptr));
188 kDefaultMaxUncompressedHeaderSize, true,
189 nullptr));
190 MockWrite writes[] = { 188 MockWrite writes[] = {
191 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 189 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
192 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 190 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
193 arraysize(writes))); 191 arraysize(writes)));
194 Initialize(); 192 Initialize();
195 CompleteCryptoHandshake(); 193 CompleteCryptoHandshake();
196 } 194 }
197 195
198 TEST_P(QuicChromiumClientSessionTest, MaxNumStreams) { 196 TEST_P(QuicChromiumClientSessionTest, MaxNumStreams) {
199 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 197 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
200 std::unique_ptr<QuicEncryptedPacket> settings_packet( 198 std::unique_ptr<QuicEncryptedPacket> settings_packet(
201 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 199 client_maker_.MakeInitialSettingsPacket(1, nullptr));
202 kDefaultMaxUncompressedHeaderSize, true,
203 nullptr));
204 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 200 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
205 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 201 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
206 MockWrite writes[] = { 202 MockWrite writes[] = {
207 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 203 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
208 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 204 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
209 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 205 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
210 arraysize(writes))); 206 arraysize(writes)));
211 207
212 Initialize(); 208 Initialize();
213 CompleteCryptoHandshake(); 209 CompleteCryptoHandshake();
(...skipping 18 matching lines...) Expand all
232 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); 228 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0);
233 session_->OnRstStream(rst1); 229 session_->OnRstStream(rst1);
234 EXPECT_EQ(kMaxOpenStreams - 1, session_->GetNumOpenOutgoingStreams()); 230 EXPECT_EQ(kMaxOpenStreams - 1, session_->GetNumOpenOutgoingStreams());
235 EXPECT_TRUE(session_->CreateOutgoingDynamicStream(kDefaultPriority)); 231 EXPECT_TRUE(session_->CreateOutgoingDynamicStream(kDefaultPriority));
236 } 232 }
237 233
238 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) { 234 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) {
239 base::HistogramTester histogram_tester; 235 base::HistogramTester histogram_tester;
240 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 236 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
241 std::unique_ptr<QuicEncryptedPacket> settings_packet( 237 std::unique_ptr<QuicEncryptedPacket> settings_packet(
242 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 238 client_maker_.MakeInitialSettingsPacket(1, nullptr));
243 kDefaultMaxUncompressedHeaderSize, true,
244 nullptr));
245 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 239 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
246 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); 240 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT));
247 MockWrite writes[] = { 241 MockWrite writes[] = {
248 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 242 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
249 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 243 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
250 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 244 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
251 arraysize(writes))); 245 arraysize(writes)));
252 Initialize(); 246 Initialize();
253 247
254 ProofVerifyDetailsChromium details; 248 ProofVerifyDetailsChromium details;
(...skipping 28 matching lines...) Expand all
283 EXPECT_EQ(0u, 277 EXPECT_EQ(0u,
284 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); 278 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get()));
285 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( 279 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount(
286 session_.get())); 280 session_.get()));
287 } 281 }
288 282
289 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) { 283 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) {
290 base::HistogramTester histogram_tester; 284 base::HistogramTester histogram_tester;
291 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 285 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
292 std::unique_ptr<QuicEncryptedPacket> settings_packet( 286 std::unique_ptr<QuicEncryptedPacket> settings_packet(
293 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 287 client_maker_.MakeInitialSettingsPacket(1, nullptr));
294 kDefaultMaxUncompressedHeaderSize, true,
295 nullptr));
296 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 288 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
297 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); 289 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT));
298 MockWrite writes[] = { 290 MockWrite writes[] = {
299 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 291 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
300 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 292 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
301 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 293 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
302 arraysize(writes))); 294 arraysize(writes)));
303 Initialize(); 295 Initialize();
304 296
305 ProofVerifyDetailsChromium details; 297 ProofVerifyDetailsChromium details;
(...skipping 30 matching lines...) Expand all
336 alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised)); 328 alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised));
337 EXPECT_EQ(2u, 329 EXPECT_EQ(2u,
338 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); 330 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get()));
339 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( 331 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount(
340 session_.get())); 332 session_.get()));
341 } 333 }
342 334
343 TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) { 335 TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) {
344 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 336 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
345 std::unique_ptr<QuicEncryptedPacket> settings_packet( 337 std::unique_ptr<QuicEncryptedPacket> settings_packet(
346 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 338 client_maker_.MakeInitialSettingsPacket(1, nullptr));
347 kDefaultMaxUncompressedHeaderSize, true,
348 nullptr));
349 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 339 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
350 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 340 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
351 341
352 MockWrite writes[] = { 342 MockWrite writes[] = {
353 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 343 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
354 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 344 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
355 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 345 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
356 arraysize(writes))); 346 arraysize(writes)));
357 Initialize(); 347 Initialize();
358 348
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 EXPECT_TRUE(session_->GetPromisedByUrl(pushed_url.spec())); 383 EXPECT_TRUE(session_->GetPromisedByUrl(pushed_url.spec()));
394 384
395 // Reset the stream now before tear down. 385 // Reset the stream now before tear down.
396 session_->CloseStream(kClientDataStreamId1); 386 session_->CloseStream(kClientDataStreamId1);
397 } 387 }
398 388
399 TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) { 389 TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) {
400 base::HistogramTester histogram_tester; 390 base::HistogramTester histogram_tester;
401 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 391 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
402 std::unique_ptr<QuicEncryptedPacket> settings_packet( 392 std::unique_ptr<QuicEncryptedPacket> settings_packet(
403 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 393 client_maker_.MakeInitialSettingsPacket(1, nullptr));
404 kDefaultMaxUncompressedHeaderSize, true,
405 nullptr));
406 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 394 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
407 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); 395 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
408 MockWrite writes[] = { 396 MockWrite writes[] = {
409 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 397 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
410 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 398 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
411 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 399 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
412 arraysize(writes))); 400 arraysize(writes)));
413 Initialize(); 401 Initialize();
414 402
415 ProofVerifyDetailsChromium details; 403 ProofVerifyDetailsChromium details;
(...skipping 29 matching lines...) Expand all
445 EXPECT_EQ(0u, 433 EXPECT_EQ(0u,
446 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); 434 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get()));
447 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( 435 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount(
448 session_.get())); 436 session_.get()));
449 } 437 }
450 438
451 TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) { 439 TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) {
452 base::HistogramTester histogram_tester; 440 base::HistogramTester histogram_tester;
453 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 441 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
454 std::unique_ptr<QuicEncryptedPacket> settings_packet( 442 std::unique_ptr<QuicEncryptedPacket> settings_packet(
455 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 443 client_maker_.MakeInitialSettingsPacket(1, nullptr));
456 kDefaultMaxUncompressedHeaderSize, true,
457 nullptr));
458 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 444 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
459 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); 445 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
460 MockWrite writes[] = { 446 MockWrite writes[] = {
461 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 447 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
462 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 448 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
463 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 449 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
464 arraysize(writes))); 450 arraysize(writes)));
465 Initialize(); 451 Initialize();
466 452
467 ProofVerifyDetailsChromium details; 453 ProofVerifyDetailsChromium details;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 EXPECT_FALSE(session_->GetPromisedByUrl(pushed_url.spec())); 487 EXPECT_FALSE(session_->GetPromisedByUrl(pushed_url.spec()));
502 EXPECT_EQ(2u, 488 EXPECT_EQ(2u,
503 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); 489 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get()));
504 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( 490 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount(
505 session_.get())); 491 session_.get()));
506 } 492 }
507 493
508 TEST_P(QuicChromiumClientSessionTest, Priority) { 494 TEST_P(QuicChromiumClientSessionTest, Priority) {
509 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 495 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
510 std::unique_ptr<QuicEncryptedPacket> settings_packet( 496 std::unique_ptr<QuicEncryptedPacket> settings_packet(
511 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 497 client_maker_.MakeInitialSettingsPacket(1, nullptr));
512 kDefaultMaxUncompressedHeaderSize, true,
513 nullptr));
514 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 498 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
515 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 499 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
516 MockWrite writes[] = { 500 MockWrite writes[] = {
517 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 501 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
518 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 502 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
519 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 503 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
520 arraysize(writes))); 504 arraysize(writes)));
521 505
522 Initialize(); 506 Initialize();
523 CompleteCryptoHandshake(); 507 CompleteCryptoHandshake();
524 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) { 508 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) {
525 QuicChromiumClientStream* stream = 509 QuicChromiumClientStream* stream =
526 session_->CreateOutgoingDynamicStream(priority); 510 session_->CreateOutgoingDynamicStream(priority);
527 EXPECT_EQ(kV3HighestPriority, stream->priority()); 511 EXPECT_EQ(kV3HighestPriority, stream->priority());
528 512
529 MockStreamDelegate delegate; 513 MockStreamDelegate delegate;
530 EXPECT_CALL(delegate, HasSendHeadersComplete()) 514 EXPECT_CALL(delegate, HasSendHeadersComplete())
531 .WillOnce(testing::Return(true)); 515 .WillOnce(testing::Return(true));
532 stream->SetDelegate(&delegate); 516 stream->SetDelegate(&delegate);
533 EXPECT_EQ(priority, stream->priority()); 517 EXPECT_EQ(priority, stream->priority());
534 stream->SetDelegate(nullptr); 518 stream->SetDelegate(nullptr);
535 session_->CloseStream(stream->id()); 519 session_->CloseStream(stream->id());
536 } 520 }
537 } 521 }
538 522
539 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) { 523 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) {
540 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 524 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
541 std::unique_ptr<QuicEncryptedPacket> settings_packet( 525 std::unique_ptr<QuicEncryptedPacket> settings_packet(
542 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 526 client_maker_.MakeInitialSettingsPacket(1, nullptr));
543 kDefaultMaxUncompressedHeaderSize, true,
544 nullptr));
545 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( 527 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket(
546 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 528 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
547 MockWrite writes[] = { 529 MockWrite writes[] = {
548 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), 530 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1),
549 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; 531 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)};
550 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 532 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
551 arraysize(writes))); 533 arraysize(writes)));
552 534
553 Initialize(); 535 Initialize();
554 CompleteCryptoHandshake(); 536 CompleteCryptoHandshake();
(...skipping 20 matching lines...) Expand all
575 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); 557 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0);
576 session_->OnRstStream(rst1); 558 session_->OnRstStream(rst1);
577 ASSERT_TRUE(callback.have_result()); 559 ASSERT_TRUE(callback.have_result());
578 EXPECT_THAT(callback.WaitForResult(), IsOk()); 560 EXPECT_THAT(callback.WaitForResult(), IsOk());
579 EXPECT_TRUE(stream != nullptr); 561 EXPECT_TRUE(stream != nullptr);
580 } 562 }
581 563
582 TEST_P(QuicChromiumClientSessionTest, GoAwayReceived) { 564 TEST_P(QuicChromiumClientSessionTest, GoAwayReceived) {
583 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 565 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
584 std::unique_ptr<QuicEncryptedPacket> settings_packet( 566 std::unique_ptr<QuicEncryptedPacket> settings_packet(
585 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 567 client_maker_.MakeInitialSettingsPacket(1, nullptr));
586 kDefaultMaxUncompressedHeaderSize, true,
587 nullptr));
588 MockWrite writes[] = { 568 MockWrite writes[] = {
589 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 569 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
590 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 570 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
591 arraysize(writes))); 571 arraysize(writes)));
592 Initialize(); 572 Initialize();
593 CompleteCryptoHandshake(); 573 CompleteCryptoHandshake();
594 574
595 // After receiving a GoAway, I should no longer be able to create outgoing 575 // After receiving a GoAway, I should no longer be able to create outgoing
596 // streams. 576 // streams.
597 session_->connection()->OnGoAwayFrame( 577 session_->connection()->OnGoAwayFrame(
598 QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away.")); 578 QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away."));
599 EXPECT_EQ(nullptr, session_->CreateOutgoingDynamicStream(kDefaultPriority)); 579 EXPECT_EQ(nullptr, session_->CreateOutgoingDynamicStream(kDefaultPriority));
600 } 580 }
601 581
602 TEST_P(QuicChromiumClientSessionTest, CanPool) { 582 TEST_P(QuicChromiumClientSessionTest, CanPool) {
603 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 583 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
604 std::unique_ptr<QuicEncryptedPacket> settings_packet( 584 std::unique_ptr<QuicEncryptedPacket> settings_packet(
605 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 585 client_maker_.MakeInitialSettingsPacket(1, nullptr));
606 kDefaultMaxUncompressedHeaderSize, true,
607 nullptr));
608 MockWrite writes[] = { 586 MockWrite writes[] = {
609 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 587 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
610 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 588 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
611 arraysize(writes))); 589 arraysize(writes)));
612 Initialize(); 590 Initialize();
613 // Load a cert that is valid for: 591 // Load a cert that is valid for:
614 // www.example.org 592 // www.example.org
615 // mail.example.org 593 // mail.example.org
616 // www.example.com 594 // www.example.com
617 595
618 ProofVerifyDetailsChromium details; 596 ProofVerifyDetailsChromium details;
619 details.cert_verify_result.verified_cert = 597 details.cert_verify_result.verified_cert =
620 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); 598 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem");
621 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); 599 ASSERT_TRUE(details.cert_verify_result.verified_cert.get());
622 600
623 CompleteCryptoHandshake(); 601 CompleteCryptoHandshake();
624 session_->OnProofVerifyDetailsAvailable(details); 602 session_->OnProofVerifyDetailsAvailable(details);
625 603
626 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); 604 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED));
627 EXPECT_FALSE(session_->CanPool("www.example.org", PRIVACY_MODE_ENABLED)); 605 EXPECT_FALSE(session_->CanPool("www.example.org", PRIVACY_MODE_ENABLED));
628 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); 606 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED));
629 EXPECT_TRUE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); 607 EXPECT_TRUE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED));
630 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); 608 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED));
631 } 609 }
632 610
633 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithTlsChannelId) { 611 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithTlsChannelId) {
634 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 612 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
635 std::unique_ptr<QuicEncryptedPacket> settings_packet( 613 std::unique_ptr<QuicEncryptedPacket> settings_packet(
636 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 614 client_maker_.MakeInitialSettingsPacket(1, nullptr));
637 kDefaultMaxUncompressedHeaderSize, true,
638 nullptr));
639 MockWrite writes[] = { 615 MockWrite writes[] = {
640 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 616 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
641 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 617 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
642 arraysize(writes))); 618 arraysize(writes)));
643 Initialize(); 619 Initialize();
644 // Load a cert that is valid for: 620 // Load a cert that is valid for:
645 // www.example.org 621 // www.example.org
646 // mail.example.org 622 // mail.example.org
647 // www.example.com 623 // www.example.com
648 624
649 ProofVerifyDetailsChromium details; 625 ProofVerifyDetailsChromium details;
650 details.cert_verify_result.verified_cert = 626 details.cert_verify_result.verified_cert =
651 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); 627 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem");
652 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); 628 ASSERT_TRUE(details.cert_verify_result.verified_cert.get());
653 629
654 CompleteCryptoHandshake(); 630 CompleteCryptoHandshake();
655 session_->OnProofVerifyDetailsAvailable(details); 631 session_->OnProofVerifyDetailsAvailable(details);
656 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); 632 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org");
657 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); 633 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true);
658 634
659 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); 635 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED));
660 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); 636 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED));
661 EXPECT_FALSE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); 637 EXPECT_FALSE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED));
662 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); 638 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED));
663 } 639 }
664 640
665 TEST_P(QuicChromiumClientSessionTest, ConnectionNotPooledWithDifferentPin) { 641 TEST_P(QuicChromiumClientSessionTest, ConnectionNotPooledWithDifferentPin) {
666 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 642 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
667 std::unique_ptr<QuicEncryptedPacket> settings_packet( 643 std::unique_ptr<QuicEncryptedPacket> settings_packet(
668 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 644 client_maker_.MakeInitialSettingsPacket(1, nullptr));
669 kDefaultMaxUncompressedHeaderSize, true,
670 nullptr));
671 MockWrite writes[] = { 645 MockWrite writes[] = {
672 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 646 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
673 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 647 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
674 arraysize(writes))); 648 arraysize(writes)));
675 Initialize(); 649 Initialize();
676 650
677 uint8_t primary_pin = 1; 651 uint8_t primary_pin = 1;
678 uint8_t backup_pin = 2; 652 uint8_t backup_pin = 2;
679 uint8_t bad_pin = 3; 653 uint8_t bad_pin = 3;
680 AddPin(&transport_security_state_, "mail.example.org", primary_pin, 654 AddPin(&transport_security_state_, "mail.example.org", primary_pin,
(...skipping 12 matching lines...) Expand all
693 session_->OnProofVerifyDetailsAvailable(details); 667 session_->OnProofVerifyDetailsAvailable(details);
694 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); 668 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org");
695 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); 669 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true);
696 670
697 EXPECT_FALSE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); 671 EXPECT_FALSE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED));
698 } 672 }
699 673
700 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithMatchingPin) { 674 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithMatchingPin) {
701 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 675 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
702 std::unique_ptr<QuicEncryptedPacket> settings_packet( 676 std::unique_ptr<QuicEncryptedPacket> settings_packet(
703 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 677 client_maker_.MakeInitialSettingsPacket(1, nullptr));
704 kDefaultMaxUncompressedHeaderSize, true,
705 nullptr));
706 MockWrite writes[] = { 678 MockWrite writes[] = {
707 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 679 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
708 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, 680 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes,
709 arraysize(writes))); 681 arraysize(writes)));
710 Initialize(); 682 Initialize();
711 683
712 uint8_t primary_pin = 1; 684 uint8_t primary_pin = 1;
713 uint8_t backup_pin = 2; 685 uint8_t backup_pin = 2;
714 AddPin(&transport_security_state_, "mail.example.org", primary_pin, 686 AddPin(&transport_security_state_, "mail.example.org", primary_pin,
715 backup_pin); 687 backup_pin);
(...skipping 11 matching lines...) Expand all
727 session_->OnProofVerifyDetailsAvailable(details); 699 session_->OnProofVerifyDetailsAvailable(details);
728 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); 700 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org");
729 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); 701 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true);
730 702
731 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); 703 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED));
732 } 704 }
733 705
734 TEST_P(QuicChromiumClientSessionTest, MigrateToSocket) { 706 TEST_P(QuicChromiumClientSessionTest, MigrateToSocket) {
735 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 707 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
736 std::unique_ptr<QuicEncryptedPacket> settings_packet( 708 std::unique_ptr<QuicEncryptedPacket> settings_packet(
737 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 709 client_maker_.MakeInitialSettingsPacket(1, nullptr));
738 kDefaultMaxUncompressedHeaderSize, true,
739 nullptr));
740 MockWrite old_writes[] = { 710 MockWrite old_writes[] = {
741 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 711 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
742 socket_data_.reset(new SequencedSocketData( 712 socket_data_.reset(new SequencedSocketData(
743 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); 713 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes)));
744 Initialize(); 714 Initialize();
745 CompleteCryptoHandshake(); 715 CompleteCryptoHandshake();
746 716
747 char data[] = "ABCD"; 717 char data[] = "ABCD";
748 std::unique_ptr<QuicEncryptedPacket> client_ping( 718 std::unique_ptr<QuicEncryptedPacket> client_ping(
749 client_maker_.MakePingPacket(2, /*include_version=*/false)); 719 client_maker_.MakePingPacket(2, /*include_version=*/false));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 QuicIOVector(iov, arraysize(iov), 4), 0, NO_FIN, 765 QuicIOVector(iov, arraysize(iov), 4), 0, NO_FIN,
796 nullptr); 766 nullptr);
797 767
798 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 768 EXPECT_TRUE(socket_data.AllReadDataConsumed());
799 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 769 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
800 } 770 }
801 771
802 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketMaxReaders) { 772 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketMaxReaders) {
803 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; 773 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)};
804 std::unique_ptr<QuicEncryptedPacket> settings_packet( 774 std::unique_ptr<QuicEncryptedPacket> settings_packet(
805 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 775 client_maker_.MakeInitialSettingsPacket(1, nullptr));
806 kDefaultMaxUncompressedHeaderSize, true,
807 nullptr));
808 MockWrite old_writes[] = { 776 MockWrite old_writes[] = {
809 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; 777 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)};
810 socket_data_.reset(new SequencedSocketData( 778 socket_data_.reset(new SequencedSocketData(
811 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); 779 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes)));
812 Initialize(); 780 Initialize();
813 CompleteCryptoHandshake(); 781 CompleteCryptoHandshake();
814 782
815 for (size_t i = 0; i < kMaxReadersPerQuicSession; ++i) { 783 for (size_t i = 0; i < kMaxReadersPerQuicSession; ++i) {
816 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1)}; 784 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1)};
817 std::unique_ptr<QuicEncryptedPacket> ping_out( 785 std::unique_ptr<QuicEncryptedPacket> ping_out(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 EXPECT_FALSE(session_->MigrateToSocket( 820 EXPECT_FALSE(session_->MigrateToSocket(
853 std::move(new_socket), std::move(new_reader), std::move(new_writer))); 821 std::move(new_socket), std::move(new_reader), std::move(new_writer)));
854 EXPECT_FALSE(socket_data.AllReadDataConsumed()); 822 EXPECT_FALSE(socket_data.AllReadDataConsumed());
855 EXPECT_FALSE(socket_data.AllWriteDataConsumed()); 823 EXPECT_FALSE(socket_data.AllWriteDataConsumed());
856 } 824 }
857 } 825 }
858 } 826 }
859 827
860 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) { 828 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) {
861 std::unique_ptr<QuicEncryptedPacket> settings_packet( 829 std::unique_ptr<QuicEncryptedPacket> settings_packet(
862 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 830 client_maker_.MakeInitialSettingsPacket(1, nullptr));
863 kDefaultMaxUncompressedHeaderSize, true,
864 nullptr));
865 std::unique_ptr<QuicEncryptedPacket> client_ping( 831 std::unique_ptr<QuicEncryptedPacket> client_ping(
866 client_maker_.MakePingPacket(2, /*include_version=*/false)); 832 client_maker_.MakePingPacket(2, /*include_version=*/false));
867 std::unique_ptr<QuicEncryptedPacket> server_ping( 833 std::unique_ptr<QuicEncryptedPacket> server_ping(
868 server_maker_.MakePingPacket(1, /*include_version=*/false)); 834 server_maker_.MakePingPacket(1, /*include_version=*/false));
869 MockWrite old_writes[] = { 835 MockWrite old_writes[] = {
870 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 0)}; 836 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 0)};
871 MockRead old_reads[] = { 837 MockRead old_reads[] = {
872 MockRead(ASYNC, ERR_IO_PENDING, 1), // causes reading to pause. 838 MockRead(ASYNC, ERR_IO_PENDING, 1), // causes reading to pause.
873 MockRead(ASYNC, ERR_NETWORK_CHANGED, 2)}; 839 MockRead(ASYNC, ERR_NETWORK_CHANGED, 2)};
874 socket_data_.reset(new SequencedSocketData( 840 socket_data_.reset(new SequencedSocketData(
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 891
926 EXPECT_TRUE(socket_data_->AllReadDataConsumed()); 892 EXPECT_TRUE(socket_data_->AllReadDataConsumed());
927 EXPECT_TRUE(socket_data_->AllWriteDataConsumed()); 893 EXPECT_TRUE(socket_data_->AllWriteDataConsumed());
928 EXPECT_TRUE(new_socket_data.AllReadDataConsumed()); 894 EXPECT_TRUE(new_socket_data.AllReadDataConsumed());
929 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); 895 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed());
930 } 896 }
931 897
932 } // namespace 898 } // namespace
933 } // namespace test 899 } // namespace test
934 } // namespace net 900 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/bidirectional_stream_quic_impl_unittest.cc ('k') | net/quic/chromium/quic_http_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698