| 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/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
| 10 #include "net/base/test_data_directory.h" | 10 #include "net/base/test_data_directory.h" |
| (...skipping 2714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2725 // QuicStreamFactory::OnSessionClosed() runs. | 2725 // QuicStreamFactory::OnSessionClosed() runs. |
| 2726 base::RunLoop run_loop2; | 2726 base::RunLoop run_loop2; |
| 2727 run_loop2.RunUntilIdle(); | 2727 run_loop2.RunUntilIdle(); |
| 2728 EXPECT_EQ( | 2728 EXPECT_EQ( |
| 2729 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 2729 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 2730 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2730 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2731 host_port_pair_.port())); | 2731 host_port_pair_.port())); |
| 2732 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, | 2732 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, |
| 2733 factory_->QuicDisabledReason(host_port_pair_.port())); | 2733 factory_->QuicDisabledReason(host_port_pair_.port())); |
| 2734 | 2734 |
| 2735 // Verify that QUIC is un-disabled after a TCP job fails. |
| 2736 factory_->OnTcpJobCompleted(/*succeeded=*/false); |
| 2737 EXPECT_EQ( |
| 2738 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 2739 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2740 host_port_pair_.port())); |
| 2741 |
| 2735 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2742 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2736 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2743 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2737 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2744 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 2738 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2745 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 2739 } | 2746 } |
| 2740 | 2747 |
| 2741 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { | 2748 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
| 2742 disable_disk_cache_ = true; | 2749 disable_disk_cache_ = true; |
| 2743 threshold_public_resets_post_handshake_ = 2; | 2750 threshold_public_resets_post_handshake_ = 2; |
| 2744 Initialize(); | 2751 Initialize(); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2964 run_loop3.RunUntilIdle(); | 2971 run_loop3.RunUntilIdle(); |
| 2965 EXPECT_EQ( | 2972 EXPECT_EQ( |
| 2966 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 2973 2, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 2967 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2974 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2968 host_port_pair_.port())); | 2975 host_port_pair_.port())); |
| 2969 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, | 2976 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, |
| 2970 factory_->QuicDisabledReason(host_port_pair_.port())); | 2977 factory_->QuicDisabledReason(host_port_pair_.port())); |
| 2971 | 2978 |
| 2972 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 2979 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
| 2973 EXPECT_TRUE(stream2.get()); | 2980 EXPECT_TRUE(stream2.get()); |
| 2981 |
| 2982 // Verify that QUIC is un-disabled after a network change. |
| 2983 factory_->OnIPAddressChanged(); |
| 2984 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2985 host_port_pair_.port())); |
| 2986 EXPECT_EQ( |
| 2987 0, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 2988 |
| 2974 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2989 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2975 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2990 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2976 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2991 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 2977 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2992 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 2978 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2993 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2979 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2994 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2980 } | 2995 } |
| 2981 | 2996 |
| 2982 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) { | 2997 TEST_P(QuicStreamFactoryTest, DisableQuicWhenTimeoutsWithOpenStreams) { |
| 2983 disable_disk_cache_ = true; | 2998 disable_disk_cache_ = true; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3028 run_loop.RunUntilIdle(); | 3043 run_loop.RunUntilIdle(); |
| 3029 | 3044 |
| 3030 EXPECT_EQ( | 3045 EXPECT_EQ( |
| 3031 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 3046 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 3032 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3047 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 3033 host_port_pair_.port())); | 3048 host_port_pair_.port())); |
| 3034 | 3049 |
| 3035 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, | 3050 EXPECT_EQ(QuicChromiumClientSession::QUIC_DISABLED_TIMEOUT_WITH_OPEN_STREAMS, |
| 3036 factory_->QuicDisabledReason(host_port_pair_.port())); | 3051 factory_->QuicDisabledReason(host_port_pair_.port())); |
| 3037 | 3052 |
| 3053 // Verify that QUIC is fully disabled after a TCP job succeeds. |
| 3054 factory_->OnTcpJobCompleted(/*succeeded=*/true); |
| 3055 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 3056 host_port_pair_.port())); |
| 3057 |
| 3058 // Verify that QUIC stays disabled after a TCP job succeeds. |
| 3059 factory_->OnTcpJobCompleted(/*succeeded=*/false); |
| 3060 EXPECT_TRUE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 3061 host_port_pair_.port())); |
| 3062 |
| 3038 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3063 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 3039 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3064 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 3040 } | 3065 } |
| 3041 | 3066 |
| 3042 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { | 3067 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
| 3043 disable_disk_cache_ = true; | 3068 disable_disk_cache_ = true; |
| 3044 threshold_public_resets_post_handshake_ = 2; | 3069 threshold_public_resets_post_handshake_ = 2; |
| 3045 Initialize(); | 3070 Initialize(); |
| 3046 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 3071 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 3047 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 3072 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3316 run_loop4.RunUntilIdle(); | 3341 run_loop4.RunUntilIdle(); |
| 3317 EXPECT_EQ( | 3342 EXPECT_EQ( |
| 3318 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); | 3343 1, QuicStreamFactoryPeer::GetNumTimeoutsWithOpenStreams(factory_.get())); |
| 3319 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 3344 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 3320 host_port_pair_.port())); | 3345 host_port_pair_.port())); |
| 3321 | 3346 |
| 3322 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 3347 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
| 3323 EXPECT_TRUE(stream2.get()); | 3348 EXPECT_TRUE(stream2.get()); |
| 3324 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); | 3349 scoped_ptr<QuicHttpStream> stream3 = request3.ReleaseStream(); |
| 3325 EXPECT_TRUE(stream3.get()); | 3350 EXPECT_TRUE(stream3.get()); |
| 3351 |
| 3326 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3352 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 3327 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 3353 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 3328 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3354 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 3329 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3355 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 3330 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 3356 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 3331 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 3357 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 3332 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 3358 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 3333 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 3359 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 3334 } | 3360 } |
| 3335 | 3361 |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3675 EXPECT_TRUE(stream2.get()); | 3701 EXPECT_TRUE(stream2.get()); |
| 3676 | 3702 |
| 3677 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 3703 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 3678 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 3704 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 3679 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 3705 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 3680 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 3706 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 3681 } | 3707 } |
| 3682 | 3708 |
| 3683 } // namespace test | 3709 } // namespace test |
| 3684 } // namespace net | 3710 } // namespace net |
| OLD | NEW |