| 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 <cmath> | 5 #include <cmath> |
| 6 #include <memory> | 6 #include <memory> |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 3588 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3599 TEST_F(SpdyNetworkTransactionTest, BufferFull) { | 3599 TEST_F(SpdyNetworkTransactionTest, BufferFull) { |
| 3600 SpdySerializedFrame req( | 3600 SpdySerializedFrame req( |
| 3601 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3601 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3602 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 3602 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 3603 | 3603 |
| 3604 // 2 data frames in a single read. | 3604 // 2 data frames in a single read. |
| 3605 SpdySerializedFrame data_frame_1( | 3605 SpdySerializedFrame data_frame_1( |
| 3606 spdy_util_.ConstructSpdyDataFrame(1, "goodby", 6, /*fin=*/false)); | 3606 spdy_util_.ConstructSpdyDataFrame(1, "goodby", 6, /*fin=*/false)); |
| 3607 SpdySerializedFrame data_frame_2( | 3607 SpdySerializedFrame data_frame_2( |
| 3608 spdy_util_.ConstructSpdyDataFrame(1, "e worl", 6, /*fin=*/false)); | 3608 spdy_util_.ConstructSpdyDataFrame(1, "e worl", 6, /*fin=*/false)); |
| 3609 const SpdySerializedFrame* data_frames[2] = { | 3609 SpdySerializedFrame combined_data_frames = |
| 3610 &data_frame_1, &data_frame_2, | 3610 CombineFrames({&data_frame_1, &data_frame_2}); |
| 3611 }; | 3611 |
| 3612 char combined_data_frames[100]; | |
| 3613 int combined_data_frames_len = | |
| 3614 CombineFrames(data_frames, arraysize(data_frames), | |
| 3615 combined_data_frames, arraysize(combined_data_frames)); | |
| 3616 SpdySerializedFrame last_frame( | 3612 SpdySerializedFrame last_frame( |
| 3617 spdy_util_.ConstructSpdyDataFrame(1, "d", 1, /*fin=*/true)); | 3613 spdy_util_.ConstructSpdyDataFrame(1, "d", 1, /*fin=*/true)); |
| 3618 | 3614 |
| 3619 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | 3615 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3620 MockRead reads[] = { | 3616 MockRead reads[] = { |
| 3621 CreateMockRead(resp, 1), | 3617 CreateMockRead(resp, 1), |
| 3622 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause | 3618 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause |
| 3623 MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3), | 3619 CreateMockRead(combined_data_frames, 3), |
| 3624 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause | 3620 MockRead(ASYNC, ERR_IO_PENDING, 4), // Force a pause |
| 3625 CreateMockRead(last_frame, 5), | 3621 CreateMockRead(last_frame, 5), |
| 3626 MockRead(ASYNC, 0, 6) // EOF | 3622 MockRead(ASYNC, 0, 6) // EOF |
| 3627 }; | 3623 }; |
| 3628 | 3624 |
| 3629 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3625 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3630 | 3626 |
| 3631 TestCompletionCallback callback; | 3627 TestCompletionCallback callback; |
| 3632 | 3628 |
| 3633 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 3629 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3689 TEST_F(SpdyNetworkTransactionTest, Buffering) { | 3685 TEST_F(SpdyNetworkTransactionTest, Buffering) { |
| 3690 SpdySerializedFrame req( | 3686 SpdySerializedFrame req( |
| 3691 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3687 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3692 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 3688 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 3693 | 3689 |
| 3694 // 4 data frames in a single read. | 3690 // 4 data frames in a single read. |
| 3695 SpdySerializedFrame data_frame( | 3691 SpdySerializedFrame data_frame( |
| 3696 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); | 3692 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); |
| 3697 SpdySerializedFrame data_frame_fin( | 3693 SpdySerializedFrame data_frame_fin( |
| 3698 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/true)); | 3694 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/true)); |
| 3699 const SpdySerializedFrame* data_frames[4] = {&data_frame, &data_frame, | 3695 SpdySerializedFrame combined_data_frames = |
| 3700 &data_frame, &data_frame_fin}; | 3696 CombineFrames({&data_frame, &data_frame, &data_frame, &data_frame_fin}); |
| 3701 char combined_data_frames[100]; | |
| 3702 int combined_data_frames_len = | |
| 3703 CombineFrames(data_frames, arraysize(data_frames), | |
| 3704 combined_data_frames, arraysize(combined_data_frames)); | |
| 3705 | 3697 |
| 3706 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | 3698 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3707 MockRead reads[] = { | 3699 MockRead reads[] = { |
| 3708 CreateMockRead(resp, 1), | 3700 CreateMockRead(resp, 1), |
| 3709 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause | 3701 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a pause |
| 3710 MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3), | 3702 CreateMockRead(combined_data_frames, 3), MockRead(ASYNC, 0, 4) // EOF |
| 3711 MockRead(ASYNC, 0, 4) // EOF | |
| 3712 }; | 3703 }; |
| 3713 | 3704 |
| 3714 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3705 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3715 | 3706 |
| 3716 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 3707 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 3717 NetLogWithSource(), nullptr); | 3708 NetLogWithSource(), nullptr); |
| 3718 helper.RunPreTestSetup(); | 3709 helper.RunPreTestSetup(); |
| 3719 helper.AddData(&data); | 3710 helper.AddData(&data); |
| 3720 HttpNetworkTransaction* trans = helper.trans(); | 3711 HttpNetworkTransaction* trans = helper.trans(); |
| 3721 | 3712 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3778 SpdySerializedFrame req( | 3769 SpdySerializedFrame req( |
| 3779 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3770 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3780 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 3771 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 3781 | 3772 |
| 3782 // 5 data frames in a single read. | 3773 // 5 data frames in a single read. |
| 3783 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | 3774 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3784 SpdySerializedFrame data_frame( | 3775 SpdySerializedFrame data_frame( |
| 3785 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); | 3776 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); |
| 3786 SpdySerializedFrame data_frame_fin( | 3777 SpdySerializedFrame data_frame_fin( |
| 3787 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/true)); | 3778 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/true)); |
| 3788 const SpdySerializedFrame* frames[5] = {&reply, &data_frame, &data_frame, | 3779 SpdySerializedFrame combined_frames = CombineFrames( |
| 3789 &data_frame, &data_frame_fin}; | 3780 {&reply, &data_frame, &data_frame, &data_frame, &data_frame_fin}); |
| 3790 char combined_frames[200]; | |
| 3791 int combined_frames_len = | |
| 3792 CombineFrames(frames, arraysize(frames), | |
| 3793 combined_frames, arraysize(combined_frames)); | |
| 3794 | 3781 |
| 3795 MockRead reads[] = { | 3782 MockRead reads[] = { |
| 3796 MockRead(ASYNC, combined_frames, combined_frames_len, 1), | 3783 CreateMockRead(combined_frames, 1), MockRead(ASYNC, 0, 2) // EOF |
| 3797 MockRead(ASYNC, 0, 2) // EOF | |
| 3798 }; | 3784 }; |
| 3799 | 3785 |
| 3800 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3786 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3801 | 3787 |
| 3802 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 3788 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 3803 NetLogWithSource(), nullptr); | 3789 NetLogWithSource(), nullptr); |
| 3804 helper.RunPreTestSetup(); | 3790 helper.RunPreTestSetup(); |
| 3805 helper.AddData(&data); | 3791 helper.AddData(&data); |
| 3806 HttpNetworkTransaction* trans = helper.trans(); | 3792 HttpNetworkTransaction* trans = helper.trans(); |
| 3807 | 3793 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3858 // Verify the case where we buffer data and close the connection. | 3844 // Verify the case where we buffer data and close the connection. |
| 3859 TEST_F(SpdyNetworkTransactionTest, BufferedClosed) { | 3845 TEST_F(SpdyNetworkTransactionTest, BufferedClosed) { |
| 3860 SpdySerializedFrame req( | 3846 SpdySerializedFrame req( |
| 3861 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 3847 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 3862 MockWrite writes[] = {CreateMockWrite(req, 0)}; | 3848 MockWrite writes[] = {CreateMockWrite(req, 0)}; |
| 3863 | 3849 |
| 3864 // All data frames in a single read. | 3850 // All data frames in a single read. |
| 3865 // NOTE: We don't FIN the stream. | 3851 // NOTE: We don't FIN the stream. |
| 3866 SpdySerializedFrame data_frame( | 3852 SpdySerializedFrame data_frame( |
| 3867 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); | 3853 spdy_util_.ConstructSpdyDataFrame(1, "message", 7, /*fin=*/false)); |
| 3868 const SpdySerializedFrame* data_frames[4] = {&data_frame, &data_frame, | 3854 SpdySerializedFrame combined_data_frames = |
| 3869 &data_frame, &data_frame}; | 3855 CombineFrames({&data_frame, &data_frame, &data_frame, &data_frame}); |
| 3870 char combined_data_frames[100]; | |
| 3871 int combined_data_frames_len = | |
| 3872 CombineFrames(data_frames, arraysize(data_frames), | |
| 3873 combined_data_frames, arraysize(combined_data_frames)); | |
| 3874 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | 3856 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 3875 MockRead reads[] = { | 3857 MockRead reads[] = { |
| 3876 CreateMockRead(resp, 1), | 3858 CreateMockRead(resp, 1), |
| 3877 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a wait | 3859 MockRead(ASYNC, ERR_IO_PENDING, 2), // Force a wait |
| 3878 MockRead(ASYNC, combined_data_frames, combined_data_frames_len, 3), | 3860 CreateMockRead(combined_data_frames, 3), MockRead(ASYNC, 0, 4) // EOF |
| 3879 MockRead(ASYNC, 0, 4) // EOF | |
| 3880 }; | 3861 }; |
| 3881 | 3862 |
| 3882 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); | 3863 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); |
| 3883 | 3864 |
| 3884 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 3865 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 3885 NetLogWithSource(), nullptr); | 3866 NetLogWithSource(), nullptr); |
| 3886 helper.RunPreTestSetup(); | 3867 helper.RunPreTestSetup(); |
| 3887 helper.AddData(&data); | 3868 helper.AddData(&data); |
| 3888 HttpNetworkTransaction* trans = helper.trans(); | 3869 HttpNetworkTransaction* trans = helper.trans(); |
| 3889 | 3870 |
| (...skipping 1744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5634 kSpdyMaxConcurrentPushedStreams; | 5615 kSpdyMaxConcurrentPushedStreams; |
| 5635 initial_settings[SETTINGS_INITIAL_WINDOW_SIZE] = stream_max_recv_window_size; | 5616 initial_settings[SETTINGS_INITIAL_WINDOW_SIZE] = stream_max_recv_window_size; |
| 5636 SpdySerializedFrame initial_settings_frame( | 5617 SpdySerializedFrame initial_settings_frame( |
| 5637 spdy_util_.ConstructSpdySettings(initial_settings)); | 5618 spdy_util_.ConstructSpdySettings(initial_settings)); |
| 5638 | 5619 |
| 5639 SpdySerializedFrame initial_window_update( | 5620 SpdySerializedFrame initial_window_update( |
| 5640 spdy_util_.ConstructSpdyWindowUpdate( | 5621 spdy_util_.ConstructSpdyWindowUpdate( |
| 5641 kSessionFlowControlStreamId, | 5622 kSessionFlowControlStreamId, |
| 5642 session_max_recv_window_size - kDefaultInitialWindowSize)); | 5623 session_max_recv_window_size - kDefaultInitialWindowSize)); |
| 5643 | 5624 |
| 5644 const SpdySerializedFrame* frames[3] = {&preface, &initial_settings_frame, | 5625 SpdySerializedFrame combined_frames = CombineFrames( |
| 5645 &initial_window_update}; | 5626 {&preface, &initial_settings_frame, &initial_window_update}); |
| 5646 char combined_frames[100]; | |
| 5647 int combined_frames_len = CombineFrames( | |
| 5648 frames, arraysize(frames), combined_frames, arraysize(combined_frames)); | |
| 5649 | 5627 |
| 5650 std::vector<MockWrite> writes; | 5628 std::vector<MockWrite> writes; |
| 5651 writes.push_back(MockWrite(ASYNC, combined_frames, combined_frames_len)); | 5629 writes.push_back(CreateMockWrite(combined_frames)); |
| 5652 | 5630 |
| 5653 SpdySerializedFrame req( | 5631 SpdySerializedFrame req( |
| 5654 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 5632 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 5655 writes.push_back(CreateMockWrite(req, writes.size())); | 5633 writes.push_back(CreateMockWrite(req, writes.size())); |
| 5656 | 5634 |
| 5657 std::vector<MockRead> reads; | 5635 std::vector<MockRead> reads; |
| 5658 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); | 5636 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 5659 reads.push_back(CreateMockRead(resp, writes.size() + reads.size())); | 5637 reads.push_back(CreateMockRead(resp, writes.size() + reads.size())); |
| 5660 | 5638 |
| 5661 std::vector<SpdySerializedFrame> body_frames; | 5639 std::vector<SpdySerializedFrame> body_frames; |
| (...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6641 | 6619 |
| 6642 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6620 TEST_F(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
| 6643 auto ssl_provider = base::MakeUnique<SSLSocketDataProvider>(ASYNC, OK); | 6621 auto ssl_provider = base::MakeUnique<SSLSocketDataProvider>(ASYNC, OK); |
| 6644 // Set to TLS_RSA_WITH_NULL_MD5 | 6622 // Set to TLS_RSA_WITH_NULL_MD5 |
| 6645 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6623 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
| 6646 | 6624 |
| 6647 RunTLSUsageCheckTest(std::move(ssl_provider)); | 6625 RunTLSUsageCheckTest(std::move(ssl_provider)); |
| 6648 } | 6626 } |
| 6649 | 6627 |
| 6650 } // namespace net | 6628 } // namespace net |
| OLD | NEW |