| OLD | NEW |
| 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 "base/base64.h" | 7 #include "base/base64.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 1523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1534 } | 1534 } |
| 1535 | 1535 |
| 1536 TEST_P(SpdySessionTest, SendInitialDataOnNewSession) { | 1536 TEST_P(SpdySessionTest, SendInitialDataOnNewSession) { |
| 1537 session_deps_.host_resolver->set_synchronous_mode(true); | 1537 session_deps_.host_resolver->set_synchronous_mode(true); |
| 1538 | 1538 |
| 1539 MockRead reads[] = { | 1539 MockRead reads[] = { |
| 1540 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. | 1540 MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever. |
| 1541 }; | 1541 }; |
| 1542 | 1542 |
| 1543 SettingsMap settings; | 1543 SettingsMap settings; |
| 1544 const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_MAX_CONCURRENT_STREAMS; | 1544 settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 1545 const SpdySettingsIds kSpdySettingsIds2 = SETTINGS_INITIAL_WINDOW_SIZE; | |
| 1546 const uint32 kInitialRecvWindowSize = 10 * 1024 * 1024; | |
| 1547 settings[kSpdySettingsIds1] = | |
| 1548 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kMaxConcurrentPushedStreams); | 1545 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kMaxConcurrentPushedStreams); |
| 1549 if (spdy_util_.spdy_version() >= SPDY3) { | |
| 1550 settings[kSpdySettingsIds2] = | |
| 1551 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, kInitialRecvWindowSize); | |
| 1552 } | |
| 1553 MockConnect connect_data(SYNCHRONOUS, OK); | 1546 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1554 scoped_ptr<SpdyFrame> settings_frame( | 1547 scoped_ptr<SpdyFrame> settings_frame( |
| 1555 spdy_util_.ConstructSpdySettings(settings)); | 1548 spdy_util_.ConstructSpdySettings(settings)); |
| 1556 scoped_ptr<SpdyFrame> initial_window_update( | |
| 1557 spdy_util_.ConstructSpdyWindowUpdate( | |
| 1558 kSessionFlowControlStreamId, | |
| 1559 kDefaultInitialRecvWindowSize - | |
| 1560 SpdySession::GetInitialWindowSize(GetParam()))); | |
| 1561 std::vector<MockWrite> writes; | 1549 std::vector<MockWrite> writes; |
| 1562 if ((GetParam() >= kProtoSPDY4MinimumVersion) && | 1550 if ((GetParam() >= kProtoSPDY4MinimumVersion) && |
| 1563 (GetParam() <= kProtoSPDY4MaximumVersion)) { | 1551 (GetParam() <= kProtoSPDY4MaximumVersion)) { |
| 1564 writes.push_back( | 1552 writes.push_back( |
| 1565 MockWrite(ASYNC, | 1553 MockWrite(ASYNC, |
| 1566 kHttp2ConnectionHeaderPrefix, | 1554 kHttp2ConnectionHeaderPrefix, |
| 1567 kHttp2ConnectionHeaderPrefixSize)); | 1555 kHttp2ConnectionHeaderPrefixSize)); |
| 1568 } | 1556 } |
| 1569 writes.push_back(CreateMockWrite(*settings_frame)); | 1557 writes.push_back(CreateMockWrite(*settings_frame)); |
| 1570 if (GetParam() >= kProtoSPDY31) { | |
| 1571 writes.push_back(CreateMockWrite(*initial_window_update)); | |
| 1572 }; | |
| 1573 | 1558 |
| 1574 SettingsMap server_settings; | 1559 SettingsMap server_settings; |
| 1575 const uint32 initial_max_concurrent_streams = 1; | 1560 const uint32 initial_max_concurrent_streams = 1; |
| 1576 server_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = | 1561 server_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = |
| 1577 SettingsFlagsAndValue(SETTINGS_FLAG_PERSISTED, | 1562 SettingsFlagsAndValue(SETTINGS_FLAG_PERSISTED, |
| 1578 initial_max_concurrent_streams); | 1563 initial_max_concurrent_streams); |
| 1579 scoped_ptr<SpdyFrame> server_settings_frame( | 1564 scoped_ptr<SpdyFrame> server_settings_frame( |
| 1580 spdy_util_.ConstructSpdySettings(server_settings)); | 1565 spdy_util_.ConstructSpdySettings(server_settings)); |
| 1581 if (GetParam() <= kProtoSPDY31) { | 1566 if (GetParam() <= kProtoSPDY31) { |
| 1582 writes.push_back(CreateMockWrite(*server_settings_frame)); | 1567 writes.push_back(CreateMockWrite(*server_settings_frame)); |
| 1583 } | 1568 } |
| 1584 | 1569 |
| 1585 session_deps_.stream_initial_recv_window_size = kInitialRecvWindowSize; | |
| 1586 | |
| 1587 StaticSocketDataProvider data(reads, arraysize(reads), | 1570 StaticSocketDataProvider data(reads, arraysize(reads), |
| 1588 vector_as_array(&writes), writes.size()); | 1571 vector_as_array(&writes), writes.size()); |
| 1589 data.set_connect_data(connect_data); | 1572 data.set_connect_data(connect_data); |
| 1590 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1573 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1591 | 1574 |
| 1592 CreateNetworkSession(); | 1575 CreateNetworkSession(); |
| 1593 | 1576 |
| 1594 spdy_session_pool_->http_server_properties()->SetSpdySetting( | 1577 spdy_session_pool_->http_server_properties()->SetSpdySetting( |
| 1595 test_host_port_pair_, | 1578 test_host_port_pair_, |
| 1596 SETTINGS_MAX_CONCURRENT_STREAMS, | 1579 SETTINGS_MAX_CONCURRENT_STREAMS, |
| (...skipping 3567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5164 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), | 5147 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), |
| 5165 "spdy_pooling.pem"); | 5148 "spdy_pooling.pem"); |
| 5166 ssl_info.is_issued_by_known_root = true; | 5149 ssl_info.is_issued_by_known_root = true; |
| 5167 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); | 5150 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); |
| 5168 | 5151 |
| 5169 EXPECT_TRUE(SpdySession::CanPool( | 5152 EXPECT_TRUE(SpdySession::CanPool( |
| 5170 &tss, ssl_info, "www.example.org", "mail.example.org")); | 5153 &tss, ssl_info, "www.example.org", "mail.example.org")); |
| 5171 } | 5154 } |
| 5172 | 5155 |
| 5173 } // namespace net | 5156 } // namespace net |
| OLD | NEW |