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

Side by Side Diff: net/quic/chromium/quic_network_transaction_unittest.cc

Issue 2546533003: Respect QuicAllowed policy for new streams (Closed)
Patch Set: IOS io_thread also initializes DynamicSharedParams Created 4 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
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 <memory> 5 #include <memory>
6 #include <ostream> 6 #include <ostream>
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 bool should_include_version, 472 bool should_include_version,
473 bool fin, 473 bool fin,
474 SpdyHeaderBlock headers, 474 SpdyHeaderBlock headers,
475 QuicStreamOffset* offset) { 475 QuicStreamOffset* offset) {
476 return server_maker_.MakeResponseHeadersPacketWithOffsetTracking( 476 return server_maker_.MakeResponseHeadersPacketWithOffsetTracking(
477 packet_number, stream_id, should_include_version, fin, 477 packet_number, stream_id, should_include_version, fin,
478 std::move(headers), offset); 478 std::move(headers), offset);
479 } 479 }
480 480
481 void CreateSession() { 481 void CreateSession() {
482 params_.enable_quic = true; 482 params_.dynamic_shared_params = &dynamic_shared_params_;
483 dynamic_shared_params_.enable_quic = true;
483 params_.quic_clock = clock_; 484 params_.quic_clock = clock_;
484 params_.quic_random = &random_generator_; 485 params_.quic_random = &random_generator_;
485 params_.client_socket_factory = &socket_factory_; 486 params_.client_socket_factory = &socket_factory_;
486 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; 487 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_;
487 params_.host_resolver = &host_resolver_; 488 params_.host_resolver = &host_resolver_;
488 params_.cert_verifier = &cert_verifier_; 489 params_.cert_verifier = &cert_verifier_;
489 params_.transport_security_state = &transport_security_state_; 490 params_.transport_security_state = &transport_security_state_;
490 params_.cert_transparency_verifier = cert_transparency_verifier_.get(); 491 params_.cert_transparency_verifier = cert_transparency_verifier_.get();
491 params_.ct_policy_enforcer = &ct_policy_enforcer_; 492 params_.ct_policy_enforcer = &ct_policy_enforcer_;
492 params_.socket_performance_watcher_factory = 493 params_.socket_performance_watcher_factory =
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 TransportSecurityState transport_security_state_; 717 TransportSecurityState transport_security_state_;
717 std::unique_ptr<CTVerifier> cert_transparency_verifier_; 718 std::unique_ptr<CTVerifier> cert_transparency_verifier_;
718 CTPolicyEnforcer ct_policy_enforcer_; 719 CTPolicyEnforcer ct_policy_enforcer_;
719 TestSocketPerformanceWatcherFactory test_socket_performance_watcher_factory_; 720 TestSocketPerformanceWatcherFactory test_socket_performance_watcher_factory_;
720 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; 721 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_;
721 std::unique_ptr<ProxyService> proxy_service_; 722 std::unique_ptr<ProxyService> proxy_service_;
722 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_; 723 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_;
723 MockRandom random_generator_; 724 MockRandom random_generator_;
724 HttpServerPropertiesImpl http_server_properties_; 725 HttpServerPropertiesImpl http_server_properties_;
725 HttpNetworkSession::Params params_; 726 HttpNetworkSession::Params params_;
727 HttpNetworkSession::DynamicSharedParams dynamic_shared_params_;
726 HttpRequestInfo request_; 728 HttpRequestInfo request_;
727 BoundTestNetLog net_log_; 729 BoundTestNetLog net_log_;
728 std::vector<std::unique_ptr<StaticSocketDataProvider>> hanging_data_; 730 std::vector<std::unique_ptr<StaticSocketDataProvider>> hanging_data_;
729 SSLSocketDataProvider ssl_data_; 731 SSLSocketDataProvider ssl_data_;
730 732
731 private: 733 private:
732 void SendRequestAndExpectQuicResponseMaybeFromProxy( 734 void SendRequestAndExpectQuicResponseMaybeFromProxy(
733 const std::string& expected, 735 const std::string& expected,
734 bool used_proxy, 736 bool used_proxy,
735 uint16_t port) { 737 uint16_t port) {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 mock_quic_data.AddSocketDataToFactory(&socket_factory_); 848 mock_quic_data.AddSocketDataToFactory(&socket_factory_);
847 849
848 CreateSession(); 850 CreateSession();
849 851
850 SendRequestAndExpectQuicResponse("hello!"); 852 SendRequestAndExpectQuicResponse("hello!");
851 EXPECT_TRUE( 853 EXPECT_TRUE(
852 test_socket_performance_watcher_factory_.rtt_notification_received()); 854 test_socket_performance_watcher_factory_.rtt_notification_received());
853 } 855 }
854 856
855 TEST_P(QuicNetworkTransactionTest, QuicProxy) { 857 TEST_P(QuicNetworkTransactionTest, QuicProxy) {
856 params_.enable_quic = true; 858 dynamic_shared_params_.enable_quic = true;
857 proxy_service_ = 859 proxy_service_ =
858 ProxyService::CreateFixedFromPacResult("QUIC mail.example.org:70"); 860 ProxyService::CreateFixedFromPacResult("QUIC mail.example.org:70");
859 861
860 MockQuicData mock_quic_data; 862 MockQuicData mock_quic_data;
861 QuicStreamOffset header_stream_offset = 0; 863 QuicStreamOffset header_stream_offset = 0;
862 mock_quic_data.AddWrite(ConstructSettingsPacket( 864 mock_quic_data.AddWrite(ConstructSettingsPacket(
863 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 865 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
864 &header_stream_offset)); 866 &header_stream_offset));
865 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( 867 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
866 2, kClientDataStreamId1, true, true, 868 2, kClientDataStreamId1, true, true,
(...skipping 21 matching lines...) Expand all
888 test_socket_performance_watcher_factory_.rtt_notification_received()); 890 test_socket_performance_watcher_factory_.rtt_notification_received());
889 } 891 }
890 892
891 // Regression test for https://crbug.com/492458. Test that for an HTTP 893 // Regression test for https://crbug.com/492458. Test that for an HTTP
892 // connection through a QUIC proxy, the certificate exhibited by the proxy is 894 // connection through a QUIC proxy, the certificate exhibited by the proxy is
893 // checked against the proxy hostname, not the origin hostname. 895 // checked against the proxy hostname, not the origin hostname.
894 TEST_P(QuicNetworkTransactionTest, QuicProxyWithCert) { 896 TEST_P(QuicNetworkTransactionTest, QuicProxyWithCert) {
895 const std::string origin_host = "mail.example.com"; 897 const std::string origin_host = "mail.example.com";
896 const std::string proxy_host = "www.example.org"; 898 const std::string proxy_host = "www.example.org";
897 899
898 params_.enable_quic = true; 900 dynamic_shared_params_.enable_quic = true;
899 proxy_service_ = 901 proxy_service_ =
900 ProxyService::CreateFixedFromPacResult("QUIC " + proxy_host + ":70"); 902 ProxyService::CreateFixedFromPacResult("QUIC " + proxy_host + ":70");
901 903
902 client_maker_.set_hostname(origin_host); 904 client_maker_.set_hostname(origin_host);
903 MockQuicData mock_quic_data; 905 MockQuicData mock_quic_data;
904 QuicStreamOffset header_stream_offset = 0; 906 QuicStreamOffset header_stream_offset = 0;
905 mock_quic_data.AddWrite(ConstructSettingsPacket( 907 mock_quic_data.AddWrite(ConstructSettingsPacket(
906 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 908 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
907 &header_stream_offset)); 909 &header_stream_offset));
908 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( 910 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket(
(...skipping 2115 matching lines...) Expand 10 before | Expand all | Expand 10 after
3024 3026
3025 HttpNetworkSession::Params params; 3027 HttpNetworkSession::Params params;
3026 3028
3027 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); 3029 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20));
3028 params.quic_clock = clock_; 3030 params.quic_clock = clock_;
3029 3031
3030 crypto_client_stream_factory_.set_handshake_mode( 3032 crypto_client_stream_factory_.set_handshake_mode(
3031 MockCryptoClientStream::CONFIRM_HANDSHAKE); 3033 MockCryptoClientStream::CONFIRM_HANDSHAKE);
3032 params.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; 3034 params.quic_crypto_client_stream_factory = &crypto_client_stream_factory_;
3033 3035
3034 params.enable_quic = true; 3036 dynamic_shared_params_.enable_quic = true;
3037 params.dynamic_shared_params = &dynamic_shared_params_;
3035 params.quic_random = &random_generator_; 3038 params.quic_random = &random_generator_;
3036 params.client_socket_factory = &socket_factory_; 3039 params.client_socket_factory = &socket_factory_;
3037 params.host_resolver = &host_resolver_; 3040 params.host_resolver = &host_resolver_;
3038 params.cert_verifier = &cert_verifier_; 3041 params.cert_verifier = &cert_verifier_;
3039 params.transport_security_state = &transport_security_state_; 3042 params.transport_security_state = &transport_security_state_;
3040 params.cert_transparency_verifier = cert_transparency_verifier_.get(); 3043 params.cert_transparency_verifier = cert_transparency_verifier_.get();
3041 params.ct_policy_enforcer = &ct_policy_enforcer_; 3044 params.ct_policy_enforcer = &ct_policy_enforcer_;
3042 params.socket_performance_watcher_factory = 3045 params.socket_performance_watcher_factory =
3043 &test_socket_performance_watcher_factory_; 3046 &test_socket_performance_watcher_factory_;
3044 params.ssl_config_service = ssl_config_service_.get(); 3047 params.ssl_config_service = ssl_config_service_.get();
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
3227 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; 3230 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_;
3228 std::unique_ptr<ProxyService> proxy_service_; 3231 std::unique_ptr<ProxyService> proxy_service_;
3229 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_; 3232 std::unique_ptr<HttpAuthHandlerFactory> auth_handler_factory_;
3230 MockRandom random_generator_; 3233 MockRandom random_generator_;
3231 HttpServerPropertiesImpl http_server_properties_; 3234 HttpServerPropertiesImpl http_server_properties_;
3232 BoundTestNetLog net_log_; 3235 BoundTestNetLog net_log_;
3233 MockCryptoClientStreamFactory crypto_client_stream_factory_; 3236 MockCryptoClientStreamFactory crypto_client_stream_factory_;
3234 std::vector<std::unique_ptr<StaticSocketDataProvider>> 3237 std::vector<std::unique_ptr<StaticSocketDataProvider>>
3235 static_socket_data_provider_vector_; 3238 static_socket_data_provider_vector_;
3236 SSLSocketDataProvider ssl_data_; 3239 SSLSocketDataProvider ssl_data_;
3240 HttpNetworkSession::DynamicSharedParams dynamic_shared_params_;
3237 }; 3241 };
3238 3242
3239 INSTANTIATE_TEST_CASE_P(Version, 3243 INSTANTIATE_TEST_CASE_P(Version,
3240 QuicNetworkTransactionWithDestinationTest, 3244 QuicNetworkTransactionWithDestinationTest,
3241 ::testing::ValuesIn(GetPoolingTestParams())); 3245 ::testing::ValuesIn(GetPoolingTestParams()));
3242 3246
3243 // A single QUIC request fails because the certificate does not match the origin 3247 // A single QUIC request fails because the certificate does not match the origin
3244 // hostname, regardless of whether it matches the alternative service hostname. 3248 // hostname, regardless of whether it matches the alternative service hostname.
3245 TEST_P(QuicNetworkTransactionWithDestinationTest, InvalidCertificate) { 3249 TEST_P(QuicNetworkTransactionWithDestinationTest, InvalidCertificate) {
3246 if (destination_type_ == DIFFERENT) 3250 if (destination_type_ == DIFFERENT)
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
3438 AddHangingSocketData(); 3442 AddHangingSocketData();
3439 3443
3440 SendRequestAndExpectQuicResponse(origin1_); 3444 SendRequestAndExpectQuicResponse(origin1_);
3441 SendRequestAndExpectQuicResponse(origin2_); 3445 SendRequestAndExpectQuicResponse(origin2_);
3442 3446
3443 EXPECT_TRUE(AllDataConsumed()); 3447 EXPECT_TRUE(AllDataConsumed());
3444 } 3448 }
3445 3449
3446 } // namespace test 3450 } // namespace test
3447 } // namespace net 3451 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698