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 |