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/quic/chromium/quic_chromium_client_session.h" | 5 #include "net/quic/chromium/quic_chromium_client_session.h" |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/rand_util.h" | 10 #include "base/rand_util.h" |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 ProofVerifyDetailsChromium verify_details_; | 177 ProofVerifyDetailsChromium verify_details_; |
178 }; | 178 }; |
179 | 179 |
180 INSTANTIATE_TEST_CASE_P(Tests, | 180 INSTANTIATE_TEST_CASE_P(Tests, |
181 QuicChromiumClientSessionTest, | 181 QuicChromiumClientSessionTest, |
182 ::testing::ValuesIn(AllSupportedVersions())); | 182 ::testing::ValuesIn(AllSupportedVersions())); |
183 | 183 |
184 TEST_P(QuicChromiumClientSessionTest, CryptoConnect) { | 184 TEST_P(QuicChromiumClientSessionTest, CryptoConnect) { |
185 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 185 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
186 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 186 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
187 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 187 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
188 kDefaultMaxUncompressedHeaderSize, true, | |
189 nullptr)); | |
190 MockWrite writes[] = { | 188 MockWrite writes[] = { |
191 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 189 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
192 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 190 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
193 arraysize(writes))); | 191 arraysize(writes))); |
194 Initialize(); | 192 Initialize(); |
195 CompleteCryptoHandshake(); | 193 CompleteCryptoHandshake(); |
196 } | 194 } |
197 | 195 |
198 TEST_P(QuicChromiumClientSessionTest, MaxNumStreams) { | 196 TEST_P(QuicChromiumClientSessionTest, MaxNumStreams) { |
199 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 197 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
200 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 198 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
201 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 199 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
202 kDefaultMaxUncompressedHeaderSize, true, | |
203 nullptr)); | |
204 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 200 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
205 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 201 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
206 MockWrite writes[] = { | 202 MockWrite writes[] = { |
207 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 203 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
208 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 204 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
209 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 205 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
210 arraysize(writes))); | 206 arraysize(writes))); |
211 | 207 |
212 Initialize(); | 208 Initialize(); |
213 CompleteCryptoHandshake(); | 209 CompleteCryptoHandshake(); |
(...skipping 18 matching lines...) Expand all Loading... |
232 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); | 228 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); |
233 session_->OnRstStream(rst1); | 229 session_->OnRstStream(rst1); |
234 EXPECT_EQ(kMaxOpenStreams - 1, session_->GetNumOpenOutgoingStreams()); | 230 EXPECT_EQ(kMaxOpenStreams - 1, session_->GetNumOpenOutgoingStreams()); |
235 EXPECT_TRUE(session_->CreateOutgoingDynamicStream(kDefaultPriority)); | 231 EXPECT_TRUE(session_->CreateOutgoingDynamicStream(kDefaultPriority)); |
236 } | 232 } |
237 | 233 |
238 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) { | 234 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutNoResponse) { |
239 base::HistogramTester histogram_tester; | 235 base::HistogramTester histogram_tester; |
240 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 236 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
241 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 237 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
242 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 238 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
243 kDefaultMaxUncompressedHeaderSize, true, | |
244 nullptr)); | |
245 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 239 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
246 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); | 240 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); |
247 MockWrite writes[] = { | 241 MockWrite writes[] = { |
248 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 242 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
249 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 243 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
250 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 244 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
251 arraysize(writes))); | 245 arraysize(writes))); |
252 Initialize(); | 246 Initialize(); |
253 | 247 |
254 ProofVerifyDetailsChromium details; | 248 ProofVerifyDetailsChromium details; |
(...skipping 28 matching lines...) Expand all Loading... |
283 EXPECT_EQ(0u, | 277 EXPECT_EQ(0u, |
284 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); | 278 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); |
285 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( | 279 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( |
286 session_.get())); | 280 session_.get())); |
287 } | 281 } |
288 | 282 |
289 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) { | 283 TEST_P(QuicChromiumClientSessionTest, PushStreamTimedOutWithResponse) { |
290 base::HistogramTester histogram_tester; | 284 base::HistogramTester histogram_tester; |
291 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 285 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
292 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 286 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
293 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 287 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
294 kDefaultMaxUncompressedHeaderSize, true, | |
295 nullptr)); | |
296 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 288 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
297 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); | 289 2, true, kServerDataStreamId1, QUIC_PUSH_STREAM_TIMED_OUT)); |
298 MockWrite writes[] = { | 290 MockWrite writes[] = { |
299 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 291 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
300 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 292 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
301 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 293 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
302 arraysize(writes))); | 294 arraysize(writes))); |
303 Initialize(); | 295 Initialize(); |
304 | 296 |
305 ProofVerifyDetailsChromium details; | 297 ProofVerifyDetailsChromium details; |
(...skipping 30 matching lines...) Expand all Loading... |
336 alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised)); | 328 alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised)); |
337 EXPECT_EQ(2u, | 329 EXPECT_EQ(2u, |
338 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); | 330 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); |
339 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( | 331 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( |
340 session_.get())); | 332 session_.get())); |
341 } | 333 } |
342 | 334 |
343 TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) { | 335 TEST_P(QuicChromiumClientSessionTest, CancelPushWhenPendingValidation) { |
344 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 336 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
345 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 337 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
346 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 338 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
347 kDefaultMaxUncompressedHeaderSize, true, | |
348 nullptr)); | |
349 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 339 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
350 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 340 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
351 | 341 |
352 MockWrite writes[] = { | 342 MockWrite writes[] = { |
353 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 343 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
354 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 344 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
355 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 345 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
356 arraysize(writes))); | 346 arraysize(writes))); |
357 Initialize(); | 347 Initialize(); |
358 | 348 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 EXPECT_TRUE(session_->GetPromisedByUrl(pushed_url.spec())); | 383 EXPECT_TRUE(session_->GetPromisedByUrl(pushed_url.spec())); |
394 | 384 |
395 // Reset the stream now before tear down. | 385 // Reset the stream now before tear down. |
396 session_->CloseStream(kClientDataStreamId1); | 386 session_->CloseStream(kClientDataStreamId1); |
397 } | 387 } |
398 | 388 |
399 TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) { | 389 TEST_P(QuicChromiumClientSessionTest, CancelPushBeforeReceivingResponse) { |
400 base::HistogramTester histogram_tester; | 390 base::HistogramTester histogram_tester; |
401 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 391 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
402 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 392 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
403 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 393 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
404 kDefaultMaxUncompressedHeaderSize, true, | |
405 nullptr)); | |
406 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 394 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
407 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); | 395 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); |
408 MockWrite writes[] = { | 396 MockWrite writes[] = { |
409 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 397 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
410 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 398 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
411 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 399 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
412 arraysize(writes))); | 400 arraysize(writes))); |
413 Initialize(); | 401 Initialize(); |
414 | 402 |
415 ProofVerifyDetailsChromium details; | 403 ProofVerifyDetailsChromium details; |
(...skipping 29 matching lines...) Expand all Loading... |
445 EXPECT_EQ(0u, | 433 EXPECT_EQ(0u, |
446 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); | 434 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); |
447 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( | 435 EXPECT_EQ(0u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( |
448 session_.get())); | 436 session_.get())); |
449 } | 437 } |
450 | 438 |
451 TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) { | 439 TEST_P(QuicChromiumClientSessionTest, CancelPushAfterReceivingResponse) { |
452 base::HistogramTester histogram_tester; | 440 base::HistogramTester histogram_tester; |
453 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 441 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
454 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 442 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
455 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 443 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
456 kDefaultMaxUncompressedHeaderSize, true, | |
457 nullptr)); | |
458 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 444 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
459 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); | 445 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); |
460 MockWrite writes[] = { | 446 MockWrite writes[] = { |
461 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 447 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
462 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 448 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
463 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 449 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
464 arraysize(writes))); | 450 arraysize(writes))); |
465 Initialize(); | 451 Initialize(); |
466 | 452 |
467 ProofVerifyDetailsChromium details; | 453 ProofVerifyDetailsChromium details; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 EXPECT_FALSE(session_->GetPromisedByUrl(pushed_url.spec())); | 487 EXPECT_FALSE(session_->GetPromisedByUrl(pushed_url.spec())); |
502 EXPECT_EQ(2u, | 488 EXPECT_EQ(2u, |
503 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); | 489 QuicChromiumClientSessionPeer::GetPushedBytesCount(session_.get())); |
504 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( | 490 EXPECT_EQ(2u, QuicChromiumClientSessionPeer::GetPushedAndUnclaimedBytesCount( |
505 session_.get())); | 491 session_.get())); |
506 } | 492 } |
507 | 493 |
508 TEST_P(QuicChromiumClientSessionTest, Priority) { | 494 TEST_P(QuicChromiumClientSessionTest, Priority) { |
509 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 495 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
510 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 496 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
511 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 497 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
512 kDefaultMaxUncompressedHeaderSize, true, | |
513 nullptr)); | |
514 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 498 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
515 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 499 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
516 MockWrite writes[] = { | 500 MockWrite writes[] = { |
517 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 501 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
518 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 502 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
519 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 503 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
520 arraysize(writes))); | 504 arraysize(writes))); |
521 | 505 |
522 Initialize(); | 506 Initialize(); |
523 CompleteCryptoHandshake(); | 507 CompleteCryptoHandshake(); |
524 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) { | 508 for (SpdyPriority priority : {kV3HighestPriority, kV3LowestPriority}) { |
525 QuicChromiumClientStream* stream = | 509 QuicChromiumClientStream* stream = |
526 session_->CreateOutgoingDynamicStream(priority); | 510 session_->CreateOutgoingDynamicStream(priority); |
527 EXPECT_EQ(kV3HighestPriority, stream->priority()); | 511 EXPECT_EQ(kV3HighestPriority, stream->priority()); |
528 | 512 |
529 MockStreamDelegate delegate; | 513 MockStreamDelegate delegate; |
530 EXPECT_CALL(delegate, HasSendHeadersComplete()) | 514 EXPECT_CALL(delegate, HasSendHeadersComplete()) |
531 .WillOnce(testing::Return(true)); | 515 .WillOnce(testing::Return(true)); |
532 stream->SetDelegate(&delegate); | 516 stream->SetDelegate(&delegate); |
533 EXPECT_EQ(priority, stream->priority()); | 517 EXPECT_EQ(priority, stream->priority()); |
534 stream->SetDelegate(nullptr); | 518 stream->SetDelegate(nullptr); |
535 session_->CloseStream(stream->id()); | 519 session_->CloseStream(stream->id()); |
536 } | 520 } |
537 } | 521 } |
538 | 522 |
539 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) { | 523 TEST_P(QuicChromiumClientSessionTest, MaxNumStreamsViaRequest) { |
540 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 524 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
541 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 525 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
542 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 526 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
543 kDefaultMaxUncompressedHeaderSize, true, | |
544 nullptr)); | |
545 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( | 527 std::unique_ptr<QuicEncryptedPacket> client_rst(client_maker_.MakeRstPacket( |
546 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 528 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
547 MockWrite writes[] = { | 529 MockWrite writes[] = { |
548 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), | 530 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1), |
549 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; | 531 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 2)}; |
550 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 532 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
551 arraysize(writes))); | 533 arraysize(writes))); |
552 | 534 |
553 Initialize(); | 535 Initialize(); |
554 CompleteCryptoHandshake(); | 536 CompleteCryptoHandshake(); |
(...skipping 20 matching lines...) Expand all Loading... |
575 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); | 557 QuicRstStreamFrame rst1(stream_id, QUIC_STREAM_NO_ERROR, 0); |
576 session_->OnRstStream(rst1); | 558 session_->OnRstStream(rst1); |
577 ASSERT_TRUE(callback.have_result()); | 559 ASSERT_TRUE(callback.have_result()); |
578 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 560 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
579 EXPECT_TRUE(stream != nullptr); | 561 EXPECT_TRUE(stream != nullptr); |
580 } | 562 } |
581 | 563 |
582 TEST_P(QuicChromiumClientSessionTest, GoAwayReceived) { | 564 TEST_P(QuicChromiumClientSessionTest, GoAwayReceived) { |
583 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 565 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
584 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 566 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
585 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 567 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
586 kDefaultMaxUncompressedHeaderSize, true, | |
587 nullptr)); | |
588 MockWrite writes[] = { | 568 MockWrite writes[] = { |
589 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 569 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
590 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 570 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
591 arraysize(writes))); | 571 arraysize(writes))); |
592 Initialize(); | 572 Initialize(); |
593 CompleteCryptoHandshake(); | 573 CompleteCryptoHandshake(); |
594 | 574 |
595 // After receiving a GoAway, I should no longer be able to create outgoing | 575 // After receiving a GoAway, I should no longer be able to create outgoing |
596 // streams. | 576 // streams. |
597 session_->connection()->OnGoAwayFrame( | 577 session_->connection()->OnGoAwayFrame( |
598 QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away.")); | 578 QuicGoAwayFrame(QUIC_PEER_GOING_AWAY, 1u, "Going away.")); |
599 EXPECT_EQ(nullptr, session_->CreateOutgoingDynamicStream(kDefaultPriority)); | 579 EXPECT_EQ(nullptr, session_->CreateOutgoingDynamicStream(kDefaultPriority)); |
600 } | 580 } |
601 | 581 |
602 TEST_P(QuicChromiumClientSessionTest, CanPool) { | 582 TEST_P(QuicChromiumClientSessionTest, CanPool) { |
603 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 583 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
604 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 584 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
605 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 585 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
606 kDefaultMaxUncompressedHeaderSize, true, | |
607 nullptr)); | |
608 MockWrite writes[] = { | 586 MockWrite writes[] = { |
609 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 587 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
610 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 588 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
611 arraysize(writes))); | 589 arraysize(writes))); |
612 Initialize(); | 590 Initialize(); |
613 // Load a cert that is valid for: | 591 // Load a cert that is valid for: |
614 // www.example.org | 592 // www.example.org |
615 // mail.example.org | 593 // mail.example.org |
616 // www.example.com | 594 // www.example.com |
617 | 595 |
618 ProofVerifyDetailsChromium details; | 596 ProofVerifyDetailsChromium details; |
619 details.cert_verify_result.verified_cert = | 597 details.cert_verify_result.verified_cert = |
620 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); | 598 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); |
621 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); | 599 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); |
622 | 600 |
623 CompleteCryptoHandshake(); | 601 CompleteCryptoHandshake(); |
624 session_->OnProofVerifyDetailsAvailable(details); | 602 session_->OnProofVerifyDetailsAvailable(details); |
625 | 603 |
626 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); | 604 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); |
627 EXPECT_FALSE(session_->CanPool("www.example.org", PRIVACY_MODE_ENABLED)); | 605 EXPECT_FALSE(session_->CanPool("www.example.org", PRIVACY_MODE_ENABLED)); |
628 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); | 606 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); |
629 EXPECT_TRUE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); | 607 EXPECT_TRUE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); |
630 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); | 608 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); |
631 } | 609 } |
632 | 610 |
633 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithTlsChannelId) { | 611 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithTlsChannelId) { |
634 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 612 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
635 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 613 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
636 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 614 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
637 kDefaultMaxUncompressedHeaderSize, true, | |
638 nullptr)); | |
639 MockWrite writes[] = { | 615 MockWrite writes[] = { |
640 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 616 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
641 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 617 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
642 arraysize(writes))); | 618 arraysize(writes))); |
643 Initialize(); | 619 Initialize(); |
644 // Load a cert that is valid for: | 620 // Load a cert that is valid for: |
645 // www.example.org | 621 // www.example.org |
646 // mail.example.org | 622 // mail.example.org |
647 // www.example.com | 623 // www.example.com |
648 | 624 |
649 ProofVerifyDetailsChromium details; | 625 ProofVerifyDetailsChromium details; |
650 details.cert_verify_result.verified_cert = | 626 details.cert_verify_result.verified_cert = |
651 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); | 627 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); |
652 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); | 628 ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); |
653 | 629 |
654 CompleteCryptoHandshake(); | 630 CompleteCryptoHandshake(); |
655 session_->OnProofVerifyDetailsAvailable(details); | 631 session_->OnProofVerifyDetailsAvailable(details); |
656 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); | 632 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); |
657 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); | 633 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); |
658 | 634 |
659 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); | 635 EXPECT_TRUE(session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED)); |
660 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); | 636 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); |
661 EXPECT_FALSE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); | 637 EXPECT_FALSE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED)); |
662 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); | 638 EXPECT_FALSE(session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED)); |
663 } | 639 } |
664 | 640 |
665 TEST_P(QuicChromiumClientSessionTest, ConnectionNotPooledWithDifferentPin) { | 641 TEST_P(QuicChromiumClientSessionTest, ConnectionNotPooledWithDifferentPin) { |
666 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 642 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
667 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 643 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
668 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 644 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
669 kDefaultMaxUncompressedHeaderSize, true, | |
670 nullptr)); | |
671 MockWrite writes[] = { | 645 MockWrite writes[] = { |
672 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 646 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
673 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 647 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
674 arraysize(writes))); | 648 arraysize(writes))); |
675 Initialize(); | 649 Initialize(); |
676 | 650 |
677 uint8_t primary_pin = 1; | 651 uint8_t primary_pin = 1; |
678 uint8_t backup_pin = 2; | 652 uint8_t backup_pin = 2; |
679 uint8_t bad_pin = 3; | 653 uint8_t bad_pin = 3; |
680 AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 654 AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
(...skipping 12 matching lines...) Expand all Loading... |
693 session_->OnProofVerifyDetailsAvailable(details); | 667 session_->OnProofVerifyDetailsAvailable(details); |
694 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); | 668 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); |
695 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); | 669 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); |
696 | 670 |
697 EXPECT_FALSE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); | 671 EXPECT_FALSE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); |
698 } | 672 } |
699 | 673 |
700 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithMatchingPin) { | 674 TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithMatchingPin) { |
701 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 675 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
702 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 676 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
703 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 677 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
704 kDefaultMaxUncompressedHeaderSize, true, | |
705 nullptr)); | |
706 MockWrite writes[] = { | 678 MockWrite writes[] = { |
707 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 679 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
708 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, | 680 socket_data_.reset(new SequencedSocketData(reads, arraysize(reads), writes, |
709 arraysize(writes))); | 681 arraysize(writes))); |
710 Initialize(); | 682 Initialize(); |
711 | 683 |
712 uint8_t primary_pin = 1; | 684 uint8_t primary_pin = 1; |
713 uint8_t backup_pin = 2; | 685 uint8_t backup_pin = 2; |
714 AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 686 AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
715 backup_pin); | 687 backup_pin); |
(...skipping 11 matching lines...) Expand all Loading... |
727 session_->OnProofVerifyDetailsAvailable(details); | 699 session_->OnProofVerifyDetailsAvailable(details); |
728 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); | 700 QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); |
729 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); | 701 QuicChromiumClientSessionPeer::SetChannelIDSent(session_.get(), true); |
730 | 702 |
731 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); | 703 EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED)); |
732 } | 704 } |
733 | 705 |
734 TEST_P(QuicChromiumClientSessionTest, MigrateToSocket) { | 706 TEST_P(QuicChromiumClientSessionTest, MigrateToSocket) { |
735 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 707 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
736 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 708 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
737 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 709 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
738 kDefaultMaxUncompressedHeaderSize, true, | |
739 nullptr)); | |
740 MockWrite old_writes[] = { | 710 MockWrite old_writes[] = { |
741 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 711 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
742 socket_data_.reset(new SequencedSocketData( | 712 socket_data_.reset(new SequencedSocketData( |
743 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); | 713 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); |
744 Initialize(); | 714 Initialize(); |
745 CompleteCryptoHandshake(); | 715 CompleteCryptoHandshake(); |
746 | 716 |
747 char data[] = "ABCD"; | 717 char data[] = "ABCD"; |
748 std::unique_ptr<QuicEncryptedPacket> client_ping( | 718 std::unique_ptr<QuicEncryptedPacket> client_ping( |
749 client_maker_.MakePingPacket(2, /*include_version=*/false)); | 719 client_maker_.MakePingPacket(2, /*include_version=*/false)); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 QuicIOVector(iov, arraysize(iov), 4), 0, NO_FIN, | 765 QuicIOVector(iov, arraysize(iov), 4), 0, NO_FIN, |
796 nullptr); | 766 nullptr); |
797 | 767 |
798 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 768 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
799 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 769 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
800 } | 770 } |
801 | 771 |
802 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketMaxReaders) { | 772 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketMaxReaders) { |
803 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 773 MockRead old_reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
804 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 774 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
805 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 775 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
806 kDefaultMaxUncompressedHeaderSize, true, | |
807 nullptr)); | |
808 MockWrite old_writes[] = { | 776 MockWrite old_writes[] = { |
809 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; | 777 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; |
810 socket_data_.reset(new SequencedSocketData( | 778 socket_data_.reset(new SequencedSocketData( |
811 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); | 779 old_reads, arraysize(old_reads), old_writes, arraysize(old_writes))); |
812 Initialize(); | 780 Initialize(); |
813 CompleteCryptoHandshake(); | 781 CompleteCryptoHandshake(); |
814 | 782 |
815 for (size_t i = 0; i < kMaxReadersPerQuicSession; ++i) { | 783 for (size_t i = 0; i < kMaxReadersPerQuicSession; ++i) { |
816 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1)}; | 784 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1)}; |
817 std::unique_ptr<QuicEncryptedPacket> ping_out( | 785 std::unique_ptr<QuicEncryptedPacket> ping_out( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 EXPECT_FALSE(session_->MigrateToSocket( | 820 EXPECT_FALSE(session_->MigrateToSocket( |
853 std::move(new_socket), std::move(new_reader), std::move(new_writer))); | 821 std::move(new_socket), std::move(new_reader), std::move(new_writer))); |
854 EXPECT_FALSE(socket_data.AllReadDataConsumed()); | 822 EXPECT_FALSE(socket_data.AllReadDataConsumed()); |
855 EXPECT_FALSE(socket_data.AllWriteDataConsumed()); | 823 EXPECT_FALSE(socket_data.AllWriteDataConsumed()); |
856 } | 824 } |
857 } | 825 } |
858 } | 826 } |
859 | 827 |
860 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) { | 828 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) { |
861 std::unique_ptr<QuicEncryptedPacket> settings_packet( | 829 std::unique_ptr<QuicEncryptedPacket> settings_packet( |
862 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 830 client_maker_.MakeInitialSettingsPacket(1, nullptr)); |
863 kDefaultMaxUncompressedHeaderSize, true, | |
864 nullptr)); | |
865 std::unique_ptr<QuicEncryptedPacket> client_ping( | 831 std::unique_ptr<QuicEncryptedPacket> client_ping( |
866 client_maker_.MakePingPacket(2, /*include_version=*/false)); | 832 client_maker_.MakePingPacket(2, /*include_version=*/false)); |
867 std::unique_ptr<QuicEncryptedPacket> server_ping( | 833 std::unique_ptr<QuicEncryptedPacket> server_ping( |
868 server_maker_.MakePingPacket(1, /*include_version=*/false)); | 834 server_maker_.MakePingPacket(1, /*include_version=*/false)); |
869 MockWrite old_writes[] = { | 835 MockWrite old_writes[] = { |
870 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 0)}; | 836 MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 0)}; |
871 MockRead old_reads[] = { | 837 MockRead old_reads[] = { |
872 MockRead(ASYNC, ERR_IO_PENDING, 1), // causes reading to pause. | 838 MockRead(ASYNC, ERR_IO_PENDING, 1), // causes reading to pause. |
873 MockRead(ASYNC, ERR_NETWORK_CHANGED, 2)}; | 839 MockRead(ASYNC, ERR_NETWORK_CHANGED, 2)}; |
874 socket_data_.reset(new SequencedSocketData( | 840 socket_data_.reset(new SequencedSocketData( |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
925 | 891 |
926 EXPECT_TRUE(socket_data_->AllReadDataConsumed()); | 892 EXPECT_TRUE(socket_data_->AllReadDataConsumed()); |
927 EXPECT_TRUE(socket_data_->AllWriteDataConsumed()); | 893 EXPECT_TRUE(socket_data_->AllWriteDataConsumed()); |
928 EXPECT_TRUE(new_socket_data.AllReadDataConsumed()); | 894 EXPECT_TRUE(new_socket_data.AllReadDataConsumed()); |
929 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); | 895 EXPECT_TRUE(new_socket_data.AllWriteDataConsumed()); |
930 } | 896 } |
931 | 897 |
932 } // namespace | 898 } // namespace |
933 } // namespace test | 899 } // namespace test |
934 } // namespace net | 900 } // namespace net |
OLD | NEW |