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

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

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years 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_test_util.h ('k') | net/spdy/spdy_stream.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 (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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 void StallSessionStream(SpdyStream* stream) { 83 void StallSessionStream(SpdyStream* stream) {
84 StallSessionSend(); 84 StallSessionSend();
85 StallStreamSend(stream); 85 StallStreamSend(stream);
86 } 86 }
87 87
88 void StallStreamSession(SpdyStream* stream) { 88 void StallStreamSession(SpdyStream* stream) {
89 StallStreamSend(stream); 89 StallStreamSend(stream);
90 StallSessionSend(); 90 StallSessionSend();
91 } 91 }
92 92
93 void UnstallSessionOnly(SpdyStream* stream, int32 delta_window_size) { 93 void UnstallSessionOnly(SpdyStream* stream, int32_t delta_window_size) {
94 UnstallSessionSend(delta_window_size); 94 UnstallSessionSend(delta_window_size);
95 } 95 }
96 96
97 void UnstallStreamOnly(SpdyStream* stream, int32 delta_window_size) { 97 void UnstallStreamOnly(SpdyStream* stream, int32_t delta_window_size) {
98 UnstallStreamSend(stream, delta_window_size); 98 UnstallStreamSend(stream, delta_window_size);
99 } 99 }
100 100
101 void UnstallSessionStream(SpdyStream* stream, int32 delta_window_size) { 101 void UnstallSessionStream(SpdyStream* stream, int32_t delta_window_size) {
102 UnstallSessionSend(delta_window_size); 102 UnstallSessionSend(delta_window_size);
103 UnstallStreamSend(stream, delta_window_size); 103 UnstallStreamSend(stream, delta_window_size);
104 } 104 }
105 105
106 void UnstallStreamSession(SpdyStream* stream, int32 delta_window_size) { 106 void UnstallStreamSession(SpdyStream* stream, int32_t delta_window_size) {
107 UnstallStreamSend(stream, delta_window_size); 107 UnstallStreamSend(stream, delta_window_size);
108 UnstallSessionSend(delta_window_size); 108 UnstallSessionSend(delta_window_size);
109 } 109 }
110 110
111 protected: 111 protected:
112 NextProto GetProtocol() const { 112 NextProto GetProtocol() const {
113 return GetParam() == kTestCaseSPDY31 ? kProtoSPDY31 : kProtoHTTP2; 113 return GetParam() == kTestCaseSPDY31 ? kProtoSPDY31 : kProtoHTTP2;
114 } 114 }
115 115
116 bool GetDependenciesFromPriority() const { 116 bool GetDependenciesFromPriority() const {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 } 165 }
166 166
167 void StallSessionSend() { 167 void StallSessionSend() {
168 // Reduce the send window size to 0 to stall. 168 // Reduce the send window size to 0 to stall.
169 while (session_->session_send_window_size_ > 0) { 169 while (session_->session_send_window_size_ > 0) {
170 session_->DecreaseSendWindowSize(std::min( 170 session_->DecreaseSendWindowSize(std::min(
171 kMaxSpdyFrameChunkSize, session_->session_send_window_size_)); 171 kMaxSpdyFrameChunkSize, session_->session_send_window_size_));
172 } 172 }
173 } 173 }
174 174
175 void UnstallSessionSend(int32 delta_window_size) { 175 void UnstallSessionSend(int32_t delta_window_size) {
176 session_->IncreaseSendWindowSize(delta_window_size); 176 session_->IncreaseSendWindowSize(delta_window_size);
177 } 177 }
178 178
179 void StallStreamSend(SpdyStream* stream) { 179 void StallStreamSend(SpdyStream* stream) {
180 // Reduce the send window size to 0 to stall. 180 // Reduce the send window size to 0 to stall.
181 while (stream->send_window_size() > 0) { 181 while (stream->send_window_size() > 0) {
182 stream->DecreaseSendWindowSize( 182 stream->DecreaseSendWindowSize(
183 std::min(kMaxSpdyFrameChunkSize, stream->send_window_size())); 183 std::min(kMaxSpdyFrameChunkSize, stream->send_window_size()));
184 } 184 }
185 } 185 }
186 186
187 void UnstallStreamSend(SpdyStream* stream, int32 delta_window_size) { 187 void UnstallStreamSend(SpdyStream* stream, int32_t delta_window_size) {
188 stream->IncreaseSendWindowSize(delta_window_size); 188 stream->IncreaseSendWindowSize(delta_window_size);
189 } 189 }
190 190
191 void RunResumeAfterUnstallTest( 191 void RunResumeAfterUnstallTest(
192 const base::Callback<void(SpdyStream*)>& stall_function, 192 const base::Callback<void(SpdyStream*)>& stall_function,
193 const base::Callback<void(SpdyStream*, int32)>& unstall_function); 193 const base::Callback<void(SpdyStream*, int32_t)>& unstall_function);
194 194
195 // Original socket limits. Some tests set these. Safest to always restore 195 // Original socket limits. Some tests set these. Safest to always restore
196 // them once each test has been run. 196 // them once each test has been run.
197 int old_max_group_sockets_; 197 int old_max_group_sockets_;
198 int old_max_pool_sockets_; 198 int old_max_pool_sockets_;
199 199
200 SpdyTestUtil spdy_util_; 200 SpdyTestUtil spdy_util_;
201 SpdySessionDependencies session_deps_; 201 SpdySessionDependencies session_deps_;
202 scoped_ptr<HttpNetworkSession> http_session_; 202 scoped_ptr<HttpNetworkSession> http_session_;
203 base::WeakPtr<SpdySession> session_; 203 base::WeakPtr<SpdySession> session_;
(...skipping 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 const SpdySettingsIds kSpdySettingsIds = SETTINGS_MAX_CONCURRENT_STREAMS; 1339 const SpdySettingsIds kSpdySettingsIds = SETTINGS_MAX_CONCURRENT_STREAMS;
1340 1340
1341 int seq = 0; 1341 int seq = 0;
1342 std::vector<MockWrite> writes; 1342 std::vector<MockWrite> writes;
1343 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); 1343 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck());
1344 if (GetProtocol() == kProtoHTTP2) { 1344 if (GetProtocol() == kProtoHTTP2) {
1345 writes.push_back(CreateMockWrite(*settings_ack, ++seq)); 1345 writes.push_back(CreateMockWrite(*settings_ack, ++seq));
1346 } 1346 }
1347 1347
1348 SettingsMap new_settings; 1348 SettingsMap new_settings;
1349 const uint32 max_concurrent_streams = kInitialMaxConcurrentStreams + 1; 1349 const uint32_t max_concurrent_streams = kInitialMaxConcurrentStreams + 1;
1350 new_settings[kSpdySettingsIds] = 1350 new_settings[kSpdySettingsIds] =
1351 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); 1351 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams);
1352 scoped_ptr<SpdyFrame> settings_frame( 1352 scoped_ptr<SpdyFrame> settings_frame(
1353 spdy_util_.ConstructSpdySettings(new_settings)); 1353 spdy_util_.ConstructSpdySettings(new_settings));
1354 MockRead reads[] = { 1354 MockRead reads[] = {
1355 CreateMockRead(*settings_frame, 0), 1355 CreateMockRead(*settings_frame, 0),
1356 MockRead(ASYNC, ERR_IO_PENDING, ++seq), 1356 MockRead(ASYNC, ERR_IO_PENDING, ++seq),
1357 MockRead(ASYNC, 0, ++seq), 1357 MockRead(ASYNC, 0, ++seq),
1358 }; 1358 };
1359 1359
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1396 // correct. 1396 // correct.
1397 TEST_P(SpdySessionTest, ClearSettings) { 1397 TEST_P(SpdySessionTest, ClearSettings) {
1398 if (spdy_util_.spdy_version() >= HTTP2) { 1398 if (spdy_util_.spdy_version() >= HTTP2) {
1399 // HTTP/2 doesn't include settings persistence, or a CLEAR_SETTINGS flag. 1399 // HTTP/2 doesn't include settings persistence, or a CLEAR_SETTINGS flag.
1400 // Flag 0x1, CLEAR_SETTINGS in SPDY3, is instead settings ACK in HTTP/2. 1400 // Flag 0x1, CLEAR_SETTINGS in SPDY3, is instead settings ACK in HTTP/2.
1401 return; 1401 return;
1402 } 1402 }
1403 session_deps_.host_resolver->set_synchronous_mode(true); 1403 session_deps_.host_resolver->set_synchronous_mode(true);
1404 1404
1405 SettingsMap new_settings; 1405 SettingsMap new_settings;
1406 const uint32 max_concurrent_streams = kInitialMaxConcurrentStreams + 1; 1406 const uint32_t max_concurrent_streams = kInitialMaxConcurrentStreams + 1;
1407 new_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = 1407 new_settings[SETTINGS_MAX_CONCURRENT_STREAMS] =
1408 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); 1408 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams);
1409 scoped_ptr<SpdyFrame> settings_frame( 1409 scoped_ptr<SpdyFrame> settings_frame(
1410 spdy_util_.ConstructSpdySettings(new_settings)); 1410 spdy_util_.ConstructSpdySettings(new_settings));
1411 uint8 flags = SETTINGS_FLAG_CLEAR_PREVIOUSLY_PERSISTED_SETTINGS; 1411 uint8_t flags = SETTINGS_FLAG_CLEAR_PREVIOUSLY_PERSISTED_SETTINGS;
1412 test::SetFrameFlags(settings_frame.get(), flags, spdy_util_.spdy_version()); 1412 test::SetFrameFlags(settings_frame.get(), flags, spdy_util_.spdy_version());
1413 MockRead reads[] = { 1413 MockRead reads[] = {
1414 CreateMockRead(*settings_frame, 0), 1414 CreateMockRead(*settings_frame, 0),
1415 MockRead(ASYNC, ERR_IO_PENDING, 1), 1415 MockRead(ASYNC, ERR_IO_PENDING, 1),
1416 MockRead(ASYNC, 0, 2), 1416 MockRead(ASYNC, 0, 2),
1417 }; 1417 };
1418 1418
1419 SequencedSocketData data(reads, arraysize(reads), nullptr, 0); 1419 SequencedSocketData data(reads, arraysize(reads), nullptr, 0);
1420 session_deps_.socket_factory->AddSocketDataProvider(&data); 1420 session_deps_.socket_factory->AddSocketDataProvider(&data);
1421 1421
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1540 std::vector<MockWrite> writes; 1540 std::vector<MockWrite> writes;
1541 if (GetProtocol() == kProtoHTTP2) { 1541 if (GetProtocol() == kProtoHTTP2) {
1542 writes.push_back( 1542 writes.push_back(
1543 MockWrite(ASYNC, 1543 MockWrite(ASYNC,
1544 kHttp2ConnectionHeaderPrefix, 1544 kHttp2ConnectionHeaderPrefix,
1545 kHttp2ConnectionHeaderPrefixSize)); 1545 kHttp2ConnectionHeaderPrefixSize));
1546 } 1546 }
1547 writes.push_back(CreateMockWrite(*settings_frame)); 1547 writes.push_back(CreateMockWrite(*settings_frame));
1548 1548
1549 SettingsMap server_settings; 1549 SettingsMap server_settings;
1550 const uint32 initial_max_concurrent_streams = 1; 1550 const uint32_t initial_max_concurrent_streams = 1;
1551 server_settings[SETTINGS_MAX_CONCURRENT_STREAMS] = 1551 server_settings[SETTINGS_MAX_CONCURRENT_STREAMS] =
1552 SettingsFlagsAndValue(SETTINGS_FLAG_PERSISTED, 1552 SettingsFlagsAndValue(SETTINGS_FLAG_PERSISTED,
1553 initial_max_concurrent_streams); 1553 initial_max_concurrent_streams);
1554 scoped_ptr<SpdyFrame> server_settings_frame( 1554 scoped_ptr<SpdyFrame> server_settings_frame(
1555 spdy_util_.ConstructSpdySettings(server_settings)); 1555 spdy_util_.ConstructSpdySettings(server_settings));
1556 if (GetProtocol() <= kProtoSPDY31) { 1556 if (GetProtocol() <= kProtoSPDY31) {
1557 writes.push_back(CreateMockWrite(*server_settings_frame)); 1557 writes.push_back(CreateMockWrite(*server_settings_frame));
1558 } 1558 }
1559 1559
1560 StaticSocketDataProvider data(reads, arraysize(reads), writes.data(), 1560 StaticSocketDataProvider data(reads, arraysize(reads), writes.data(),
(...skipping 767 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 EXPECT_TRUE(session_->VerifyDomainAuthentication("mail.example.org")); 2328 EXPECT_TRUE(session_->VerifyDomainAuthentication("mail.example.org"));
2329 EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.example.com")); 2329 EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.example.com"));
2330 EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.google.com")); 2330 EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.google.com"));
2331 } 2331 }
2332 2332
2333 TEST_P(SpdySessionTest, CloseTwoStalledCreateStream) { 2333 TEST_P(SpdySessionTest, CloseTwoStalledCreateStream) {
2334 // TODO(rtenneti): Define a helper class/methods and move the common code in 2334 // TODO(rtenneti): Define a helper class/methods and move the common code in
2335 // this file. 2335 // this file.
2336 SettingsMap new_settings; 2336 SettingsMap new_settings;
2337 const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_MAX_CONCURRENT_STREAMS; 2337 const SpdySettingsIds kSpdySettingsIds1 = SETTINGS_MAX_CONCURRENT_STREAMS;
2338 const uint32 max_concurrent_streams = 1; 2338 const uint32_t max_concurrent_streams = 1;
2339 new_settings[kSpdySettingsIds1] = 2339 new_settings[kSpdySettingsIds1] =
2340 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams); 2340 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, max_concurrent_streams);
2341 2341
2342 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck()); 2342 scoped_ptr<SpdyFrame> settings_ack(spdy_util_.ConstructSpdySettingsAck());
2343 scoped_ptr<SpdyFrame> req1( 2343 scoped_ptr<SpdyFrame> req1(
2344 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 1, LOWEST, true)); 2344 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 1, LOWEST, true));
2345 spdy_util_.UpdateWithStreamDestruction(1); 2345 spdy_util_.UpdateWithStreamDestruction(1);
2346 scoped_ptr<SpdyFrame> req2( 2346 scoped_ptr<SpdyFrame> req2(
2347 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 3, LOWEST, true)); 2347 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 3, LOWEST, true));
2348 spdy_util_.UpdateWithStreamDestruction(3); 2348 spdy_util_.UpdateWithStreamDestruction(3);
(...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after
3381 3381
3382 data.Resume(); 3382 data.Resume();
3383 base::RunLoop().RunUntilIdle(); 3383 base::RunLoop().RunUntilIdle();
3384 EXPECT_FALSE(session_); 3384 EXPECT_FALSE(session_);
3385 } 3385 }
3386 3386
3387 TEST_P(SpdySessionTest, UpdateStreamsSendWindowSize) { 3387 TEST_P(SpdySessionTest, UpdateStreamsSendWindowSize) {
3388 // Set SETTINGS_INITIAL_WINDOW_SIZE to a small number so that WINDOW_UPDATE 3388 // Set SETTINGS_INITIAL_WINDOW_SIZE to a small number so that WINDOW_UPDATE
3389 // gets sent. 3389 // gets sent.
3390 SettingsMap new_settings; 3390 SettingsMap new_settings;
3391 int32 window_size = 1; 3391 int32_t window_size = 1;
3392 new_settings[SETTINGS_INITIAL_WINDOW_SIZE] = 3392 new_settings[SETTINGS_INITIAL_WINDOW_SIZE] =
3393 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, window_size); 3393 SettingsFlagsAndValue(SETTINGS_FLAG_NONE, window_size);
3394 3394
3395 // Set up the socket so we read a SETTINGS frame that sets 3395 // Set up the socket so we read a SETTINGS frame that sets
3396 // INITIAL_WINDOW_SIZE. 3396 // INITIAL_WINDOW_SIZE.
3397 scoped_ptr<SpdyFrame> settings_frame( 3397 scoped_ptr<SpdyFrame> settings_frame(
3398 spdy_util_.ConstructSpdySettings(new_settings)); 3398 spdy_util_.ConstructSpdySettings(new_settings));
3399 MockRead reads[] = { 3399 MockRead reads[] = {
3400 CreateMockRead(*settings_frame, 0), 3400 CreateMockRead(*settings_frame, 0),
3401 MockRead(ASYNC, ERR_IO_PENDING, 1), 3401 MockRead(ASYNC, ERR_IO_PENDING, 1),
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3442 EXPECT_FALSE(session_); 3442 EXPECT_FALSE(session_);
3443 } 3443 }
3444 3444
3445 // SpdySession::{Increase,Decrease}RecvWindowSize should properly 3445 // SpdySession::{Increase,Decrease}RecvWindowSize should properly
3446 // adjust the session receive window size. In addition, 3446 // adjust the session receive window size. In addition,
3447 // SpdySession::IncreaseRecvWindowSize should trigger 3447 // SpdySession::IncreaseRecvWindowSize should trigger
3448 // sending a WINDOW_UPDATE frame for a large enough delta. 3448 // sending a WINDOW_UPDATE frame for a large enough delta.
3449 TEST_P(SpdySessionTest, AdjustRecvWindowSize) { 3449 TEST_P(SpdySessionTest, AdjustRecvWindowSize) {
3450 session_deps_.host_resolver->set_synchronous_mode(true); 3450 session_deps_.host_resolver->set_synchronous_mode(true);
3451 3451
3452 const int32 initial_window_size = 3452 const int32_t initial_window_size =
3453 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); 3453 SpdySession::GetDefaultInitialWindowSize(GetProtocol());
3454 const int32 delta_window_size = 100; 3454 const int32_t delta_window_size = 100;
3455 3455
3456 MockRead reads[] = { 3456 MockRead reads[] = {
3457 MockRead(ASYNC, ERR_IO_PENDING, 1), MockRead(ASYNC, 0, 2) // EOF 3457 MockRead(ASYNC, ERR_IO_PENDING, 1), MockRead(ASYNC, 0, 2) // EOF
3458 }; 3458 };
3459 scoped_ptr<SpdyFrame> window_update(spdy_util_.ConstructSpdyWindowUpdate( 3459 scoped_ptr<SpdyFrame> window_update(spdy_util_.ConstructSpdyWindowUpdate(
3460 kSessionFlowControlStreamId, initial_window_size + delta_window_size)); 3460 kSessionFlowControlStreamId, initial_window_size + delta_window_size));
3461 MockWrite writes[] = { 3461 MockWrite writes[] = {
3462 CreateMockWrite(*window_update, 0), 3462 CreateMockWrite(*window_update, 0),
3463 }; 3463 };
3464 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 3464 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
3509 MockRead(SYNCHRONOUS, 0, 0) // EOF 3509 MockRead(SYNCHRONOUS, 0, 0) // EOF
3510 }; 3510 };
3511 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); 3511 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0);
3512 session_deps_.socket_factory->AddSocketDataProvider(&data); 3512 session_deps_.socket_factory->AddSocketDataProvider(&data);
3513 3513
3514 CreateNetworkSession(); 3514 CreateNetworkSession();
3515 session_ = CreateFakeSpdySession(spdy_session_pool_, key_); 3515 session_ = CreateFakeSpdySession(spdy_session_pool_, key_);
3516 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION, 3516 EXPECT_EQ(SpdySession::FLOW_CONTROL_STREAM_AND_SESSION,
3517 session_->flow_control_state()); 3517 session_->flow_control_state());
3518 3518
3519 const int32 initial_window_size = 3519 const int32_t initial_window_size =
3520 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); 3520 SpdySession::GetDefaultInitialWindowSize(GetProtocol());
3521 const int32 delta_window_size = 100; 3521 const int32_t delta_window_size = 100;
3522 3522
3523 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3523 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3524 3524
3525 session_->IncreaseSendWindowSize(delta_window_size); 3525 session_->IncreaseSendWindowSize(delta_window_size);
3526 EXPECT_EQ(initial_window_size + delta_window_size, 3526 EXPECT_EQ(initial_window_size + delta_window_size,
3527 session_->session_send_window_size_); 3527 session_->session_send_window_size_);
3528 3528
3529 session_->DecreaseSendWindowSize(delta_window_size); 3529 session_->DecreaseSendWindowSize(delta_window_size);
3530 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3530 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3531 } 3531 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3602 EXPECT_EQ(kUploadDataSize + padding_length, 3602 EXPECT_EQ(kUploadDataSize + padding_length,
3603 session_->session_unacked_recv_window_bytes_); 3603 session_->session_unacked_recv_window_bytes_);
3604 3604
3605 data.Resume(); 3605 data.Resume();
3606 base::RunLoop().RunUntilIdle(); 3606 base::RunLoop().RunUntilIdle();
3607 EXPECT_FALSE(session_); 3607 EXPECT_FALSE(session_);
3608 } 3608 }
3609 3609
3610 // Peer sends more data than stream level receiving flow control window. 3610 // Peer sends more data than stream level receiving flow control window.
3611 TEST_P(SpdySessionTest, StreamFlowControlTooMuchData) { 3611 TEST_P(SpdySessionTest, StreamFlowControlTooMuchData) {
3612 const int32 stream_max_recv_window_size = 1024; 3612 const int32_t stream_max_recv_window_size = 1024;
3613 const int32 data_frame_size = 2 * stream_max_recv_window_size; 3613 const int32_t data_frame_size = 2 * stream_max_recv_window_size;
3614 3614
3615 scoped_ptr<SpdyFrame> req( 3615 scoped_ptr<SpdyFrame> req(
3616 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 1, LOWEST, true)); 3616 spdy_util_.ConstructSpdyGet(nullptr, 0, false, 1, LOWEST, true));
3617 scoped_ptr<SpdyFrame> rst( 3617 scoped_ptr<SpdyFrame> rst(
3618 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); 3618 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR));
3619 MockWrite writes[] = { 3619 MockWrite writes[] = {
3620 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4), 3620 CreateMockWrite(*req, 0), CreateMockWrite(*rst, 4),
3621 }; 3621 };
3622 3622
3623 scoped_ptr<SpdyFrame> resp( 3623 scoped_ptr<SpdyFrame> resp(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3666 EXPECT_TRUE(session_); 3666 EXPECT_TRUE(session_);
3667 data.Resume(); 3667 data.Resume();
3668 base::RunLoop().RunUntilIdle(); 3668 base::RunLoop().RunUntilIdle();
3669 EXPECT_FALSE(session_); 3669 EXPECT_FALSE(session_);
3670 } 3670 }
3671 3671
3672 // Regression test for a bug that was caused by including unsent WINDOW_UPDATE 3672 // Regression test for a bug that was caused by including unsent WINDOW_UPDATE
3673 // deltas in the receiving window size when checking incoming frames for flow 3673 // deltas in the receiving window size when checking incoming frames for flow
3674 // control errors at session level. 3674 // control errors at session level.
3675 TEST_P(SpdySessionTest, SessionFlowControlTooMuchDataTwoDataFrames) { 3675 TEST_P(SpdySessionTest, SessionFlowControlTooMuchDataTwoDataFrames) {
3676 const int32 session_max_recv_window_size = 500; 3676 const int32_t session_max_recv_window_size = 500;
3677 const int32 first_data_frame_size = 200; 3677 const int32_t first_data_frame_size = 200;
3678 const int32 second_data_frame_size = 400; 3678 const int32_t second_data_frame_size = 400;
3679 3679
3680 // First data frame should not trigger a WINDOW_UPDATE. 3680 // First data frame should not trigger a WINDOW_UPDATE.
3681 ASSERT_GT(session_max_recv_window_size / 2, first_data_frame_size); 3681 ASSERT_GT(session_max_recv_window_size / 2, first_data_frame_size);
3682 // Second data frame would be fine had there been a WINDOW_UPDATE. 3682 // Second data frame would be fine had there been a WINDOW_UPDATE.
3683 ASSERT_GT(session_max_recv_window_size, second_data_frame_size); 3683 ASSERT_GT(session_max_recv_window_size, second_data_frame_size);
3684 // But in fact, the two data frames together overflow the receiving window at 3684 // But in fact, the two data frames together overflow the receiving window at
3685 // session level. 3685 // session level.
3686 ASSERT_LT(session_max_recv_window_size, 3686 ASSERT_LT(session_max_recv_window_size,
3687 first_data_frame_size + second_data_frame_size); 3687 first_data_frame_size + second_data_frame_size);
3688 3688
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3730 // Second data frame overflows receiving window, causes session to close. 3730 // Second data frame overflows receiving window, causes session to close.
3731 data.Resume(); 3731 data.Resume();
3732 base::RunLoop().RunUntilIdle(); 3732 base::RunLoop().RunUntilIdle();
3733 EXPECT_EQ(SpdySession::STATE_DRAINING, session_->availability_state_); 3733 EXPECT_EQ(SpdySession::STATE_DRAINING, session_->availability_state_);
3734 } 3734 }
3735 3735
3736 // Regression test for a bug that was caused by including unsent WINDOW_UPDATE 3736 // Regression test for a bug that was caused by including unsent WINDOW_UPDATE
3737 // deltas in the receiving window size when checking incoming data frames for 3737 // deltas in the receiving window size when checking incoming data frames for
3738 // flow control errors at stream level. 3738 // flow control errors at stream level.
3739 TEST_P(SpdySessionTest, StreamFlowControlTooMuchDataTwoDataFrames) { 3739 TEST_P(SpdySessionTest, StreamFlowControlTooMuchDataTwoDataFrames) {
3740 const int32 stream_max_recv_window_size = 500; 3740 const int32_t stream_max_recv_window_size = 500;
3741 const int32 first_data_frame_size = 200; 3741 const int32_t first_data_frame_size = 200;
3742 const int32 second_data_frame_size = 400; 3742 const int32_t second_data_frame_size = 400;
3743 3743
3744 // First data frame should not trigger a WINDOW_UPDATE. 3744 // First data frame should not trigger a WINDOW_UPDATE.
3745 ASSERT_GT(stream_max_recv_window_size / 2, first_data_frame_size); 3745 ASSERT_GT(stream_max_recv_window_size / 2, first_data_frame_size);
3746 // Second data frame would be fine had there been a WINDOW_UPDATE. 3746 // Second data frame would be fine had there been a WINDOW_UPDATE.
3747 ASSERT_GT(stream_max_recv_window_size, second_data_frame_size); 3747 ASSERT_GT(stream_max_recv_window_size, second_data_frame_size);
3748 // But in fact, they should overflow the receiving window at stream level. 3748 // But in fact, they should overflow the receiving window at stream level.
3749 ASSERT_LT(stream_max_recv_window_size, 3749 ASSERT_LT(stream_max_recv_window_size,
3750 first_data_frame_size + second_data_frame_size); 3750 first_data_frame_size + second_data_frame_size);
3751 3751
3752 scoped_ptr<SpdyFrame> req( 3752 scoped_ptr<SpdyFrame> req(
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3834 ~DropReceivedDataDelegate() override {} 3834 ~DropReceivedDataDelegate() override {}
3835 3835
3836 // Drop any received data. 3836 // Drop any received data.
3837 void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override {} 3837 void OnDataReceived(scoped_ptr<SpdyBuffer> buffer) override {}
3838 }; 3838 };
3839 3839
3840 // Send data back and forth but use a delegate that drops its received 3840 // Send data back and forth but use a delegate that drops its received
3841 // data. The receive window should still increase to its original 3841 // data. The receive window should still increase to its original
3842 // value, i.e. we shouldn't "leak" receive window bytes. 3842 // value, i.e. we shouldn't "leak" receive window bytes.
3843 TEST_P(SpdySessionTest, SessionFlowControlNoReceiveLeaks) { 3843 TEST_P(SpdySessionTest, SessionFlowControlNoReceiveLeaks) {
3844 const int32 kMsgDataSize = 100; 3844 const int32_t kMsgDataSize = 100;
3845 const std::string msg_data(kMsgDataSize, 'a'); 3845 const std::string msg_data(kMsgDataSize, 'a');
3846 3846
3847 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost( 3847 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost(
3848 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0)); 3848 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0));
3849 scoped_ptr<SpdyFrame> msg(spdy_util_.ConstructSpdyBodyFrame( 3849 scoped_ptr<SpdyFrame> msg(spdy_util_.ConstructSpdyBodyFrame(
3850 1, msg_data.data(), kMsgDataSize, false)); 3850 1, msg_data.data(), kMsgDataSize, false));
3851 MockWrite writes[] = { 3851 MockWrite writes[] = {
3852 CreateMockWrite(*req, 0), 3852 CreateMockWrite(*req, 0),
3853 CreateMockWrite(*msg, 2), 3853 CreateMockWrite(*msg, 2),
3854 }; 3854 };
(...skipping 26 matching lines...) Expand all
3881 3881
3882 DropReceivedDataDelegate delegate(stream, msg_data); 3882 DropReceivedDataDelegate delegate(stream, msg_data);
3883 stream->SetDelegate(&delegate); 3883 stream->SetDelegate(&delegate);
3884 3884
3885 scoped_ptr<SpdyHeaderBlock> headers( 3885 scoped_ptr<SpdyHeaderBlock> headers(
3886 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); 3886 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize));
3887 EXPECT_EQ(ERR_IO_PENDING, 3887 EXPECT_EQ(ERR_IO_PENDING,
3888 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 3888 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
3889 EXPECT_TRUE(stream->HasUrlFromHeaders()); 3889 EXPECT_TRUE(stream->HasUrlFromHeaders());
3890 3890
3891 const int32 initial_window_size = 3891 const int32_t initial_window_size =
3892 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); 3892 SpdySession::GetDefaultInitialWindowSize(GetProtocol());
3893 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3893 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3894 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 3894 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
3895 3895
3896 base::RunLoop().RunUntilIdle(); 3896 base::RunLoop().RunUntilIdle();
3897 3897
3898 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3898 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3899 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_); 3899 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_);
3900 3900
3901 stream->Close(); 3901 stream->Close();
3902 EXPECT_FALSE(stream); 3902 EXPECT_FALSE(stream);
3903 3903
3904 EXPECT_EQ(OK, delegate.WaitForClose()); 3904 EXPECT_EQ(OK, delegate.WaitForClose());
3905 3905
3906 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3906 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3907 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_); 3907 EXPECT_EQ(kMsgDataSize, session_->session_unacked_recv_window_bytes_);
3908 3908
3909 data.Resume(); 3909 data.Resume();
3910 base::RunLoop().RunUntilIdle(); 3910 base::RunLoop().RunUntilIdle();
3911 EXPECT_FALSE(session_); 3911 EXPECT_FALSE(session_);
3912 } 3912 }
3913 3913
3914 // Send data back and forth but close the stream before its data frame 3914 // Send data back and forth but close the stream before its data frame
3915 // can be written to the socket. The send window should then increase 3915 // can be written to the socket. The send window should then increase
3916 // to its original value, i.e. we shouldn't "leak" send window bytes. 3916 // to its original value, i.e. we shouldn't "leak" send window bytes.
3917 TEST_P(SpdySessionTest, SessionFlowControlNoSendLeaks) { 3917 TEST_P(SpdySessionTest, SessionFlowControlNoSendLeaks) {
3918 const int32 kMsgDataSize = 100; 3918 const int32_t kMsgDataSize = 100;
3919 const std::string msg_data(kMsgDataSize, 'a'); 3919 const std::string msg_data(kMsgDataSize, 'a');
3920 3920
3921 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost( 3921 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost(
3922 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0)); 3922 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0));
3923 MockWrite writes[] = { 3923 MockWrite writes[] = {
3924 CreateMockWrite(*req, 0), 3924 CreateMockWrite(*req, 0),
3925 }; 3925 };
3926 3926
3927 scoped_ptr<SpdyFrame> resp( 3927 scoped_ptr<SpdyFrame> resp(
3928 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); 3928 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1));
(...skipping 18 matching lines...) Expand all
3947 3947
3948 test::StreamDelegateSendImmediate delegate(stream, msg_data); 3948 test::StreamDelegateSendImmediate delegate(stream, msg_data);
3949 stream->SetDelegate(&delegate); 3949 stream->SetDelegate(&delegate);
3950 3950
3951 scoped_ptr<SpdyHeaderBlock> headers( 3951 scoped_ptr<SpdyHeaderBlock> headers(
3952 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); 3952 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize));
3953 EXPECT_EQ(ERR_IO_PENDING, 3953 EXPECT_EQ(ERR_IO_PENDING,
3954 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 3954 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
3955 EXPECT_TRUE(stream->HasUrlFromHeaders()); 3955 EXPECT_TRUE(stream->HasUrlFromHeaders());
3956 3956
3957 const int32 initial_window_size = 3957 const int32_t initial_window_size =
3958 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); 3958 SpdySession::GetDefaultInitialWindowSize(GetProtocol());
3959 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3959 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3960 3960
3961 // Write request. 3961 // Write request.
3962 base::RunLoop().RunUntilIdle(); 3962 base::RunLoop().RunUntilIdle();
3963 3963
3964 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3964 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3965 3965
3966 // Read response, but do not run the message loop, so that the body is not 3966 // Read response, but do not run the message loop, so that the body is not
3967 // written to the socket. 3967 // written to the socket.
(...skipping 13 matching lines...) Expand all
3981 base::RunLoop().RunUntilIdle(); 3981 base::RunLoop().RunUntilIdle();
3982 EXPECT_FALSE(session_); 3982 EXPECT_FALSE(session_);
3983 3983
3984 EXPECT_TRUE(data.AllWriteDataConsumed()); 3984 EXPECT_TRUE(data.AllWriteDataConsumed());
3985 EXPECT_TRUE(data.AllReadDataConsumed()); 3985 EXPECT_TRUE(data.AllReadDataConsumed());
3986 } 3986 }
3987 3987
3988 // Send data back and forth; the send and receive windows should 3988 // Send data back and forth; the send and receive windows should
3989 // change appropriately. 3989 // change appropriately.
3990 TEST_P(SpdySessionTest, SessionFlowControlEndToEnd) { 3990 TEST_P(SpdySessionTest, SessionFlowControlEndToEnd) {
3991 const int32 kMsgDataSize = 100; 3991 const int32_t kMsgDataSize = 100;
3992 const std::string msg_data(kMsgDataSize, 'a'); 3992 const std::string msg_data(kMsgDataSize, 'a');
3993 3993
3994 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost( 3994 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost(
3995 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0)); 3995 kDefaultURL, 1, kMsgDataSize, MEDIUM, nullptr, 0));
3996 scoped_ptr<SpdyFrame> msg(spdy_util_.ConstructSpdyBodyFrame( 3996 scoped_ptr<SpdyFrame> msg(spdy_util_.ConstructSpdyBodyFrame(
3997 1, msg_data.data(), kMsgDataSize, false)); 3997 1, msg_data.data(), kMsgDataSize, false));
3998 MockWrite writes[] = { 3998 MockWrite writes[] = {
3999 CreateMockWrite(*req, 0), 3999 CreateMockWrite(*req, 0),
4000 CreateMockWrite(*msg, 2), 4000 CreateMockWrite(*msg, 2),
4001 }; 4001 };
(...skipping 29 matching lines...) Expand all
4031 4031
4032 test::StreamDelegateSendImmediate delegate(stream, msg_data); 4032 test::StreamDelegateSendImmediate delegate(stream, msg_data);
4033 stream->SetDelegate(&delegate); 4033 stream->SetDelegate(&delegate);
4034 4034
4035 scoped_ptr<SpdyHeaderBlock> headers( 4035 scoped_ptr<SpdyHeaderBlock> headers(
4036 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); 4036 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize));
4037 EXPECT_EQ(ERR_IO_PENDING, 4037 EXPECT_EQ(ERR_IO_PENDING,
4038 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); 4038 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND));
4039 EXPECT_TRUE(stream->HasUrlFromHeaders()); 4039 EXPECT_TRUE(stream->HasUrlFromHeaders());
4040 4040
4041 const int32 initial_window_size = 4041 const int32_t initial_window_size =
4042 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); 4042 SpdySession::GetDefaultInitialWindowSize(GetProtocol());
4043 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 4043 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
4044 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 4044 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
4045 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 4045 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
4046 4046
4047 // Send request and message. 4047 // Send request and message.
4048 base::RunLoop().RunUntilIdle(); 4048 base::RunLoop().RunUntilIdle();
4049 4049
4050 EXPECT_EQ(initial_window_size - kMsgDataSize, 4050 EXPECT_EQ(initial_window_size - kMsgDataSize,
4051 session_->session_send_window_size_); 4051 session_->session_send_window_size_);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
4090 4090
4091 data.Resume(); 4091 data.Resume();
4092 base::RunLoop().RunUntilIdle(); 4092 base::RunLoop().RunUntilIdle();
4093 EXPECT_FALSE(session_); 4093 EXPECT_FALSE(session_);
4094 } 4094 }
4095 4095
4096 // Given a stall function and an unstall function, runs a test to make 4096 // Given a stall function and an unstall function, runs a test to make
4097 // sure that a stream resumes after unstall. 4097 // sure that a stream resumes after unstall.
4098 void SpdySessionTest::RunResumeAfterUnstallTest( 4098 void SpdySessionTest::RunResumeAfterUnstallTest(
4099 const base::Callback<void(SpdyStream*)>& stall_function, 4099 const base::Callback<void(SpdyStream*)>& stall_function,
4100 const base::Callback<void(SpdyStream*, int32)>& unstall_function) { 4100 const base::Callback<void(SpdyStream*, int32_t)>& unstall_function) {
4101
4102 session_deps_.host_resolver->set_synchronous_mode(true); 4101 session_deps_.host_resolver->set_synchronous_mode(true);
4103 4102
4104 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost( 4103 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyPost(
4105 kDefaultURL, 1, kBodyDataSize, LOWEST, nullptr, 0)); 4104 kDefaultURL, 1, kBodyDataSize, LOWEST, nullptr, 0));
4106 scoped_ptr<SpdyFrame> body( 4105 scoped_ptr<SpdyFrame> body(
4107 spdy_util_.ConstructSpdyBodyFrame(1, kBodyData, kBodyDataSize, true)); 4106 spdy_util_.ConstructSpdyBodyFrame(1, kBodyData, kBodyDataSize, true));
4108 MockWrite writes[] = { 4107 MockWrite writes[] = {
4109 CreateMockWrite(*req, 0), 4108 CreateMockWrite(*req, 0),
4110 CreateMockWrite(*body, 1), 4109 CreateMockWrite(*body, 1),
4111 }; 4110 };
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after
5176 "spdy_pooling.pem"); 5175 "spdy_pooling.pem");
5177 ssl_info.channel_id_sent = true; 5176 ssl_info.channel_id_sent = true;
5178 5177
5179 EXPECT_TRUE(SpdySession::CanPool( 5178 EXPECT_TRUE(SpdySession::CanPool(
5180 &tss, ssl_info, "www.example.org", "mail.example.org")); 5179 &tss, ssl_info, "www.example.org", "mail.example.org"));
5181 EXPECT_FALSE(SpdySession::CanPool( 5180 EXPECT_FALSE(SpdySession::CanPool(
5182 &tss, ssl_info, "www.example.org", "www.example.com")); 5181 &tss, ssl_info, "www.example.org", "www.example.com"));
5183 } 5182 }
5184 5183
5185 TEST(CanPoolTest, CanNotPoolWithBadPins) { 5184 TEST(CanPoolTest, CanNotPoolWithBadPins) {
5186 uint8 primary_pin = 1; 5185 uint8_t primary_pin = 1;
5187 uint8 backup_pin = 2; 5186 uint8_t backup_pin = 2;
5188 uint8 bad_pin = 3; 5187 uint8_t bad_pin = 3;
5189 TransportSecurityState tss; 5188 TransportSecurityState tss;
5190 test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin); 5189 test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin);
5191 5190
5192 SSLInfo ssl_info; 5191 SSLInfo ssl_info;
5193 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5192 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5194 "spdy_pooling.pem"); 5193 "spdy_pooling.pem");
5195 ssl_info.is_issued_by_known_root = true; 5194 ssl_info.is_issued_by_known_root = true;
5196 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(bad_pin)); 5195 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(bad_pin));
5197 5196
5198 EXPECT_FALSE(SpdySession::CanPool( 5197 EXPECT_FALSE(SpdySession::CanPool(
5199 &tss, ssl_info, "www.example.org", "mail.example.org")); 5198 &tss, ssl_info, "www.example.org", "mail.example.org"));
5200 } 5199 }
5201 5200
5202 TEST(CanPoolTest, CanPoolWithAcceptablePins) { 5201 TEST(CanPoolTest, CanPoolWithAcceptablePins) {
5203 uint8 primary_pin = 1; 5202 uint8_t primary_pin = 1;
5204 uint8 backup_pin = 2; 5203 uint8_t backup_pin = 2;
5205 TransportSecurityState tss; 5204 TransportSecurityState tss;
5206 test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin); 5205 test::AddPin(&tss, "mail.example.org", primary_pin, backup_pin);
5207 5206
5208 SSLInfo ssl_info; 5207 SSLInfo ssl_info;
5209 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5208 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5210 "spdy_pooling.pem"); 5209 "spdy_pooling.pem");
5211 ssl_info.is_issued_by_known_root = true; 5210 ssl_info.is_issued_by_known_root = true;
5212 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); 5211 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
5213 5212
5214 EXPECT_TRUE(SpdySession::CanPool( 5213 EXPECT_TRUE(SpdySession::CanPool(
5215 &tss, ssl_info, "www.example.org", "mail.example.org")); 5214 &tss, ssl_info, "www.example.org", "mail.example.org"));
5216 } 5215 }
5217 5216
5218 } // namespace net 5217 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_test_util.h ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698