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

Side by Side Diff: net/spdy/spdy_stream_unittest.cc

Issue 2096713002: Reduce SpdyHeaderBlock copies with move semantics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clear() does not work after all. Created 4 years, 6 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
« no previous file with comments | « net/spdy/spdy_session_unittest.cc ('k') | net/spdy/spdy_test_util_common.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/spdy/spdy_stream.h" 5 #include "net/spdy/spdy_stream.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <cstddef> 9 #include <cstddef>
10 #include <limits> 10 #include <limits>
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 base::WeakPtr<SpdyStream> stream = 192 base::WeakPtr<SpdyStream> stream =
193 CreateStreamSynchronously( 193 CreateStreamSynchronously(
194 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); 194 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog());
195 ASSERT_TRUE(stream); 195 ASSERT_TRUE(stream);
196 196
197 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); 197 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece);
198 stream->SetDelegate(&delegate); 198 stream->SetDelegate(&delegate);
199 199
200 EXPECT_FALSE(stream->HasUrlFromHeaders()); 200 EXPECT_FALSE(stream->HasUrlFromHeaders());
201 201
202 std::unique_ptr<SpdyHeaderBlock> headers( 202 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
203 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 203 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
204 EXPECT_EQ(ERR_IO_PENDING, 204 EXPECT_EQ(ERR_IO_PENDING,
205 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 205 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
206 EXPECT_TRUE(stream->HasUrlFromHeaders()); 206 EXPECT_TRUE(stream->HasUrlFromHeaders());
207 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 207 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
208 208
209 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 209 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
210 210
211 EXPECT_TRUE(delegate.send_headers_completed()); 211 EXPECT_TRUE(delegate.send_headers_completed());
212 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); 212 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey()));
213 EXPECT_EQ(std::string(kPostBody, kPostBodyLength), 213 EXPECT_EQ(std::string(kPostBody, kPostBodyLength),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 spdy_util_.ConstructSpdyPostSynReply(NULL, 0)); 250 spdy_util_.ConstructSpdyPostSynReply(NULL, 0));
251 AddRead(*resp); 251 AddRead(*resp);
252 252
253 std::unique_ptr<SpdySerializedFrame> echo( 253 std::unique_ptr<SpdySerializedFrame> echo(
254 spdy_util_.ConstructSpdyBodyFrame(1, kPostBody, kPostBodyLength, false)); 254 spdy_util_.ConstructSpdyBodyFrame(1, kPostBody, kPostBodyLength, false));
255 AddRead(*echo); 255 AddRead(*echo);
256 256
257 SpdyHeaderBlock late_headers; 257 SpdyHeaderBlock late_headers;
258 late_headers["foo"] = "bar"; 258 late_headers["foo"] = "bar";
259 std::unique_ptr<SpdySerializedFrame> trailers( 259 std::unique_ptr<SpdySerializedFrame> trailers(
260 spdy_util_.ConstructSpdyResponseHeaders(1, late_headers, false)); 260 spdy_util_.ConstructSpdyResponseHeaders(1, std::move(late_headers),
261 false));
261 AddRead(*trailers); 262 AddRead(*trailers);
262 263
263 AddReadEOF(); 264 AddReadEOF();
264 265
265 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), 266 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(),
266 GetNumWrites()); 267 GetNumWrites());
267 MockConnect connect_data(SYNCHRONOUS, OK); 268 MockConnect connect_data(SYNCHRONOUS, OK);
268 data.set_connect_data(connect_data); 269 data.set_connect_data(connect_data);
269 270
270 session_deps_.socket_factory->AddSocketDataProvider(&data); 271 session_deps_.socket_factory->AddSocketDataProvider(&data);
271 272
272 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession()); 273 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession());
273 274
274 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 275 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
275 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 276 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
276 ASSERT_TRUE(stream); 277 ASSERT_TRUE(stream);
277 278
278 StreamDelegateWithTrailers delegate(stream, kPostBodyStringPiece); 279 StreamDelegateWithTrailers delegate(stream, kPostBodyStringPiece);
279 stream->SetDelegate(&delegate); 280 stream->SetDelegate(&delegate);
280 281
281 EXPECT_FALSE(stream->HasUrlFromHeaders()); 282 EXPECT_FALSE(stream->HasUrlFromHeaders());
282 283
283 std::unique_ptr<SpdyHeaderBlock> headers( 284 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
284 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 285 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
285 EXPECT_EQ(ERR_IO_PENDING, 286 EXPECT_EQ(ERR_IO_PENDING,
286 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 287 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
287 EXPECT_TRUE(stream->HasUrlFromHeaders()); 288 EXPECT_TRUE(stream->HasUrlFromHeaders());
288 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 289 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
289 290
290 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 291 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
291 292
292 EXPECT_TRUE(delegate.send_headers_completed()); 293 EXPECT_TRUE(delegate.send_headers_completed());
293 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); 294 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey()));
294 const SpdyHeaderBlock& received_trailers = delegate.trailers(); 295 const SpdyHeaderBlock& received_trailers = delegate.trailers();
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 base::WeakPtr<SpdyStream> stream = 402 base::WeakPtr<SpdyStream> stream =
402 CreateStreamSynchronously( 403 CreateStreamSynchronously(
403 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); 404 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound());
404 ASSERT_TRUE(stream); 405 ASSERT_TRUE(stream);
405 406
406 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); 407 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece);
407 stream->SetDelegate(&delegate); 408 stream->SetDelegate(&delegate);
408 409
409 EXPECT_FALSE(stream->HasUrlFromHeaders()); 410 EXPECT_FALSE(stream->HasUrlFromHeaders());
410 411
411 std::unique_ptr<SpdyHeaderBlock> headers( 412 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
412 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 413 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
413 EXPECT_EQ(ERR_IO_PENDING, 414 EXPECT_EQ(ERR_IO_PENDING,
414 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 415 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
415 EXPECT_TRUE(stream->HasUrlFromHeaders()); 416 EXPECT_TRUE(stream->HasUrlFromHeaders());
416 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 417 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
417 418
418 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 419 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
419 420
420 const SpdyStreamId stream_id = delegate.stream_id(); 421 const SpdyStreamId stream_id = delegate.stream_id();
421 422
422 EXPECT_TRUE(delegate.send_headers_completed()); 423 EXPECT_TRUE(delegate.send_headers_completed());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 CreateStreamSynchronously( 480 CreateStreamSynchronously(
480 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 481 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
481 ASSERT_TRUE(stream); 482 ASSERT_TRUE(stream);
482 483
483 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); 484 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x');
484 StreamDelegateWithBody delegate(stream, body_data); 485 StreamDelegateWithBody delegate(stream, body_data);
485 stream->SetDelegate(&delegate); 486 stream->SetDelegate(&delegate);
486 487
487 EXPECT_FALSE(stream->HasUrlFromHeaders()); 488 EXPECT_FALSE(stream->HasUrlFromHeaders());
488 489
489 std::unique_ptr<SpdyHeaderBlock> headers( 490 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
490 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 491 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
491 EXPECT_EQ(ERR_IO_PENDING, 492 EXPECT_EQ(ERR_IO_PENDING,
492 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 493 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
493 EXPECT_TRUE(stream->HasUrlFromHeaders()); 494 EXPECT_TRUE(stream->HasUrlFromHeaders());
494 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 495 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
495 496
496 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 497 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
497 498
498 EXPECT_TRUE(delegate.send_headers_completed()); 499 EXPECT_TRUE(delegate.send_headers_completed());
499 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); 500 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey()));
500 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); 501 EXPECT_EQ(std::string(), delegate.TakeReceivedData());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 CreateStreamSynchronously( 538 CreateStreamSynchronously(
538 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); 539 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog());
539 ASSERT_TRUE(stream); 540 ASSERT_TRUE(stream);
540 541
541 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); 542 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x');
542 StreamDelegateSendImmediate delegate(stream, body_data); 543 StreamDelegateSendImmediate delegate(stream, body_data);
543 stream->SetDelegate(&delegate); 544 stream->SetDelegate(&delegate);
544 545
545 EXPECT_FALSE(stream->HasUrlFromHeaders()); 546 EXPECT_FALSE(stream->HasUrlFromHeaders());
546 547
547 std::unique_ptr<SpdyHeaderBlock> headers( 548 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
548 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 549 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
549 EXPECT_EQ(ERR_IO_PENDING, 550 EXPECT_EQ(ERR_IO_PENDING,
550 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 551 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
551 EXPECT_TRUE(stream->HasUrlFromHeaders()); 552 EXPECT_TRUE(stream->HasUrlFromHeaders());
552 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 553 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
553 554
554 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 555 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
555 556
556 EXPECT_TRUE(delegate.send_headers_completed()); 557 EXPECT_TRUE(delegate.send_headers_completed());
557 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey())); 558 EXPECT_EQ("200", delegate.GetResponseHeaderValue(spdy_util_.GetStatusKey()));
558 EXPECT_EQ(std::string(), delegate.TakeReceivedData()); 559 EXPECT_EQ(std::string(), delegate.TakeReceivedData());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 CreateStreamSynchronously( 593 CreateStreamSynchronously(
593 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 594 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
594 ASSERT_TRUE(stream); 595 ASSERT_TRUE(stream);
595 596
596 StreamDelegateDoNothing delegate(stream); 597 StreamDelegateDoNothing delegate(stream);
597 stream->SetDelegate(&delegate); 598 stream->SetDelegate(&delegate);
598 599
599 EXPECT_FALSE(stream->HasUrlFromHeaders()); 600 EXPECT_FALSE(stream->HasUrlFromHeaders());
600 601
601 std::unique_ptr<SpdyHeaderBlock> headers( 602 std::unique_ptr<SpdyHeaderBlock> headers(
602 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 603 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)));
603 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), 604 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers),
604 NO_MORE_DATA_TO_SEND)); 605 NO_MORE_DATA_TO_SEND));
605 EXPECT_TRUE(stream->HasUrlFromHeaders()); 606 EXPECT_TRUE(stream->HasUrlFromHeaders());
606 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 607 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
607 608
608 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, delegate.WaitForClose()); 609 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, delegate.WaitForClose());
609 } 610 }
610 611
611 // Receiving a header with uppercase ASCII should result in a protocol 612 // Receiving a header with uppercase ASCII should result in a protocol
612 // error even for a push stream. 613 // error even for a push stream.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 CreateStreamSynchronously( 648 CreateStreamSynchronously(
648 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 649 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
649 ASSERT_TRUE(stream); 650 ASSERT_TRUE(stream);
650 651
651 StreamDelegateDoNothing delegate(stream); 652 StreamDelegateDoNothing delegate(stream);
652 stream->SetDelegate(&delegate); 653 stream->SetDelegate(&delegate);
653 654
654 EXPECT_FALSE(stream->HasUrlFromHeaders()); 655 EXPECT_FALSE(stream->HasUrlFromHeaders());
655 656
656 std::unique_ptr<SpdyHeaderBlock> headers( 657 std::unique_ptr<SpdyHeaderBlock> headers(
657 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 658 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)));
658 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), 659 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers),
659 NO_MORE_DATA_TO_SEND)); 660 NO_MORE_DATA_TO_SEND));
660 EXPECT_TRUE(stream->HasUrlFromHeaders()); 661 EXPECT_TRUE(stream->HasUrlFromHeaders());
661 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 662 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
662 663
663 data.RunUntilPaused(); 664 data.RunUntilPaused();
664 665
665 base::WeakPtr<SpdyStream> push_stream; 666 base::WeakPtr<SpdyStream> push_stream;
666 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog())); 667 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog()));
667 EXPECT_FALSE(push_stream); 668 EXPECT_FALSE(push_stream);
(...skipping 18 matching lines...) Expand all
686 687
687 std::unique_ptr<SpdySerializedFrame> push( 688 std::unique_ptr<SpdySerializedFrame> push(
688 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); 689 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl));
689 AddRead(*push); 690 AddRead(*push);
690 691
691 AddReadPause(); 692 AddReadPause();
692 693
693 SpdyHeaderBlock late_headers; 694 SpdyHeaderBlock late_headers;
694 late_headers["X-UpperCase"] = "yes"; 695 late_headers["X-UpperCase"] = "yes";
695 std::unique_ptr<SpdySerializedFrame> headers_frame( 696 std::unique_ptr<SpdySerializedFrame> headers_frame(
696 spdy_util_.ConstructSpdyReply(2, late_headers)); 697 spdy_util_.ConstructSpdyReply(2, std::move(late_headers)));
697 AddRead(*headers_frame); 698 AddRead(*headers_frame);
698 699
699 AddWritePause(); 700 AddWritePause();
700 701
701 std::unique_ptr<SpdySerializedFrame> rst( 702 std::unique_ptr<SpdySerializedFrame> rst(
702 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); 703 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR));
703 AddWrite(*rst); 704 AddWrite(*rst);
704 705
705 AddReadEOF(); 706 AddReadEOF();
706 707
(...skipping 10 matching lines...) Expand all
717 CreateStreamSynchronously( 718 CreateStreamSynchronously(
718 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 719 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
719 ASSERT_TRUE(stream); 720 ASSERT_TRUE(stream);
720 721
721 StreamDelegateDoNothing delegate(stream); 722 StreamDelegateDoNothing delegate(stream);
722 stream->SetDelegate(&delegate); 723 stream->SetDelegate(&delegate);
723 724
724 EXPECT_FALSE(stream->HasUrlFromHeaders()); 725 EXPECT_FALSE(stream->HasUrlFromHeaders());
725 726
726 std::unique_ptr<SpdyHeaderBlock> headers( 727 std::unique_ptr<SpdyHeaderBlock> headers(
727 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 728 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)));
728 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), 729 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers),
729 NO_MORE_DATA_TO_SEND)); 730 NO_MORE_DATA_TO_SEND));
730 EXPECT_TRUE(stream->HasUrlFromHeaders()); 731 EXPECT_TRUE(stream->HasUrlFromHeaders());
731 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 732 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
732 733
733 data.RunUntilPaused(); 734 data.RunUntilPaused();
734 735
735 base::WeakPtr<SpdyStream> push_stream; 736 base::WeakPtr<SpdyStream> push_stream;
736 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog())); 737 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog()));
737 EXPECT_TRUE(push_stream); 738 EXPECT_TRUE(push_stream);
(...skipping 24 matching lines...) Expand all
762 763
763 std::unique_ptr<SpdySerializedFrame> push( 764 std::unique_ptr<SpdySerializedFrame> push(
764 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl)); 765 spdy_util_.ConstructSpdyPush(NULL, 0, 2, 1, kStreamUrl));
765 AddRead(*push); 766 AddRead(*push);
766 767
767 AddReadPause(); 768 AddReadPause();
768 769
769 SpdyHeaderBlock late_headers; 770 SpdyHeaderBlock late_headers;
770 late_headers[spdy_util_.GetStatusKey()] = "500 Server Error"; 771 late_headers[spdy_util_.GetStatusKey()] = "500 Server Error";
771 std::unique_ptr<SpdySerializedFrame> headers_frame( 772 std::unique_ptr<SpdySerializedFrame> headers_frame(
772 spdy_util_.ConstructSpdyReply(2, late_headers)); 773 spdy_util_.ConstructSpdyReply(2, std::move(late_headers)));
773 AddRead(*headers_frame); 774 AddRead(*headers_frame);
774 775
775 AddReadPause(); 776 AddReadPause();
776 777
777 std::unique_ptr<SpdySerializedFrame> rst( 778 std::unique_ptr<SpdySerializedFrame> rst(
778 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); 779 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR));
779 AddWrite(*rst); 780 AddWrite(*rst);
780 781
781 AddReadEOF(); 782 AddReadEOF();
782 783
(...skipping 10 matching lines...) Expand all
793 CreateStreamSynchronously( 794 CreateStreamSynchronously(
794 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 795 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
795 ASSERT_TRUE(stream); 796 ASSERT_TRUE(stream);
796 797
797 StreamDelegateDoNothing delegate(stream); 798 StreamDelegateDoNothing delegate(stream);
798 stream->SetDelegate(&delegate); 799 stream->SetDelegate(&delegate);
799 800
800 EXPECT_FALSE(stream->HasUrlFromHeaders()); 801 EXPECT_FALSE(stream->HasUrlFromHeaders());
801 802
802 std::unique_ptr<SpdyHeaderBlock> headers( 803 std::unique_ptr<SpdyHeaderBlock> headers(
803 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 804 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)));
804 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), 805 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers),
805 NO_MORE_DATA_TO_SEND)); 806 NO_MORE_DATA_TO_SEND));
806 EXPECT_TRUE(stream->HasUrlFromHeaders()); 807 EXPECT_TRUE(stream->HasUrlFromHeaders());
807 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 808 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
808 809
809 data.RunUntilPaused(); 810 data.RunUntilPaused();
810 811
811 base::WeakPtr<SpdyStream> push_stream; 812 base::WeakPtr<SpdyStream> push_stream;
812 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog())); 813 EXPECT_EQ(OK, session->GetPushStream(url, &push_stream, BoundNetLog()));
813 EXPECT_TRUE(push_stream); 814 EXPECT_TRUE(push_stream);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession()); 854 base::WeakPtr<SpdySession> session(CreateDefaultSpdySession());
854 GURL url(kStreamUrl); 855 GURL url(kStreamUrl);
855 856
856 base::WeakPtr<SpdyStream> stream = 857 base::WeakPtr<SpdyStream> stream =
857 CreateStreamSynchronously( 858 CreateStreamSynchronously(
858 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); 859 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound());
859 ASSERT_TRUE(stream); 860 ASSERT_TRUE(stream);
860 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); 861 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece);
861 stream->SetDelegate(&delegate); 862 stream->SetDelegate(&delegate);
862 863
863 std::unique_ptr<SpdyHeaderBlock> headers( 864 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
864 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 865 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
865 EXPECT_EQ(ERR_IO_PENDING, 866 EXPECT_EQ(ERR_IO_PENDING,
866 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 867 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
867 EXPECT_TRUE(stream->HasUrlFromHeaders()); 868 EXPECT_TRUE(stream->HasUrlFromHeaders());
868 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 869 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
869 870
870 data.RunUntilPaused(); 871 data.RunUntilPaused();
871 872
872 int32_t old_send_window_size = stream->send_window_size(); 873 int32_t old_send_window_size = stream->send_window_size();
873 ASSERT_GT(old_send_window_size, 0); 874 ASSERT_GT(old_send_window_size, 0);
874 int32_t delta_window_size = 875 int32_t delta_window_size =
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 CreateStreamSynchronously( 947 CreateStreamSynchronously(
947 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 948 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
948 ASSERT_TRUE(stream); 949 ASSERT_TRUE(stream);
949 950
950 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece); 951 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece);
951 stream->SetDelegate(&delegate); 952 stream->SetDelegate(&delegate);
952 953
953 EXPECT_FALSE(stream->HasUrlFromHeaders()); 954 EXPECT_FALSE(stream->HasUrlFromHeaders());
954 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 955 EXPECT_FALSE(stream->send_stalled_by_flow_control());
955 956
956 std::unique_ptr<SpdyHeaderBlock> headers( 957 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
957 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 958 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
958 EXPECT_EQ(ERR_IO_PENDING, 959 EXPECT_EQ(ERR_IO_PENDING,
959 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 960 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
960 EXPECT_TRUE(stream->HasUrlFromHeaders()); 961 EXPECT_TRUE(stream->HasUrlFromHeaders());
961 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 962 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
962 963
963 StallStream(stream); 964 StallStream(stream);
964 965
965 base::RunLoop().RunUntilIdle(); 966 base::RunLoop().RunUntilIdle();
966 967
967 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 968 EXPECT_TRUE(stream->send_stalled_by_flow_control());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 base::WeakPtr<SpdyStream> stream = 1028 base::WeakPtr<SpdyStream> stream =
1028 CreateStreamSynchronously( 1029 CreateStreamSynchronously(
1029 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); 1030 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog());
1030 ASSERT_TRUE(stream); 1031 ASSERT_TRUE(stream);
1031 1032
1032 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); 1033 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece);
1033 stream->SetDelegate(&delegate); 1034 stream->SetDelegate(&delegate);
1034 1035
1035 EXPECT_FALSE(stream->HasUrlFromHeaders()); 1036 EXPECT_FALSE(stream->HasUrlFromHeaders());
1036 1037
1037 std::unique_ptr<SpdyHeaderBlock> headers( 1038 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock(
1038 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); 1039 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)));
1039 EXPECT_EQ(ERR_IO_PENDING, 1040 EXPECT_EQ(ERR_IO_PENDING,
1040 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 1041 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
1041 EXPECT_TRUE(stream->HasUrlFromHeaders()); 1042 EXPECT_TRUE(stream->HasUrlFromHeaders());
1042 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 1043 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
1043 1044
1044 data.RunUntilPaused(); 1045 data.RunUntilPaused();
1045 1046
1046 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 1047 EXPECT_FALSE(stream->send_stalled_by_flow_control());
1047 1048
1048 StallStream(stream); 1049 StallStream(stream);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 CreateStreamSynchronously( 1113 CreateStreamSynchronously(
1113 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); 1114 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog());
1114 ASSERT_TRUE(stream); 1115 ASSERT_TRUE(stream);
1115 1116
1116 StreamDelegateDoNothing delegate(stream); 1117 StreamDelegateDoNothing delegate(stream);
1117 stream->SetDelegate(&delegate); 1118 stream->SetDelegate(&delegate);
1118 1119
1119 EXPECT_FALSE(stream->HasUrlFromHeaders()); 1120 EXPECT_FALSE(stream->HasUrlFromHeaders());
1120 1121
1121 std::unique_ptr<SpdyHeaderBlock> headers( 1122 std::unique_ptr<SpdyHeaderBlock> headers(
1122 spdy_util_.ConstructGetHeaderBlock(kStreamUrl)); 1123 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kStreamUrl)));
1123 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers), 1124 EXPECT_EQ(ERR_IO_PENDING, stream->SendRequestHeaders(std::move(headers),
1124 NO_MORE_DATA_TO_SEND)); 1125 NO_MORE_DATA_TO_SEND));
1125 EXPECT_TRUE(stream->HasUrlFromHeaders()); 1126 EXPECT_TRUE(stream->HasUrlFromHeaders());
1126 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec()); 1127 EXPECT_EQ(kStreamUrl, stream->GetUrlFromHeaders().spec());
1127 1128
1128 int64_t reply_frame_len = reply->size(); 1129 int64_t reply_frame_len = reply->size();
1129 int64_t data_header_len = SpdyConstants::GetDataFrameMinimumSize( 1130 int64_t data_header_len = SpdyConstants::GetDataFrameMinimumSize(
1130 NextProtoToSpdyMajorVersion(GetProtocol())); 1131 NextProtoToSpdyMajorVersion(GetProtocol()));
1131 int64_t data_frame_len = data_header_len + kPostBodyLength; 1132 int64_t data_frame_len = data_header_len + kPostBodyLength;
1132 int64_t response_len = reply_frame_len + data_frame_len; 1133 int64_t response_len = reply_frame_len + data_frame_len;
(...skipping 15 matching lines...) Expand all
1148 EXPECT_EQ(response_len, stream->raw_received_bytes()); 1149 EXPECT_EQ(response_len, stream->raw_received_bytes());
1149 1150
1150 // FIN 1151 // FIN
1151 data.Resume(); 1152 data.Resume();
1152 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose()); 1153 EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate.WaitForClose());
1153 } 1154 }
1154 1155
1155 } // namespace test 1156 } // namespace test
1156 1157
1157 } // namespace net 1158 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_unittest.cc ('k') | net/spdy/spdy_test_util_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698