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

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

Issue 2596703002: http2: Update priorities of pushed streams (Closed)
Patch Set: actually rebase Created 3 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
« no previous file with comments | « net/spdy/spdy_stream.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 <algorithm> 9 #include <algorithm>
10 #include <cstddef> 10 #include <cstddef>
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 287 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
288 AddWrite(req); 288 AddWrite(req);
289 289
290 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 290 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
291 AddRead(reply); 291 AddRead(reply);
292 292
293 SpdySerializedFrame push( 293 SpdySerializedFrame push(
294 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kPushUrl)); 294 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kPushUrl));
295 AddRead(push); 295 AddRead(push);
296 296
297 SpdySerializedFrame priority(
298 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
299 AddWrite(priority);
300
297 AddReadPause(); 301 AddReadPause();
298 302
299 base::StringPiece pushed_msg("foo"); 303 base::StringPiece pushed_msg("foo");
300 SpdySerializedFrame pushed_body(spdy_util_.ConstructSpdyDataFrame( 304 SpdySerializedFrame pushed_body(spdy_util_.ConstructSpdyDataFrame(
301 2, pushed_msg.data(), pushed_msg.size(), true)); 305 2, pushed_msg.data(), pushed_msg.size(), true));
302 AddRead(pushed_body); 306 AddRead(pushed_body);
303 307
304 base::StringPiece msg("bar"); 308 base::StringPiece msg("bar");
305 SpdySerializedFrame body( 309 SpdySerializedFrame body(
306 spdy_util_.ConstructSpdyDataFrame(1, msg.data(), msg.size(), true)); 310 spdy_util_.ConstructSpdyDataFrame(1, msg.data(), msg.size(), true));
(...skipping 26 matching lines...) Expand all
333 337
334 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 338 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
335 EXPECT_THAT( 339 EXPECT_THAT(
336 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND), 340 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND),
337 IsError(ERR_IO_PENDING)); 341 IsError(ERR_IO_PENDING));
338 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec()); 342 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec());
339 343
340 data.RunUntilPaused(); 344 data.RunUntilPaused();
341 345
342 base::WeakPtr<SpdyStream> push_stream; 346 base::WeakPtr<SpdyStream> push_stream;
343 EXPECT_THAT( 347 EXPECT_THAT(session->GetPushStream(GURL(kPushUrl), IDLE, &push_stream,
344 session->GetPushStream(GURL(kPushUrl), &push_stream, NetLogWithSource()), 348 NetLogWithSource()),
345 IsOk()); 349 IsOk());
346 ASSERT_TRUE(push_stream); 350 ASSERT_TRUE(push_stream);
347 EXPECT_EQ(kPushUrl, push_stream->GetUrlFromHeaders().spec()); 351 EXPECT_EQ(kPushUrl, push_stream->GetUrlFromHeaders().spec());
348 352
349 LoadTimingInfo load_timing_info; 353 LoadTimingInfo load_timing_info;
350 EXPECT_TRUE(push_stream->GetLoadTimingInfo(&load_timing_info)); 354 EXPECT_TRUE(push_stream->GetLoadTimingInfo(&load_timing_info));
351 EXPECT_EQ(g_time_now, load_timing_info.push_start); 355 EXPECT_EQ(g_time_now, load_timing_info.push_start);
352 EXPECT_TRUE(load_timing_info.push_end.is_null()); 356 EXPECT_TRUE(load_timing_info.push_end.is_null());
353 357
354 StreamDelegateDoNothing push_delegate(push_stream); 358 StreamDelegateDoNothing push_delegate(push_stream);
355 push_stream->SetDelegate(&push_delegate); 359 push_stream->SetDelegate(&push_delegate);
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 AddWrite(req); 610 AddWrite(req);
607 611
608 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 612 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
609 AddRead(reply); 613 AddRead(reply);
610 614
611 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; 615 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"};
612 SpdySerializedFrame push(spdy_util_.ConstructSpdyPush( 616 SpdySerializedFrame push(spdy_util_.ConstructSpdyPush(
613 kExtraHeaders, arraysize(kExtraHeaders) / 2, 2, 1, kPushUrl)); 617 kExtraHeaders, arraysize(kExtraHeaders) / 2, 2, 1, kPushUrl));
614 AddRead(push); 618 AddRead(push);
615 619
620 SpdySerializedFrame priority(
621 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
622 AddWrite(priority);
623
616 SpdySerializedFrame rst( 624 SpdySerializedFrame rst(
617 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); 625 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR));
618 AddWrite(rst); 626 AddWrite(rst);
619 627
620 AddReadPause(); 628 AddReadPause();
621 629
622 AddReadEOF(); 630 AddReadEOF();
623 631
624 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), 632 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(),
625 GetNumWrites()); 633 GetNumWrites());
(...skipping 16 matching lines...) Expand all
642 650
643 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)); 651 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
644 EXPECT_THAT( 652 EXPECT_THAT(
645 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND), 653 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND),
646 IsError(ERR_IO_PENDING)); 654 IsError(ERR_IO_PENDING));
647 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec()); 655 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec());
648 656
649 data.RunUntilPaused(); 657 data.RunUntilPaused();
650 658
651 base::WeakPtr<SpdyStream> push_stream; 659 base::WeakPtr<SpdyStream> push_stream;
652 EXPECT_THAT( 660 EXPECT_THAT(session->GetPushStream(GURL(kPushUrl), IDLE, &push_stream,
653 session->GetPushStream(GURL(kPushUrl), &push_stream, NetLogWithSource()), 661 NetLogWithSource()),
654 IsOk()); 662 IsOk());
655 EXPECT_FALSE(push_stream); 663 EXPECT_FALSE(push_stream);
656 664
657 data.Resume(); 665 data.Resume();
658 666
659 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); 667 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED));
660 668
661 EXPECT_TRUE(data.AllWriteDataConsumed()); 669 EXPECT_TRUE(data.AllWriteDataConsumed());
662 EXPECT_TRUE(data.AllReadDataConsumed()); 670 EXPECT_TRUE(data.AllReadDataConsumed());
663 } 671 }
664 672
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 729 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
722 AddWrite(req); 730 AddWrite(req);
723 731
724 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 732 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
725 AddRead(reply); 733 AddRead(reply);
726 734
727 SpdySerializedFrame push_promise(spdy_util_.ConstructInitialSpdyPushFrame( 735 SpdySerializedFrame push_promise(spdy_util_.ConstructInitialSpdyPushFrame(
728 spdy_util_.ConstructGetHeaderBlock(kPushUrl), 2, 1)); 736 spdy_util_.ConstructGetHeaderBlock(kPushUrl), 2, 1));
729 AddRead(push_promise); 737 AddRead(push_promise);
730 738
739 SpdySerializedFrame priority(
740 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
741 AddWrite(priority);
742
731 // Response headers without ":status" header field: protocol error. 743 // Response headers without ":status" header field: protocol error.
732 SpdyHeaderBlock header_block_without_status; 744 SpdyHeaderBlock header_block_without_status;
733 header_block_without_status[spdy_util_.GetMethodKey()] = "GET"; 745 header_block_without_status[spdy_util_.GetMethodKey()] = "GET";
734 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org"; 746 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org";
735 header_block_without_status[spdy_util_.GetSchemeKey()] = "https"; 747 header_block_without_status[spdy_util_.GetSchemeKey()] = "https";
736 header_block_without_status[spdy_util_.GetPathKey()] = "/"; 748 header_block_without_status[spdy_util_.GetPathKey()] = "/";
737 SpdySerializedFrame pushed_reply( 749 SpdySerializedFrame pushed_reply(
738 spdy_util_.ConstructSpdyReply(2, std::move(header_block_without_status))); 750 spdy_util_.ConstructSpdyReply(2, std::move(header_block_without_status)));
739 AddRead(pushed_reply); 751 AddRead(pushed_reply);
740 752
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 845 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
834 AddWrite(req); 846 AddWrite(req);
835 847
836 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 848 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
837 AddRead(reply); 849 AddRead(reply);
838 850
839 SpdySerializedFrame push_promise(spdy_util_.ConstructInitialSpdyPushFrame( 851 SpdySerializedFrame push_promise(spdy_util_.ConstructInitialSpdyPushFrame(
840 spdy_util_.ConstructGetHeaderBlock(kPushUrl), 2, 1)); 852 spdy_util_.ConstructGetHeaderBlock(kPushUrl), 2, 1));
841 AddRead(push_promise); 853 AddRead(push_promise);
842 854
855 SpdySerializedFrame priority(
856 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
857 AddWrite(priority);
858
843 SpdySerializedFrame pushed_body( 859 SpdySerializedFrame pushed_body(
844 spdy_util_.ConstructSpdyDataFrame(2, kPostBody, kPostBodyLength, true)); 860 spdy_util_.ConstructSpdyDataFrame(2, kPostBody, kPostBodyLength, true));
845 AddRead(pushed_body); 861 AddRead(pushed_body);
846 862
847 SpdySerializedFrame rst( 863 SpdySerializedFrame rst(
848 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); 864 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR));
849 AddWrite(rst); 865 AddWrite(rst);
850 866
851 SpdySerializedFrame body( 867 SpdySerializedFrame body(
852 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); 868 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true));
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
1483 EXPECT_EQ(response_len, stream->raw_received_bytes()); 1499 EXPECT_EQ(response_len, stream->raw_received_bytes());
1484 1500
1485 // FIN 1501 // FIN
1486 data.Resume(); 1502 data.Resume();
1487 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); 1503 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED));
1488 } 1504 }
1489 1505
1490 } // namespace test 1506 } // namespace test
1491 1507
1492 } // namespace net 1508 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_stream.cc ('k') | net/spdy/spdy_test_util_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698