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

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

Issue 2675593002: Spdy{RstStream,GoAway}Status -> SpdyErrorCode. (Closed)
Patch Set: Merged master, which includes 145087791. Created 3 years, 10 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.cc ('k') | net/spdy/spdy_stream.cc » ('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 (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/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 SpdySerializedFrame push( 761 SpdySerializedFrame push(
762 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kDefaultUrl)); 762 spdy_util_.ConstructSpdyPush(nullptr, 0, 2, 1, kDefaultUrl));
763 MockRead reads[] = { 763 MockRead reads[] = {
764 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(goaway, 2), 764 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(goaway, 2),
765 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push, 4), 765 MockRead(ASYNC, ERR_IO_PENDING, 3), CreateMockRead(push, 4),
766 MockRead(ASYNC, 0, 6) // EOF 766 MockRead(ASYNC, 0, 6) // EOF
767 }; 767 };
768 SpdySerializedFrame req( 768 SpdySerializedFrame req(
769 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 769 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
770 SpdySerializedFrame rst( 770 SpdySerializedFrame rst(
771 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 771 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
772 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)}; 772 MockWrite writes[] = {CreateMockWrite(req, 0), CreateMockWrite(rst, 5)};
773 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 773 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
774 session_deps_.socket_factory->AddSocketDataProvider(&data); 774 session_deps_.socket_factory->AddSocketDataProvider(&data);
775 775
776 AddSSLSocketData(); 776 AddSSLSocketData();
777 777
778 CreateNetworkSession(); 778 CreateNetworkSession();
779 CreateSecureSpdySession(); 779 CreateSecureSpdySession();
780 780
781 base::WeakPtr<SpdyStream> spdy_stream = 781 base::WeakPtr<SpdyStream> spdy_stream =
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 session_deps_.host_resolver->set_synchronous_mode(true); 1293 session_deps_.host_resolver->set_synchronous_mode(true);
1294 session_deps_.time_func = TheNearFuture; 1294 session_deps_.time_func = TheNearFuture;
1295 1295
1296 SpdySerializedFrame req( 1296 SpdySerializedFrame req(
1297 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 1297 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
1298 SpdySerializedFrame priority_a( 1298 SpdySerializedFrame priority_a(
1299 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 1299 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
1300 SpdySerializedFrame priority_b( 1300 SpdySerializedFrame priority_b(
1301 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 1301 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
1302 SpdySerializedFrame rst_a( 1302 SpdySerializedFrame rst_a(
1303 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 1303 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
1304 MockWrite writes[] = { 1304 MockWrite writes[] = {
1305 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), 1305 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
1306 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), 1306 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
1307 }; 1307 };
1308 1308
1309 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( 1309 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
1310 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); 1310 nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
1311 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); 1311 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false));
1312 // In ascii "0" < "a". We use it to verify that we properly handle std::map 1312 // In ascii "0" < "a". We use it to verify that we properly handle std::map
1313 // iterators inside. See http://crbug.com/443490 1313 // iterators inside. See http://crbug.com/443490
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 session_deps_.host_resolver->set_synchronous_mode(true); 1385 session_deps_.host_resolver->set_synchronous_mode(true);
1386 session_deps_.time_func = TheNearFuture; 1386 session_deps_.time_func = TheNearFuture;
1387 1387
1388 SpdySerializedFrame req( 1388 SpdySerializedFrame req(
1389 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 1389 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
1390 SpdySerializedFrame priority_a( 1390 SpdySerializedFrame priority_a(
1391 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 1391 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
1392 SpdySerializedFrame priority_b( 1392 SpdySerializedFrame priority_b(
1393 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 1393 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
1394 SpdySerializedFrame rst_a( 1394 SpdySerializedFrame rst_a(
1395 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 1395 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
1396 MockWrite writes[] = { 1396 MockWrite writes[] = {
1397 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), 1397 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
1398 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), 1398 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
1399 }; 1399 };
1400 1400
1401 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( 1401 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
1402 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); 1402 nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
1403 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); 1403 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false));
1404 // In ascii "0" < "a". We use it to verify that we properly handle std::map 1404 // In ascii "0" < "a". We use it to verify that we properly handle std::map
1405 // iterators inside. See http://crbug.com/443490 1405 // iterators inside. See http://crbug.com/443490
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1478 session_deps_.host_resolver->set_synchronous_mode(true); 1478 session_deps_.host_resolver->set_synchronous_mode(true);
1479 session_deps_.time_func = TheNearFuture; 1479 session_deps_.time_func = TheNearFuture;
1480 1480
1481 SpdySerializedFrame req( 1481 SpdySerializedFrame req(
1482 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 1482 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
1483 SpdySerializedFrame priority_a( 1483 SpdySerializedFrame priority_a(
1484 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 1484 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
1485 SpdySerializedFrame priority_b( 1485 SpdySerializedFrame priority_b(
1486 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 1486 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
1487 SpdySerializedFrame rst_a( 1487 SpdySerializedFrame rst_a(
1488 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 1488 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
1489 MockWrite writes[] = { 1489 MockWrite writes[] = {
1490 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), 1490 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
1491 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), 1491 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
1492 }; 1492 };
1493 1493
1494 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( 1494 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
1495 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); 1495 nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
1496 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); 1496 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false));
1497 // In ascii "0" < "a". We use it to verify that we properly handle std::map 1497 // In ascii "0" < "a". We use it to verify that we properly handle std::map
1498 // iterators inside. See http://crbug.com/443490 1498 // iterators inside. See http://crbug.com/443490
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1569 session_deps_.host_resolver->set_synchronous_mode(true); 1569 session_deps_.host_resolver->set_synchronous_mode(true);
1570 session_deps_.time_func = TheNearFuture; 1570 session_deps_.time_func = TheNearFuture;
1571 1571
1572 SpdySerializedFrame req( 1572 SpdySerializedFrame req(
1573 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 1573 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
1574 SpdySerializedFrame priority_a( 1574 SpdySerializedFrame priority_a(
1575 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 1575 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
1576 SpdySerializedFrame priority_b( 1576 SpdySerializedFrame priority_b(
1577 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 1577 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
1578 SpdySerializedFrame rst_a( 1578 SpdySerializedFrame rst_a(
1579 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 1579 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
1580 MockWrite writes[] = { 1580 MockWrite writes[] = {
1581 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), 1581 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
1582 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), 1582 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
1583 }; 1583 };
1584 1584
1585 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( 1585 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
1586 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); 1586 nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
1587 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); 1587 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false));
1588 // In ascii "0" < "a". We use it to verify that we properly handle std::map 1588 // In ascii "0" < "a". We use it to verify that we properly handle std::map
1589 // iterators inside. See http://crbug.com/443490 1589 // iterators inside. See http://crbug.com/443490
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1657 1657
1658 SpdySerializedFrame req( 1658 SpdySerializedFrame req(
1659 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 1659 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
1660 SpdySerializedFrame priority_a( 1660 SpdySerializedFrame priority_a(
1661 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 1661 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
1662 SpdySerializedFrame priority_b( 1662 SpdySerializedFrame priority_b(
1663 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 1663 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
1664 SpdySerializedFrame priority_c( 1664 SpdySerializedFrame priority_c(
1665 spdy_util_.ConstructSpdyPriority(6, 4, IDLE, true)); 1665 spdy_util_.ConstructSpdyPriority(6, 4, IDLE, true));
1666 SpdySerializedFrame rst_a( 1666 SpdySerializedFrame rst_a(
1667 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 1667 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
1668 MockWrite writes[] = { 1668 MockWrite writes[] = {
1669 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2), 1669 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 2),
1670 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7), 1670 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_a, 7),
1671 CreateMockWrite(priority_c, 10), 1671 CreateMockWrite(priority_c, 10),
1672 }; 1672 };
1673 1673
1674 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush( 1674 SpdySerializedFrame push_a(spdy_util_.ConstructSpdyPush(
1675 nullptr, 0, 2, 1, "https://www.example.org/a.dat")); 1675 nullptr, 0, 2, 1, "https://www.example.org/a.dat"));
1676 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false)); 1676 SpdySerializedFrame push_a_body(spdy_util_.ConstructSpdyDataFrame(2, false));
1677 // In ascii "0" < "a". We use it to verify that we properly handle std::map 1677 // In ascii "0" < "a". We use it to verify that we properly handle std::map
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1757 6, 1); 1757 6, 1);
1758 } 1758 }
1759 1759
1760 TEST_F(SpdySessionTest, FailedPing) { 1760 TEST_F(SpdySessionTest, FailedPing) {
1761 session_deps_.host_resolver->set_synchronous_mode(true); 1761 session_deps_.host_resolver->set_synchronous_mode(true);
1762 1762
1763 MockRead reads[] = { 1763 MockRead reads[] = {
1764 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 1764 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
1765 }; 1765 };
1766 SpdySerializedFrame write_ping(spdy_util_.ConstructSpdyPing(1, false)); 1766 SpdySerializedFrame write_ping(spdy_util_.ConstructSpdyPing(1, false));
1767 SpdySerializedFrame goaway( 1767 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(
1768 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_PROTOCOL_ERROR, "Failed ping.")); 1768 0, ERROR_CODE_PROTOCOL_ERROR, "Failed ping."));
1769 MockWrite writes[] = {CreateMockWrite(write_ping), CreateMockWrite(goaway)}; 1769 MockWrite writes[] = {CreateMockWrite(write_ping), CreateMockWrite(goaway)};
1770 1770
1771 StaticSocketDataProvider data( 1771 StaticSocketDataProvider data(
1772 reads, arraysize(reads), writes, arraysize(writes)); 1772 reads, arraysize(reads), writes, arraysize(writes));
1773 session_deps_.socket_factory->AddSocketDataProvider(&data); 1773 session_deps_.socket_factory->AddSocketDataProvider(&data);
1774 1774
1775 AddSSLSocketData(); 1775 AddSSLSocketData();
1776 1776
1777 CreateNetworkSession(); 1777 CreateNetworkSession();
1778 CreateSecureSpdySession(); 1778 CreateSecureSpdySession();
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 EXPECT_TRUE( 1958 EXPECT_TRUE(
1959 NetLogSource::FromEventParameters(entry.params.get(), &socket_source)); 1959 NetLogSource::FromEventParameters(entry.params.get(), &socket_source));
1960 EXPECT_TRUE(socket_source.IsValid()); 1960 EXPECT_TRUE(socket_source.IsValid());
1961 EXPECT_NE(log_.bound().source().id, socket_source.id); 1961 EXPECT_NE(log_.bound().source().id, socket_source.id);
1962 } 1962 }
1963 1963
1964 TEST_F(SpdySessionTest, NetLogOnSessionGoaway) { 1964 TEST_F(SpdySessionTest, NetLogOnSessionGoaway) {
1965 session_deps_.host_resolver->set_synchronous_mode(true); 1965 session_deps_.host_resolver->set_synchronous_mode(true);
1966 1966
1967 SpdySerializedFrame goaway( 1967 SpdySerializedFrame goaway(
1968 spdy_util_.ConstructSpdyGoAway(42, GOAWAY_ENHANCE_YOUR_CALM, "foo")); 1968 spdy_util_.ConstructSpdyGoAway(42, ERROR_CODE_ENHANCE_YOUR_CALM, "foo"));
1969 MockRead reads[] = { 1969 MockRead reads[] = {
1970 CreateMockRead(goaway), MockRead(SYNCHRONOUS, 0, 0) // EOF 1970 CreateMockRead(goaway), MockRead(SYNCHRONOUS, 0, 0) // EOF
1971 }; 1971 };
1972 1972
1973 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); 1973 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0);
1974 session_deps_.socket_factory->AddSocketDataProvider(&data); 1974 session_deps_.socket_factory->AddSocketDataProvider(&data);
1975 1975
1976 AddSSLSocketData(); 1976 AddSSLSocketData();
1977 1977
1978 CreateNetworkSession(); 1978 CreateNetworkSession();
(...skipping 18 matching lines...) Expand all
1997 int last_accepted_stream_id; 1997 int last_accepted_stream_id;
1998 ASSERT_TRUE(entry.GetIntegerValue("last_accepted_stream_id", 1998 ASSERT_TRUE(entry.GetIntegerValue("last_accepted_stream_id",
1999 &last_accepted_stream_id)); 1999 &last_accepted_stream_id));
2000 EXPECT_EQ(42, last_accepted_stream_id); 2000 EXPECT_EQ(42, last_accepted_stream_id);
2001 int active_streams; 2001 int active_streams;
2002 ASSERT_TRUE(entry.GetIntegerValue("active_streams", &active_streams)); 2002 ASSERT_TRUE(entry.GetIntegerValue("active_streams", &active_streams));
2003 EXPECT_EQ(0, active_streams); 2003 EXPECT_EQ(0, active_streams);
2004 int unclaimed_streams; 2004 int unclaimed_streams;
2005 ASSERT_TRUE(entry.GetIntegerValue("unclaimed_streams", &unclaimed_streams)); 2005 ASSERT_TRUE(entry.GetIntegerValue("unclaimed_streams", &unclaimed_streams));
2006 EXPECT_EQ(0, unclaimed_streams); 2006 EXPECT_EQ(0, unclaimed_streams);
2007 int status; 2007 int error_code;
2008 ASSERT_TRUE(entry.GetIntegerValue("status", &status)); 2008 ASSERT_TRUE(entry.GetIntegerValue("error_code", &error_code));
2009 EXPECT_EQ(GOAWAY_ENHANCE_YOUR_CALM, status); 2009 EXPECT_EQ(ERROR_CODE_ENHANCE_YOUR_CALM, static_cast<uint32_t>(error_code));
2010 std::string debug_data; 2010 std::string debug_data;
2011 ASSERT_TRUE(entry.GetStringValue("debug_data", &debug_data)); 2011 ASSERT_TRUE(entry.GetStringValue("debug_data", &debug_data));
2012 EXPECT_EQ("foo", debug_data); 2012 EXPECT_EQ("foo", debug_data);
2013 2013
2014 // Check that we logged SPDY_SESSION_CLOSE correctly. 2014 // Check that we logged SPDY_SESSION_CLOSE correctly.
2015 pos = ExpectLogContainsSomewhere( 2015 pos = ExpectLogContainsSomewhere(
2016 entries, 0, NetLogEventType::HTTP2_SESSION_CLOSE, NetLogEventPhase::NONE); 2016 entries, 0, NetLogEventType::HTTP2_SESSION_CLOSE, NetLogEventPhase::NONE);
2017 entry = entries[pos]; 2017 entry = entries[pos];
2018 int error_code = 0; 2018 int net_error_code = 0;
2019 ASSERT_TRUE(entry.GetNetErrorCode(&error_code)); 2019 ASSERT_TRUE(entry.GetNetErrorCode(&net_error_code));
2020 EXPECT_THAT(error_code, IsOk()); 2020 EXPECT_THAT(net_error_code, IsOk());
2021 } 2021 }
2022 2022
2023 TEST_F(SpdySessionTest, NetLogOnSessionEOF) { 2023 TEST_F(SpdySessionTest, NetLogOnSessionEOF) {
2024 session_deps_.host_resolver->set_synchronous_mode(true); 2024 session_deps_.host_resolver->set_synchronous_mode(true);
2025 2025
2026 MockRead reads[] = { 2026 MockRead reads[] = {
2027 MockRead(SYNCHRONOUS, 0, 0) // EOF 2027 MockRead(SYNCHRONOUS, 0, 0) // EOF
2028 }; 2028 };
2029 2029
2030 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); 2030 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0);
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 }; 2524 };
2525 2525
2526 // Close an activated stream that closes its session. Nothing should 2526 // Close an activated stream that closes its session. Nothing should
2527 // blow up. This is a regression test for https://crbug.com/263691. 2527 // blow up. This is a regression test for https://crbug.com/263691.
2528 TEST_F(SpdySessionTest, CloseActivatedStreamThatClosesSession) { 2528 TEST_F(SpdySessionTest, CloseActivatedStreamThatClosesSession) {
2529 session_deps_.host_resolver->set_synchronous_mode(true); 2529 session_deps_.host_resolver->set_synchronous_mode(true);
2530 2530
2531 SpdySerializedFrame req( 2531 SpdySerializedFrame req(
2532 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 2532 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
2533 SpdySerializedFrame rst( 2533 SpdySerializedFrame rst(
2534 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 2534 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
2535 SpdySerializedFrame goaway( 2535 SpdySerializedFrame goaway(
2536 spdy_util_.ConstructSpdyGoAway(0, GOAWAY_PROTOCOL_ERROR, "Error")); 2536 spdy_util_.ConstructSpdyGoAway(0, ERROR_CODE_PROTOCOL_ERROR, "Error"));
2537 // The GOAWAY has higher-priority than the RST_STREAM, and is written first 2537 // The GOAWAY has higher-priority than the RST_STREAM, and is written first
2538 // despite being queued second. 2538 // despite being queued second.
2539 MockWrite writes[] = { 2539 MockWrite writes[] = {
2540 CreateMockWrite(req, 0), CreateMockWrite(goaway, 1), 2540 CreateMockWrite(req, 0), CreateMockWrite(goaway, 1),
2541 CreateMockWrite(rst, 3), 2541 CreateMockWrite(rst, 3),
2542 }; 2542 };
2543 2543
2544 MockRead reads[] = { 2544 MockRead reads[] = {
2545 MockRead(ASYNC, 0, 2) // EOF 2545 MockRead(ASYNC, 0, 2) // EOF
2546 }; 2546 };
(...skipping 914 matching lines...) Expand 10 before | Expand all | Expand 10 after
3461 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); 3461 HttpNetworkSession::NORMAL_SOCKET_POOL, 1);
3462 ClientSocketPoolManager::set_max_sockets_per_pool( 3462 ClientSocketPoolManager::set_max_sockets_per_pool(
3463 HttpNetworkSession::NORMAL_SOCKET_POOL, 1); 3463 HttpNetworkSession::NORMAL_SOCKET_POOL, 1);
3464 3464
3465 MockRead reads[] = { 3465 MockRead reads[] = {
3466 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 3466 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
3467 }; 3467 };
3468 SpdySerializedFrame req1( 3468 SpdySerializedFrame req1(
3469 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 3469 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
3470 SpdySerializedFrame cancel1( 3470 SpdySerializedFrame cancel1(
3471 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); 3471 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_CANCEL));
3472 MockWrite writes[] = { 3472 MockWrite writes[] = {
3473 CreateMockWrite(req1, 1), CreateMockWrite(cancel1, 1), 3473 CreateMockWrite(req1, 1), CreateMockWrite(cancel1, 1),
3474 }; 3474 };
3475 StaticSocketDataProvider data(reads, arraysize(reads), 3475 StaticSocketDataProvider data(reads, arraysize(reads),
3476 writes, arraysize(writes)); 3476 writes, arraysize(writes));
3477 session_deps_.socket_factory->AddSocketDataProvider(&data); 3477 session_deps_.socket_factory->AddSocketDataProvider(&data);
3478 3478
3479 MockRead http_reads[] = { 3479 MockRead http_reads[] = {
3480 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. 3480 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
3481 }; 3481 };
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
3605 TEST_F(SpdySessionTest, CreateStreamOnStreamReset) { 3605 TEST_F(SpdySessionTest, CreateStreamOnStreamReset) {
3606 session_deps_.host_resolver->set_synchronous_mode(true); 3606 session_deps_.host_resolver->set_synchronous_mode(true);
3607 3607
3608 SpdySerializedFrame req( 3608 SpdySerializedFrame req(
3609 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true)); 3609 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, MEDIUM, true));
3610 MockWrite writes[] = { 3610 MockWrite writes[] = {
3611 CreateMockWrite(req, 0), 3611 CreateMockWrite(req, 0),
3612 }; 3612 };
3613 3613
3614 SpdySerializedFrame rst( 3614 SpdySerializedFrame rst(
3615 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); 3615 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_REFUSED_STREAM));
3616 MockRead reads[] = { 3616 MockRead reads[] = {
3617 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(rst, 2), 3617 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(rst, 2),
3618 MockRead(ASYNC, ERR_IO_PENDING, 3), MockRead(ASYNC, 0, 4) // EOF 3618 MockRead(ASYNC, ERR_IO_PENDING, 3), MockRead(ASYNC, 0, 4) // EOF
3619 }; 3619 };
3620 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 3620 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
3621 session_deps_.socket_factory->AddSocketDataProvider(&data); 3621 session_deps_.socket_factory->AddSocketDataProvider(&data);
3622 3622
3623 AddSSLSocketData(); 3623 AddSSLSocketData();
3624 3624
3625 CreateNetworkSession(); 3625 CreateNetworkSession();
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
3870 } 3870 }
3871 3871
3872 // Peer sends more data than stream level receiving flow control window. 3872 // Peer sends more data than stream level receiving flow control window.
3873 TEST_F(SpdySessionTest, StreamFlowControlTooMuchData) { 3873 TEST_F(SpdySessionTest, StreamFlowControlTooMuchData) {
3874 const int32_t stream_max_recv_window_size = 1024; 3874 const int32_t stream_max_recv_window_size = 1024;
3875 const int32_t data_frame_size = 2 * stream_max_recv_window_size; 3875 const int32_t data_frame_size = 2 * stream_max_recv_window_size;
3876 3876
3877 SpdySerializedFrame req( 3877 SpdySerializedFrame req(
3878 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 3878 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
3879 SpdySerializedFrame rst( 3879 SpdySerializedFrame rst(
3880 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); 3880 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_FLOW_CONTROL_ERROR));
3881 MockWrite writes[] = { 3881 MockWrite writes[] = {
3882 CreateMockWrite(req, 0), CreateMockWrite(rst, 4), 3882 CreateMockWrite(req, 0), CreateMockWrite(rst, 4),
3883 }; 3883 };
3884 3884
3885 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 3885 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
3886 const std::string payload(data_frame_size, 'a'); 3886 const std::string payload(data_frame_size, 'a');
3887 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame( 3887 SpdySerializedFrame data_frame(spdy_util_.ConstructSpdyDataFrame(
3888 1, payload.data(), data_frame_size, false)); 3888 1, payload.data(), data_frame_size, false));
3889 MockRead reads[] = { 3889 MockRead reads[] = {
3890 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2), 3890 CreateMockRead(resp, 1), MockRead(ASYNC, ERR_IO_PENDING, 2),
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
3943 // Second data frame would be fine had there been a WINDOW_UPDATE. 3943 // Second data frame would be fine had there been a WINDOW_UPDATE.
3944 ASSERT_GT(session_max_recv_window_size, second_data_frame_size); 3944 ASSERT_GT(session_max_recv_window_size, second_data_frame_size);
3945 // But in fact, the two data frames together overflow the receiving window at 3945 // But in fact, the two data frames together overflow the receiving window at
3946 // session level. 3946 // session level.
3947 ASSERT_LT(session_max_recv_window_size, 3947 ASSERT_LT(session_max_recv_window_size,
3948 first_data_frame_size + second_data_frame_size); 3948 first_data_frame_size + second_data_frame_size);
3949 3949
3950 session_deps_.host_resolver->set_synchronous_mode(true); 3950 session_deps_.host_resolver->set_synchronous_mode(true);
3951 3951
3952 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway( 3952 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(
3953 0, GOAWAY_FLOW_CONTROL_ERROR, 3953 0, ERROR_CODE_FLOW_CONTROL_ERROR,
3954 "delta_window_size is 400 in DecreaseRecvWindowSize, which is larger " 3954 "delta_window_size is 400 in DecreaseRecvWindowSize, which is larger "
3955 "than the receive window size of 500")); 3955 "than the receive window size of 500"));
3956 MockWrite writes[] = { 3956 MockWrite writes[] = {
3957 CreateMockWrite(goaway, 4), 3957 CreateMockWrite(goaway, 4),
3958 }; 3958 };
3959 3959
3960 const std::string first_data_frame(first_data_frame_size, 'a'); 3960 const std::string first_data_frame(first_data_frame_size, 'a');
3961 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame( 3961 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame(
3962 1, first_data_frame.data(), first_data_frame_size, false)); 3962 1, first_data_frame.data(), first_data_frame_size, false));
3963 const std::string second_data_frame(second_data_frame_size, 'b'); 3963 const std::string second_data_frame(second_data_frame_size, 'b');
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 ASSERT_GT(stream_max_recv_window_size / 2, first_data_frame_size); 4004 ASSERT_GT(stream_max_recv_window_size / 2, first_data_frame_size);
4005 // Second data frame would be fine had there been a WINDOW_UPDATE. 4005 // Second data frame would be fine had there been a WINDOW_UPDATE.
4006 ASSERT_GT(stream_max_recv_window_size, second_data_frame_size); 4006 ASSERT_GT(stream_max_recv_window_size, second_data_frame_size);
4007 // But in fact, they should overflow the receiving window at stream level. 4007 // But in fact, they should overflow the receiving window at stream level.
4008 ASSERT_LT(stream_max_recv_window_size, 4008 ASSERT_LT(stream_max_recv_window_size,
4009 first_data_frame_size + second_data_frame_size); 4009 first_data_frame_size + second_data_frame_size);
4010 4010
4011 SpdySerializedFrame req( 4011 SpdySerializedFrame req(
4012 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 4012 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
4013 SpdySerializedFrame rst( 4013 SpdySerializedFrame rst(
4014 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); 4014 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_FLOW_CONTROL_ERROR));
4015 MockWrite writes[] = { 4015 MockWrite writes[] = {
4016 CreateMockWrite(req, 0), CreateMockWrite(rst, 6), 4016 CreateMockWrite(req, 0), CreateMockWrite(rst, 6),
4017 }; 4017 };
4018 4018
4019 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 4019 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
4020 const std::string first_data_frame(first_data_frame_size, 'a'); 4020 const std::string first_data_frame(first_data_frame_size, 'a');
4021 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame( 4021 SpdySerializedFrame first(spdy_util_.ConstructSpdyDataFrame(
4022 1, first_data_frame.data(), first_data_frame_size, false)); 4022 1, first_data_frame.data(), first_data_frame_size, false));
4023 const std::string second_data_frame(second_data_frame_size, 'b'); 4023 const std::string second_data_frame(second_data_frame_size, 'b');
4024 SpdySerializedFrame second(spdy_util_.ConstructSpdyDataFrame( 4024 SpdySerializedFrame second(spdy_util_.ConstructSpdyDataFrame(
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
4831 EXPECT_TRUE(delegate2.send_headers_completed()); 4831 EXPECT_TRUE(delegate2.send_headers_completed());
4832 EXPECT_EQ(std::string(), delegate2.TakeReceivedData()); 4832 EXPECT_EQ(std::string(), delegate2.TakeReceivedData());
4833 4833
4834 EXPECT_TRUE(data.AllWriteDataConsumed()); 4834 EXPECT_TRUE(data.AllWriteDataConsumed());
4835 } 4835 }
4836 4836
4837 TEST_F(SpdySessionTest, GoAwayOnSessionFlowControlError) { 4837 TEST_F(SpdySessionTest, GoAwayOnSessionFlowControlError) {
4838 SpdySerializedFrame req( 4838 SpdySerializedFrame req(
4839 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 4839 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
4840 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway( 4840 SpdySerializedFrame goaway(spdy_util_.ConstructSpdyGoAway(
4841 0, GOAWAY_FLOW_CONTROL_ERROR, 4841 0, ERROR_CODE_FLOW_CONTROL_ERROR,
4842 "delta_window_size is 6 in DecreaseRecvWindowSize, which is larger than " 4842 "delta_window_size is 6 in DecreaseRecvWindowSize, which is larger than "
4843 "the receive window size of 1")); 4843 "the receive window size of 1"));
4844 MockWrite writes[] = { 4844 MockWrite writes[] = {
4845 CreateMockWrite(req, 0), CreateMockWrite(goaway, 4), 4845 CreateMockWrite(req, 0), CreateMockWrite(goaway, 4),
4846 }; 4846 };
4847 4847
4848 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 4848 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
4849 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); 4849 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true));
4850 MockRead reads[] = { 4850 MockRead reads[] = {
4851 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2), 4851 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp, 2),
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
4985 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9), 4985 MockRead(ASYNC, ERR_IO_PENDING, 8), MockRead(ASYNC, 0, 9),
4986 }; 4986 };
4987 4987
4988 SpdySerializedFrame req( 4988 SpdySerializedFrame req(
4989 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 4989 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
4990 SpdySerializedFrame priority_a( 4990 SpdySerializedFrame priority_a(
4991 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 4991 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
4992 SpdySerializedFrame priority_b( 4992 SpdySerializedFrame priority_b(
4993 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 4993 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
4994 SpdySerializedFrame rst_b( 4994 SpdySerializedFrame rst_b(
4995 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); 4995 spdy_util_.ConstructSpdyRstStream(4, ERROR_CODE_REFUSED_STREAM));
4996 MockWrite writes[] = { 4996 MockWrite writes[] = {
4997 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3), 4997 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3),
4998 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 7), 4998 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 7),
4999 }; 4999 };
5000 5000
5001 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 5001 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
5002 session_deps_.socket_factory->AddSocketDataProvider(&data); 5002 session_deps_.socket_factory->AddSocketDataProvider(&data);
5003 5003
5004 AddSSLSocketData(); 5004 AddSSLSocketData();
5005 5005
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
5076 CreateMockRead(cross_origin_https_push, 5), 5076 CreateMockRead(cross_origin_https_push, 5),
5077 MockRead(ASYNC, ERR_IO_PENDING, 7), 5077 MockRead(ASYNC, ERR_IO_PENDING, 7),
5078 MockRead(ASYNC, 0, 8), 5078 MockRead(ASYNC, 0, 8),
5079 }; 5079 };
5080 5080
5081 SpdySerializedFrame req( 5081 SpdySerializedFrame req(
5082 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 5082 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
5083 SpdySerializedFrame priority_http( 5083 SpdySerializedFrame priority_http(
5084 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 5084 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
5085 SpdySerializedFrame rst_https( 5085 SpdySerializedFrame rst_https(
5086 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); 5086 spdy_util_.ConstructSpdyRstStream(4, ERROR_CODE_REFUSED_STREAM));
5087 MockWrite writes[] = { 5087 MockWrite writes[] = {
5088 CreateMockWrite(req, 0), CreateMockWrite(priority_http, 3), 5088 CreateMockWrite(req, 0), CreateMockWrite(priority_http, 3),
5089 CreateMockWrite(rst_https, 6), 5089 CreateMockWrite(rst_https, 6),
5090 }; 5090 };
5091 5091
5092 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 5092 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
5093 session_deps_.socket_factory->AddSocketDataProvider(&data); 5093 session_deps_.socket_factory->AddSocketDataProvider(&data);
5094 5094
5095 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate()); 5095 std::unique_ptr<TestProxyDelegate> proxy_delegate(new TestProxyDelegate());
5096 proxy_delegate->set_trusted_spdy_proxy( 5096 proxy_delegate->set_trusted_spdy_proxy(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
5162 SpdySerializedFrame cross_origin_push(spdy_util_.ConstructSpdyPush( 5162 SpdySerializedFrame cross_origin_push(spdy_util_.ConstructSpdyPush(
5163 nullptr, 0, 2, 1, kHttpURLFromAnotherOrigin)); 5163 nullptr, 0, 2, 1, kHttpURLFromAnotherOrigin));
5164 MockRead reads[] = { 5164 MockRead reads[] = {
5165 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(cross_origin_push, 2), 5165 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(cross_origin_push, 2),
5166 MockRead(ASYNC, 0, 4), 5166 MockRead(ASYNC, 0, 4),
5167 }; 5167 };
5168 5168
5169 SpdySerializedFrame req( 5169 SpdySerializedFrame req(
5170 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 5170 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
5171 SpdySerializedFrame rst( 5171 SpdySerializedFrame rst(
5172 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); 5172 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_REFUSED_STREAM));
5173 MockWrite writes[] = { 5173 MockWrite writes[] = {
5174 CreateMockWrite(req, 0), CreateMockWrite(rst, 3), 5174 CreateMockWrite(req, 0), CreateMockWrite(rst, 3),
5175 }; 5175 };
5176 5176
5177 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 5177 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
5178 session_deps_.socket_factory->AddSocketDataProvider(&data); 5178 session_deps_.socket_factory->AddSocketDataProvider(&data);
5179 5179
5180 AddSSLSocketData(); 5180 AddSSLSocketData();
5181 5181
5182 CreateNetworkSession(); 5182 CreateNetworkSession();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
5230 MockRead(ASYNC, ERR_IO_PENDING, 10), MockRead(ASYNC, 0, 11), 5230 MockRead(ASYNC, ERR_IO_PENDING, 10), MockRead(ASYNC, 0, 11),
5231 }; 5231 };
5232 5232
5233 SpdySerializedFrame req( 5233 SpdySerializedFrame req(
5234 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 5234 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
5235 SpdySerializedFrame priority_a( 5235 SpdySerializedFrame priority_a(
5236 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 5236 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
5237 SpdySerializedFrame priority_b( 5237 SpdySerializedFrame priority_b(
5238 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true)); 5238 spdy_util_.ConstructSpdyPriority(4, 2, IDLE, true));
5239 SpdySerializedFrame rst_b( 5239 SpdySerializedFrame rst_b(
5240 spdy_util_.ConstructSpdyRstStream(4, RST_STREAM_REFUSED_STREAM)); 5240 spdy_util_.ConstructSpdyRstStream(4, ERROR_CODE_REFUSED_STREAM));
5241 MockWrite writes[] = { 5241 MockWrite writes[] = {
5242 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3), 5242 CreateMockWrite(req, 0), CreateMockWrite(priority_a, 3),
5243 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 9), 5243 CreateMockWrite(priority_b, 6), CreateMockWrite(rst_b, 9),
5244 }; 5244 };
5245 5245
5246 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 5246 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
5247 session_deps_.socket_factory->AddSocketDataProvider(&data); 5247 session_deps_.socket_factory->AddSocketDataProvider(&data);
5248 5248
5249 AddSSLSocketData(); 5249 AddSSLSocketData();
5250 5250
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
5320 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_promise, 2), 5320 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(push_promise, 2),
5321 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(headers_frame, 5), 5321 MockRead(ASYNC, ERR_IO_PENDING, 4), CreateMockRead(headers_frame, 5),
5322 MockRead(ASYNC, ERR_IO_PENDING, 7), MockRead(ASYNC, 0, 8), 5322 MockRead(ASYNC, ERR_IO_PENDING, 7), MockRead(ASYNC, 0, 8),
5323 }; 5323 };
5324 5324
5325 SpdySerializedFrame req( 5325 SpdySerializedFrame req(
5326 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); 5326 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true));
5327 SpdySerializedFrame priority( 5327 SpdySerializedFrame priority(
5328 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); 5328 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
5329 SpdySerializedFrame rst( 5329 SpdySerializedFrame rst(
5330 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_CANCEL)); 5330 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_CANCEL));
5331 MockWrite writes[] = { 5331 MockWrite writes[] = {
5332 CreateMockWrite(req, 0), CreateMockWrite(priority, 3), 5332 CreateMockWrite(req, 0), CreateMockWrite(priority, 3),
5333 CreateMockWrite(rst, 6), 5333 CreateMockWrite(rst, 6),
5334 }; 5334 };
5335 5335
5336 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 5336 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
5337 session_deps_.socket_factory->AddSocketDataProvider(&data); 5337 session_deps_.socket_factory->AddSocketDataProvider(&data);
5338 5338
5339 AddSSLSocketData(); 5339 AddSSLSocketData();
5340 5340
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
5643 session_origin); 5643 session_origin);
5644 ASSERT_TRUE(altsvc_vector.empty()); 5644 ASSERT_TRUE(altsvc_vector.empty());
5645 } 5645 }
5646 5646
5647 TEST_F(AltSvcFrameTest, ProcessAltSvcFrameOnActiveStream) { 5647 TEST_F(AltSvcFrameTest, ProcessAltSvcFrameOnActiveStream) {
5648 SpdyAltSvcIR altsvc_ir(1); 5648 SpdyAltSvcIR altsvc_ir(1);
5649 altsvc_ir.add_altsvc(alternative_service_); 5649 altsvc_ir.add_altsvc(alternative_service_);
5650 5650
5651 SpdySerializedFrame altsvc_frame(spdy_util_.SerializeFrame(altsvc_ir)); 5651 SpdySerializedFrame altsvc_frame(spdy_util_.SerializeFrame(altsvc_ir));
5652 SpdySerializedFrame rst( 5652 SpdySerializedFrame rst(
5653 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); 5653 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_REFUSED_STREAM));
5654 MockRead reads[] = { 5654 MockRead reads[] = {
5655 CreateMockRead(altsvc_frame, 1), CreateMockRead(rst, 2), 5655 CreateMockRead(altsvc_frame, 1), CreateMockRead(rst, 2),
5656 MockRead(ASYNC, 0, 3) // EOF 5656 MockRead(ASYNC, 0, 3) // EOF
5657 }; 5657 };
5658 5658
5659 const char request_origin[] = "https://mail.example.org"; 5659 const char request_origin[] = "https://mail.example.org";
5660 SpdySerializedFrame req( 5660 SpdySerializedFrame req(
5661 spdy_util_.ConstructSpdyGet(request_origin, 1, MEDIUM)); 5661 spdy_util_.ConstructSpdyGet(request_origin, 1, MEDIUM));
5662 MockWrite writes[] = { 5662 MockWrite writes[] = {
5663 CreateMockWrite(req, 0), 5663 CreateMockWrite(req, 0),
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
5697 EXPECT_EQ("alternative.example.org", altsvc_vector[0].host); 5697 EXPECT_EQ("alternative.example.org", altsvc_vector[0].host);
5698 EXPECT_EQ(443u, altsvc_vector[0].port); 5698 EXPECT_EQ(443u, altsvc_vector[0].port);
5699 } 5699 }
5700 5700
5701 TEST_F(AltSvcFrameTest, DoNotProcessAltSvcFrameOnStreamWithInsecureOrigin) { 5701 TEST_F(AltSvcFrameTest, DoNotProcessAltSvcFrameOnStreamWithInsecureOrigin) {
5702 SpdyAltSvcIR altsvc_ir(1); 5702 SpdyAltSvcIR altsvc_ir(1);
5703 altsvc_ir.add_altsvc(alternative_service_); 5703 altsvc_ir.add_altsvc(alternative_service_);
5704 5704
5705 SpdySerializedFrame altsvc_frame(spdy_util_.SerializeFrame(altsvc_ir)); 5705 SpdySerializedFrame altsvc_frame(spdy_util_.SerializeFrame(altsvc_ir));
5706 SpdySerializedFrame rst( 5706 SpdySerializedFrame rst(
5707 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_REFUSED_STREAM)); 5707 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_REFUSED_STREAM));
5708 MockRead reads[] = { 5708 MockRead reads[] = {
5709 CreateMockRead(altsvc_frame, 1), CreateMockRead(rst, 2), 5709 CreateMockRead(altsvc_frame, 1), CreateMockRead(rst, 2),
5710 MockRead(ASYNC, 0, 3) // EOF 5710 MockRead(ASYNC, 0, 3) // EOF
5711 }; 5711 };
5712 5712
5713 const char request_origin[] = "http://mail.example.org"; 5713 const char request_origin[] = "http://mail.example.org";
5714 SpdySerializedFrame req( 5714 SpdySerializedFrame req(
5715 spdy_util_.ConstructSpdyGet(request_origin, 1, MEDIUM)); 5715 spdy_util_.ConstructSpdyGet(request_origin, 1, MEDIUM));
5716 MockWrite writes[] = { 5716 MockWrite writes[] = {
5717 CreateMockWrite(req, 0), 5717 CreateMockWrite(req, 0),
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
5789 MapFramerErrorToNetError(SpdyFramer::SPDY_COMPRESS_FAILURE)); 5789 MapFramerErrorToNetError(SpdyFramer::SPDY_COMPRESS_FAILURE));
5790 CHECK_EQ(ERR_SPDY_COMPRESSION_ERROR, 5790 CHECK_EQ(ERR_SPDY_COMPRESSION_ERROR,
5791 MapFramerErrorToNetError(SpdyFramer::SPDY_DECOMPRESS_FAILURE)); 5791 MapFramerErrorToNetError(SpdyFramer::SPDY_DECOMPRESS_FAILURE));
5792 CHECK_EQ( 5792 CHECK_EQ(
5793 ERR_SPDY_FRAME_SIZE_ERROR, 5793 ERR_SPDY_FRAME_SIZE_ERROR,
5794 MapFramerErrorToNetError(SpdyFramer::SPDY_CONTROL_PAYLOAD_TOO_LARGE)); 5794 MapFramerErrorToNetError(SpdyFramer::SPDY_CONTROL_PAYLOAD_TOO_LARGE));
5795 } 5795 }
5796 5796
5797 TEST(MapRstStreamStatusToProtocolError, MapsValues) { 5797 TEST(MapRstStreamStatusToProtocolError, MapsValues) {
5798 CHECK_EQ(STATUS_CODE_PROTOCOL_ERROR, 5798 CHECK_EQ(STATUS_CODE_PROTOCOL_ERROR,
5799 MapRstStreamStatusToProtocolError(RST_STREAM_PROTOCOL_ERROR)); 5799 MapRstStreamStatusToProtocolError(ERROR_CODE_PROTOCOL_ERROR));
5800 CHECK_EQ(STATUS_CODE_FRAME_SIZE_ERROR, 5800 CHECK_EQ(STATUS_CODE_FRAME_SIZE_ERROR,
5801 MapRstStreamStatusToProtocolError(RST_STREAM_FRAME_SIZE_ERROR)); 5801 MapRstStreamStatusToProtocolError(ERROR_CODE_FRAME_SIZE_ERROR));
5802 CHECK_EQ(STATUS_CODE_ENHANCE_YOUR_CALM, 5802 CHECK_EQ(STATUS_CODE_ENHANCE_YOUR_CALM,
5803 MapRstStreamStatusToProtocolError(RST_STREAM_ENHANCE_YOUR_CALM)); 5803 MapRstStreamStatusToProtocolError(ERROR_CODE_ENHANCE_YOUR_CALM));
5804 CHECK_EQ(STATUS_CODE_INADEQUATE_SECURITY, 5804 CHECK_EQ(STATUS_CODE_INADEQUATE_SECURITY,
5805 MapRstStreamStatusToProtocolError(RST_STREAM_INADEQUATE_SECURITY)); 5805 MapRstStreamStatusToProtocolError(ERROR_CODE_INADEQUATE_SECURITY));
5806 CHECK_EQ(STATUS_CODE_HTTP_1_1_REQUIRED, 5806 CHECK_EQ(STATUS_CODE_HTTP_1_1_REQUIRED,
5807 MapRstStreamStatusToProtocolError(RST_STREAM_HTTP_1_1_REQUIRED)); 5807 MapRstStreamStatusToProtocolError(ERROR_CODE_HTTP_1_1_REQUIRED));
5808 } 5808 }
5809 5809
5810 TEST(MapNetErrorToGoAwayStatus, MapsValue) { 5810 TEST(MapNetErrorToGoAwayStatus, MapsValue) {
5811 CHECK_EQ(GOAWAY_INADEQUATE_SECURITY, 5811 CHECK_EQ(ERROR_CODE_INADEQUATE_SECURITY,
5812 MapNetErrorToGoAwayStatus(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY)); 5812 MapNetErrorToGoAwayStatus(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY));
5813 CHECK_EQ(GOAWAY_FLOW_CONTROL_ERROR, 5813 CHECK_EQ(ERROR_CODE_FLOW_CONTROL_ERROR,
5814 MapNetErrorToGoAwayStatus(ERR_SPDY_FLOW_CONTROL_ERROR)); 5814 MapNetErrorToGoAwayStatus(ERR_SPDY_FLOW_CONTROL_ERROR));
5815 CHECK_EQ(GOAWAY_PROTOCOL_ERROR, 5815 CHECK_EQ(ERROR_CODE_PROTOCOL_ERROR,
5816 MapNetErrorToGoAwayStatus(ERR_SPDY_PROTOCOL_ERROR)); 5816 MapNetErrorToGoAwayStatus(ERR_SPDY_PROTOCOL_ERROR));
5817 CHECK_EQ(GOAWAY_COMPRESSION_ERROR, 5817 CHECK_EQ(ERROR_CODE_COMPRESSION_ERROR,
5818 MapNetErrorToGoAwayStatus(ERR_SPDY_COMPRESSION_ERROR)); 5818 MapNetErrorToGoAwayStatus(ERR_SPDY_COMPRESSION_ERROR));
5819 CHECK_EQ(GOAWAY_FRAME_SIZE_ERROR, 5819 CHECK_EQ(ERROR_CODE_FRAME_SIZE_ERROR,
5820 MapNetErrorToGoAwayStatus(ERR_SPDY_FRAME_SIZE_ERROR)); 5820 MapNetErrorToGoAwayStatus(ERR_SPDY_FRAME_SIZE_ERROR));
5821 CHECK_EQ(GOAWAY_PROTOCOL_ERROR, MapNetErrorToGoAwayStatus(ERR_UNEXPECTED)); 5821 CHECK_EQ(ERROR_CODE_PROTOCOL_ERROR,
5822 MapNetErrorToGoAwayStatus(ERR_UNEXPECTED));
5822 } 5823 }
5823 5824
5824 TEST(CanPoolTest, CanPool) { 5825 TEST(CanPoolTest, CanPool) {
5825 // Load a cert that is valid for: 5826 // Load a cert that is valid for:
5826 // www.example.org 5827 // www.example.org
5827 // mail.example.org 5828 // mail.example.org
5828 // mail.example.com 5829 // mail.example.com
5829 5830
5830 TransportSecurityState tss; 5831 TransportSecurityState tss;
5831 SSLInfo ssl_info; 5832 SSLInfo ssl_info;
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
5997 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5998 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5998 "spdy_pooling.pem"); 5999 "spdy_pooling.pem");
5999 ssl_info.is_issued_by_known_root = true; 6000 ssl_info.is_issued_by_known_root = true;
6000 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); 6001 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
6001 6002
6002 EXPECT_TRUE(SpdySession::CanPool( 6003 EXPECT_TRUE(SpdySession::CanPool(
6003 &tss, ssl_info, "www.example.org", "mail.example.org")); 6004 &tss, ssl_info, "www.example.org", "mail.example.org"));
6004 } 6005 }
6005 6006
6006 } // namespace net 6007 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session.cc ('k') | net/spdy/spdy_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698