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

Side by Side Diff: net/quic/quic_http_stream_test.cc

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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/quic_http_stream.h" 5 #include "net/quic/quic_http_stream.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "net/base/chunked_upload_data_stream.h" 9 #include "net/base/chunked_upload_data_stream.h"
10 #include "net/base/elements_upload_data_stream.h" 10 #include "net/base/elements_upload_data_stream.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 QuicConnectionPeer::SetSendAlgorithm(this, send_algorithm); 75 QuicConnectionPeer::SetSendAlgorithm(this, send_algorithm);
76 } 76 }
77 77
78 void SetReceiveAlgorithm(ReceiveAlgorithmInterface* receive_algorithm) { 78 void SetReceiveAlgorithm(ReceiveAlgorithmInterface* receive_algorithm) {
79 QuicConnectionPeer::SetReceiveAlgorithm(this, receive_algorithm); 79 QuicConnectionPeer::SetReceiveAlgorithm(this, receive_algorithm);
80 } 80 }
81 }; 81 };
82 82
83 class TestReceiveAlgorithm : public ReceiveAlgorithmInterface { 83 class TestReceiveAlgorithm : public ReceiveAlgorithmInterface {
84 public: 84 public:
85 virtual bool GenerateCongestionFeedback(
86 QuicCongestionFeedbackFrame* /*congestion_feedback*/) {
87 return false;
88 }
89
90 MOCK_METHOD3(RecordIncomingPacket, 85 MOCK_METHOD3(RecordIncomingPacket,
91 void(QuicByteCount, QuicPacketSequenceNumber, QuicTime)); 86 void(QuicByteCount, QuicPacketSequenceNumber, QuicTime));
92 }; 87 };
93 88
94 // Subclass of QuicHttpStream that closes itself when the first piece of data 89 // Subclass of QuicHttpStream that closes itself when the first piece of data
95 // is received. 90 // is received.
96 class AutoClosingStream : public QuicHttpStream { 91 class AutoClosingStream : public QuicHttpStream {
97 public: 92 public:
98 explicit AutoClosingStream(const base::WeakPtr<QuicClientSession>& session) 93 explicit AutoClosingStream(const base::WeakPtr<QuicClientSession>& session)
99 : QuicHttpStream(session) { 94 : QuicHttpStream(session) {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 response_headers_ = maker_.GetResponseHeaders(status); 253 response_headers_ = maker_.GetResponseHeaders(status);
259 response_data_ = body; 254 response_data_ = body;
260 } 255 }
261 256
262 scoped_ptr<QuicEncryptedPacket> ConstructDataPacket( 257 scoped_ptr<QuicEncryptedPacket> ConstructDataPacket(
263 QuicPacketSequenceNumber sequence_number, 258 QuicPacketSequenceNumber sequence_number,
264 bool should_include_version, 259 bool should_include_version,
265 bool fin, 260 bool fin,
266 QuicStreamOffset offset, 261 QuicStreamOffset offset,
267 base::StringPiece data) { 262 base::StringPiece data) {
268 return maker_.MakeDataPacket( 263 return maker_.MakeDataPacket(sequence_number, stream_id_,
269 sequence_number, stream_id_, should_include_version, fin, offset, data); 264 should_include_version, fin, offset, data);
270 } 265 }
271 266
272 scoped_ptr<QuicEncryptedPacket> ConstructRequestHeadersPacket( 267 scoped_ptr<QuicEncryptedPacket> ConstructRequestHeadersPacket(
273 QuicPacketSequenceNumber sequence_number, 268 QuicPacketSequenceNumber sequence_number,
274 bool fin) { 269 bool fin,
275 return maker_.MakeRequestHeadersPacket( 270 RequestPriority request_priority) {
276 sequence_number, stream_id_, kIncludeVersion, fin, request_headers_); 271 QuicPriority priority =
272 ConvertRequestPriorityToQuicPriority(request_priority);
273 return maker_.MakeRequestHeadersPacket(sequence_number, stream_id_,
274 kIncludeVersion, fin, priority,
275 request_headers_);
277 } 276 }
278 277
279 scoped_ptr<QuicEncryptedPacket> ConstructResponseHeadersPacket( 278 scoped_ptr<QuicEncryptedPacket> ConstructResponseHeadersPacket(
280 QuicPacketSequenceNumber sequence_number, 279 QuicPacketSequenceNumber sequence_number,
281 bool fin) { 280 bool fin) {
282 return maker_.MakeResponseHeadersPacket( 281 return maker_.MakeResponseHeadersPacket(
283 sequence_number, stream_id_, !kIncludeVersion, fin, response_headers_); 282 sequence_number, stream_id_, !kIncludeVersion, fin, response_headers_);
284 } 283 }
285 284
286 scoped_ptr<QuicEncryptedPacket> ConstructRstStreamPacket( 285 scoped_ptr<QuicEncryptedPacket> ConstructRstStreamPacket(
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 EXPECT_TRUE(stream_->CanFindEndOfResponse()); 353 EXPECT_TRUE(stream_->CanFindEndOfResponse());
355 } 354 }
356 355
357 TEST_P(QuicHttpStreamTest, IsConnectionReusable) { 356 TEST_P(QuicHttpStreamTest, IsConnectionReusable) {
358 Initialize(); 357 Initialize();
359 EXPECT_FALSE(stream_->IsConnectionReusable()); 358 EXPECT_FALSE(stream_->IsConnectionReusable());
360 } 359 }
361 360
362 TEST_P(QuicHttpStreamTest, GetRequest) { 361 TEST_P(QuicHttpStreamTest, GetRequest) {
363 SetRequest("GET", "/", DEFAULT_PRIORITY); 362 SetRequest("GET", "/", DEFAULT_PRIORITY);
364 AddWrite(ConstructRequestHeadersPacket(1, kFin)); 363 AddWrite(ConstructRequestHeadersPacket(1, kFin, DEFAULT_PRIORITY));
365 Initialize(); 364 Initialize();
366 365
367 request_.method = "GET"; 366 request_.method = "GET";
368 request_.url = GURL("http://www.google.com/"); 367 request_.url = GURL("http://www.google.com/");
369 368
370 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 369 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
371 net_log_, callback_.callback())); 370 net_log_, callback_.callback()));
372 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_, 371 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_,
373 callback_.callback())); 372 callback_.callback()));
374 373
(...skipping 18 matching lines...) Expand all
393 EXPECT_EQ(0, stream_->ReadResponseBody(read_buffer_.get(), 392 EXPECT_EQ(0, stream_->ReadResponseBody(read_buffer_.get(),
394 read_buffer_->size(), 393 read_buffer_->size(),
395 callback_.callback())); 394 callback_.callback()));
396 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 395 EXPECT_TRUE(stream_->IsResponseBodyComplete());
397 EXPECT_TRUE(AtEof()); 396 EXPECT_TRUE(AtEof());
398 } 397 }
399 398
400 // Regression test for http://crbug.com/288128 399 // Regression test for http://crbug.com/288128
401 TEST_P(QuicHttpStreamTest, GetRequestLargeResponse) { 400 TEST_P(QuicHttpStreamTest, GetRequestLargeResponse) {
402 SetRequest("GET", "/", DEFAULT_PRIORITY); 401 SetRequest("GET", "/", DEFAULT_PRIORITY);
403 AddWrite(ConstructRequestHeadersPacket(1, kFin)); 402 AddWrite(ConstructRequestHeadersPacket(1, kFin, DEFAULT_PRIORITY));
404 Initialize(); 403 Initialize();
405 404
406 request_.method = "GET"; 405 request_.method = "GET";
407 request_.url = GURL("http://www.google.com/"); 406 request_.url = GURL("http://www.google.com/");
408 407
409 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 408 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
410 net_log_, callback_.callback())); 409 net_log_, callback_.callback()));
411 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_, 410 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_,
412 callback_.callback())); 411 callback_.callback()));
413 412
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 session_->connection()->CloseConnection(QUIC_NO_ERROR, true); 455 session_->connection()->CloseConnection(QUIC_NO_ERROR, true);
457 456
458 EXPECT_EQ(ERR_CONNECTION_CLOSED, 457 EXPECT_EQ(ERR_CONNECTION_CLOSED,
459 stream_->SendRequest(headers_, &response_, 458 stream_->SendRequest(headers_, &response_,
460 callback_.callback())); 459 callback_.callback()));
461 } 460 }
462 461
463 // Regression test for http://crbug.com/409871 462 // Regression test for http://crbug.com/409871
464 TEST_P(QuicHttpStreamTest, SessionClosedBeforeReadResponseHeaders) { 463 TEST_P(QuicHttpStreamTest, SessionClosedBeforeReadResponseHeaders) {
465 SetRequest("GET", "/", DEFAULT_PRIORITY); 464 SetRequest("GET", "/", DEFAULT_PRIORITY);
466 AddWrite(ConstructRequestHeadersPacket(1, kFin)); 465 AddWrite(ConstructRequestHeadersPacket(1, kFin, DEFAULT_PRIORITY));
467 Initialize(); 466 Initialize();
468 467
469 request_.method = "GET"; 468 request_.method = "GET";
470 request_.url = GURL("http://www.google.com/"); 469 request_.url = GURL("http://www.google.com/");
471 470
472 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 471 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
473 net_log_, callback_.callback())); 472 net_log_, callback_.callback()));
474 473
475 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_, 474 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_,
476 callback_.callback())); 475 callback_.callback()));
477 476
478 session_->connection()->CloseConnection(QUIC_NO_ERROR, true); 477 session_->connection()->CloseConnection(QUIC_NO_ERROR, true);
479 478
480 EXPECT_NE(OK, stream_->ReadResponseHeaders(callback_.callback())); 479 EXPECT_NE(OK, stream_->ReadResponseHeaders(callback_.callback()));
481 } 480 }
482 481
483 TEST_P(QuicHttpStreamTest, SendPostRequest) { 482 TEST_P(QuicHttpStreamTest, SendPostRequest) {
484 SetRequest("POST", "/", DEFAULT_PRIORITY); 483 SetRequest("POST", "/", DEFAULT_PRIORITY);
485 AddWrite(ConstructRequestHeadersPacket(1, !kFin)); 484 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY));
486 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, kUploadData)); 485 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, kUploadData));
487 AddWrite(ConstructAckPacket(3, 3, 1)); 486 AddWrite(ConstructAckPacket(3, 3, 1));
488 487
489 Initialize(); 488 Initialize();
490 489
491 ScopedVector<UploadElementReader> element_readers; 490 ScopedVector<UploadElementReader> element_readers;
492 element_readers.push_back( 491 element_readers.push_back(
493 new UploadBytesElementReader(kUploadData, strlen(kUploadData))); 492 new UploadBytesElementReader(kUploadData, strlen(kUploadData)));
494 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0); 493 ElementsUploadDataStream upload_data_stream(element_readers.Pass(), 0);
495 request_.method = "POST"; 494 request_.method = "POST";
(...skipping 27 matching lines...) Expand all
523 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 522 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
524 callback_.callback())); 523 callback_.callback()));
525 524
526 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 525 EXPECT_TRUE(stream_->IsResponseBodyComplete());
527 EXPECT_TRUE(AtEof()); 526 EXPECT_TRUE(AtEof());
528 } 527 }
529 528
530 TEST_P(QuicHttpStreamTest, SendChunkedPostRequest) { 529 TEST_P(QuicHttpStreamTest, SendChunkedPostRequest) {
531 SetRequest("POST", "/", DEFAULT_PRIORITY); 530 SetRequest("POST", "/", DEFAULT_PRIORITY);
532 size_t chunk_size = strlen(kUploadData); 531 size_t chunk_size = strlen(kUploadData);
533 AddWrite(ConstructRequestHeadersPacket(1, !kFin)); 532 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY));
534 AddWrite(ConstructDataPacket(2, kIncludeVersion, !kFin, 0, kUploadData)); 533 AddWrite(ConstructDataPacket(2, kIncludeVersion, !kFin, 0, kUploadData));
535 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, chunk_size, 534 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, chunk_size,
536 kUploadData)); 535 kUploadData));
537 AddWrite(ConstructAckPacket(4, 3, 1)); 536 AddWrite(ConstructAckPacket(4, 3, 1));
538 Initialize(); 537 Initialize();
539 538
540 ChunkedUploadDataStream upload_data_stream(0); 539 ChunkedUploadDataStream upload_data_stream(0);
541 upload_data_stream.AppendData(kUploadData, chunk_size, false); 540 upload_data_stream.AppendData(kUploadData, chunk_size, false);
542 541
543 request_.method = "POST"; 542 request_.method = "POST";
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 575 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
577 callback_.callback())); 576 callback_.callback()));
578 577
579 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 578 EXPECT_TRUE(stream_->IsResponseBodyComplete());
580 EXPECT_TRUE(AtEof()); 579 EXPECT_TRUE(AtEof());
581 } 580 }
582 581
583 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithFinalEmptyDataPacket) { 582 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithFinalEmptyDataPacket) {
584 SetRequest("POST", "/", DEFAULT_PRIORITY); 583 SetRequest("POST", "/", DEFAULT_PRIORITY);
585 size_t chunk_size = strlen(kUploadData); 584 size_t chunk_size = strlen(kUploadData);
586 AddWrite(ConstructRequestHeadersPacket(1, !kFin)); 585 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY));
587 AddWrite(ConstructDataPacket(2, kIncludeVersion, !kFin, 0, kUploadData)); 586 AddWrite(ConstructDataPacket(2, kIncludeVersion, !kFin, 0, kUploadData));
588 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, chunk_size, "")); 587 AddWrite(ConstructDataPacket(3, kIncludeVersion, kFin, chunk_size, ""));
589 AddWrite(ConstructAckPacket(4, 3, 1)); 588 AddWrite(ConstructAckPacket(4, 3, 1));
590 Initialize(); 589 Initialize();
591 590
592 ChunkedUploadDataStream upload_data_stream(0); 591 ChunkedUploadDataStream upload_data_stream(0);
593 upload_data_stream.AppendData(kUploadData, chunk_size, false); 592 upload_data_stream.AppendData(kUploadData, chunk_size, false);
594 593
595 request_.method = "POST"; 594 request_.method = "POST";
596 request_.url = GURL("http://www.google.com/"); 595 request_.url = GURL("http://www.google.com/");
(...skipping 29 matching lines...) Expand all
626 ASSERT_EQ(static_cast<int>(strlen(kResponseBody)), 625 ASSERT_EQ(static_cast<int>(strlen(kResponseBody)),
627 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 626 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
628 callback_.callback())); 627 callback_.callback()));
629 628
630 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 629 EXPECT_TRUE(stream_->IsResponseBodyComplete());
631 EXPECT_TRUE(AtEof()); 630 EXPECT_TRUE(AtEof());
632 } 631 }
633 632
634 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithOneEmptyDataPacket) { 633 TEST_P(QuicHttpStreamTest, SendChunkedPostRequestWithOneEmptyDataPacket) {
635 SetRequest("POST", "/", DEFAULT_PRIORITY); 634 SetRequest("POST", "/", DEFAULT_PRIORITY);
636 AddWrite(ConstructRequestHeadersPacket(1, !kFin)); 635 AddWrite(ConstructRequestHeadersPacket(1, !kFin, DEFAULT_PRIORITY));
637 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, "")); 636 AddWrite(ConstructDataPacket(2, kIncludeVersion, kFin, 0, ""));
638 AddWrite(ConstructAckPacket(3, 3, 1)); 637 AddWrite(ConstructAckPacket(3, 3, 1));
639 Initialize(); 638 Initialize();
640 639
641 ChunkedUploadDataStream upload_data_stream(0); 640 ChunkedUploadDataStream upload_data_stream(0);
642 641
643 request_.method = "POST"; 642 request_.method = "POST";
644 request_.url = GURL("http://www.google.com/"); 643 request_.url = GURL("http://www.google.com/");
645 request_.upload_data_stream = &upload_data_stream; 644 request_.upload_data_stream = &upload_data_stream;
646 ASSERT_EQ(OK, request_.upload_data_stream->Init( 645 ASSERT_EQ(OK, request_.upload_data_stream->Init(
(...skipping 27 matching lines...) Expand all
674 ASSERT_EQ(static_cast<int>(strlen(kResponseBody)), 673 ASSERT_EQ(static_cast<int>(strlen(kResponseBody)),
675 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(), 674 stream_->ReadResponseBody(read_buffer_.get(), read_buffer_->size(),
676 callback_.callback())); 675 callback_.callback()));
677 676
678 EXPECT_TRUE(stream_->IsResponseBodyComplete()); 677 EXPECT_TRUE(stream_->IsResponseBodyComplete());
679 EXPECT_TRUE(AtEof()); 678 EXPECT_TRUE(AtEof());
680 } 679 }
681 680
682 TEST_P(QuicHttpStreamTest, DestroyedEarly) { 681 TEST_P(QuicHttpStreamTest, DestroyedEarly) {
683 SetRequest("GET", "/", DEFAULT_PRIORITY); 682 SetRequest("GET", "/", DEFAULT_PRIORITY);
684 AddWrite(ConstructRequestHeadersPacket(1, kFin)); 683 AddWrite(ConstructRequestHeadersPacket(1, kFin, DEFAULT_PRIORITY));
685 AddWrite(ConstructAckAndRstStreamPacket(2)); 684 AddWrite(ConstructAckAndRstStreamPacket(2));
686 use_closing_stream_ = true; 685 use_closing_stream_ = true;
687 Initialize(); 686 Initialize();
688 687
689 request_.method = "GET"; 688 request_.method = "GET";
690 request_.url = GURL("http://www.google.com/"); 689 request_.url = GURL("http://www.google.com/");
691 690
692 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY, 691 EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
693 net_log_, callback_.callback())); 692 net_log_, callback_.callback()));
694 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_, 693 EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_,
695 callback_.callback())); 694 callback_.callback()));
696 695
697 // Ack the request. 696 // Ack the request.
698 ProcessPacket(ConstructAckPacket(1, 0, 0)); 697 ProcessPacket(ConstructAckPacket(1, 0, 0));
699 EXPECT_EQ(ERR_IO_PENDING, 698 EXPECT_EQ(ERR_IO_PENDING,
700 stream_->ReadResponseHeaders(callback_.callback())); 699 stream_->ReadResponseHeaders(callback_.callback()));
701 700
702 // Send the response with a body. 701 // Send the response with a body.
703 SetResponse("404 OK", "hello world!"); 702 SetResponse("404 OK", "hello world!");
704 // In the course of processing this packet, the QuicHttpStream close itself. 703 // In the course of processing this packet, the QuicHttpStream close itself.
705 ProcessPacket(ConstructResponseHeadersPacket(2, kFin)); 704 ProcessPacket(ConstructResponseHeadersPacket(2, kFin));
706 705
707 EXPECT_TRUE(AtEof()); 706 EXPECT_TRUE(AtEof());
708 } 707 }
709 708
710 TEST_P(QuicHttpStreamTest, Priority) { 709 TEST_P(QuicHttpStreamTest, Priority) {
711 SetRequest("GET", "/", MEDIUM); 710 SetRequest("GET", "/", MEDIUM);
712 AddWrite(ConstructRequestHeadersPacket(1, kFin)); 711 AddWrite(ConstructRequestHeadersPacket(1, kFin, MEDIUM));
713 AddWrite(ConstructAckAndRstStreamPacket(2)); 712 AddWrite(ConstructAckAndRstStreamPacket(2));
714 use_closing_stream_ = true; 713 use_closing_stream_ = true;
715 Initialize(); 714 Initialize();
716 715
717 request_.method = "GET"; 716 request_.method = "GET";
718 request_.url = GURL("http://www.google.com/"); 717 request_.url = GURL("http://www.google.com/");
719 718
720 EXPECT_EQ(OK, stream_->InitializeStream(&request_, MEDIUM, 719 EXPECT_EQ(OK, stream_->InitializeStream(&request_, MEDIUM,
721 net_log_, callback_.callback())); 720 net_log_, callback_.callback()));
722 721
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 // Set Delegate to nullptr and make sure EffectivePriority returns highest 773 // Set Delegate to nullptr and make sure EffectivePriority returns highest
775 // priority. 774 // priority.
776 reliable_stream->SetDelegate(nullptr); 775 reliable_stream->SetDelegate(nullptr);
777 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority, 776 DCHECK_EQ(QuicWriteBlockedList::kHighestPriority,
778 reliable_stream->EffectivePriority()); 777 reliable_stream->EffectivePriority());
779 reliable_stream->SetDelegate(delegate); 778 reliable_stream->SetDelegate(delegate);
780 } 779 }
781 780
782 } // namespace test 781 } // namespace test
783 } // namespace net 782 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698