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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <shlobj.h> | 9 #include <shlobj.h> |
10 #endif | 10 #endif |
(...skipping 7115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7126 if (err_allowed) { | 7126 if (err_allowed) { |
7127 EXPECT_NE(0, d.bytes_received()); | 7127 EXPECT_NE(0, d.bytes_received()); |
7128 CheckSSLInfo(r->ssl_info()); | 7128 CheckSSLInfo(r->ssl_info()); |
7129 } else { | 7129 } else { |
7130 EXPECT_EQ(0, d.bytes_received()); | 7130 EXPECT_EQ(0, d.bytes_received()); |
7131 } | 7131 } |
7132 } | 7132 } |
7133 } | 7133 } |
7134 } | 7134 } |
7135 | 7135 |
| 7136 // Tests that servers which require a deprecated cipher suite still work. |
| 7137 TEST_F(HTTPSRequestTest, CipherFallbackTest) { |
| 7138 CapturingNetLog net_log; |
| 7139 default_context_.set_net_log(&net_log); |
| 7140 |
| 7141 SpawnedTestServer::SSLOptions ssl_options; |
| 7142 ssl_options.bulk_ciphers = SpawnedTestServer::SSLOptions::BULK_CIPHER_RC4; |
| 7143 SpawnedTestServer test_server( |
| 7144 SpawnedTestServer::TYPE_HTTPS, ssl_options, |
| 7145 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
| 7146 ASSERT_TRUE(test_server.Start()); |
| 7147 |
| 7148 TestDelegate d; |
| 7149 { |
| 7150 scoped_ptr<URLRequest> r(default_context_.CreateRequest( |
| 7151 test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d)); |
| 7152 r->Start(); |
| 7153 EXPECT_TRUE(r->is_pending()); |
| 7154 |
| 7155 base::RunLoop().Run(); |
| 7156 |
| 7157 EXPECT_EQ(1, d.response_started_count()); |
| 7158 EXPECT_FALSE(d.received_data_before_response()); |
| 7159 EXPECT_NE(0, d.bytes_received()); |
| 7160 CheckSSLInfo(r->ssl_info()); |
| 7161 EXPECT_EQ(test_server.host_port_pair().host(), |
| 7162 r->GetSocketAddress().host()); |
| 7163 EXPECT_EQ(test_server.host_port_pair().port(), |
| 7164 r->GetSocketAddress().port()); |
| 7165 |
| 7166 // No version downgrade should have been necessary. |
| 7167 EXPECT_FALSE(r->ssl_info().connection_status & |
| 7168 SSL_CONNECTION_VERSION_FALLBACK); |
| 7169 int expected_version = SSL_CONNECTION_VERSION_TLS1_2; |
| 7170 if (SSLClientSocket::GetMaxSupportedSSLVersion() < |
| 7171 SSL_PROTOCOL_VERSION_TLS1_2) { |
| 7172 expected_version = SSL_CONNECTION_VERSION_TLS1_1; |
| 7173 } |
| 7174 EXPECT_EQ(expected_version, |
| 7175 SSLConnectionStatusToVersion(r->ssl_info().connection_status)); |
| 7176 |
| 7177 CapturingNetLog::CapturedEntryList entries; |
| 7178 net_log.GetEntries(&entries); |
| 7179 ExpectLogContainsSomewhere(entries, 0, NetLog::TYPE_SSL_CIPHER_FALLBACK, |
| 7180 NetLog::PHASE_NONE); |
| 7181 } |
| 7182 } |
| 7183 |
7136 // This tests that a load of www.google.com with a certificate error sets | 7184 // This tests that a load of www.google.com with a certificate error sets |
7137 // the |certificate_errors_are_fatal| flag correctly. This flag will cause | 7185 // the |certificate_errors_are_fatal| flag correctly. This flag will cause |
7138 // the interstitial to be fatal. | 7186 // the interstitial to be fatal. |
7139 TEST_F(HTTPSRequestTest, HTTPSPreloadedHSTSTest) { | 7187 TEST_F(HTTPSRequestTest, HTTPSPreloadedHSTSTest) { |
7140 SpawnedTestServer::SSLOptions ssl_options( | 7188 SpawnedTestServer::SSLOptions ssl_options( |
7141 SpawnedTestServer::SSLOptions::CERT_MISMATCHED_NAME); | 7189 SpawnedTestServer::SSLOptions::CERT_MISMATCHED_NAME); |
7142 SpawnedTestServer test_server( | 7190 SpawnedTestServer test_server( |
7143 SpawnedTestServer::TYPE_HTTPS, | 7191 SpawnedTestServer::TYPE_HTTPS, |
7144 ssl_options, | 7192 ssl_options, |
7145 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); | 7193 base::FilePath(FILE_PATH_LITERAL("net/data/ssl"))); |
(...skipping 1793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8939 | 8987 |
8940 EXPECT_FALSE(r->is_pending()); | 8988 EXPECT_FALSE(r->is_pending()); |
8941 EXPECT_EQ(1, d->response_started_count()); | 8989 EXPECT_EQ(1, d->response_started_count()); |
8942 EXPECT_FALSE(d->received_data_before_response()); | 8990 EXPECT_FALSE(d->received_data_before_response()); |
8943 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8991 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
8944 } | 8992 } |
8945 } | 8993 } |
8946 #endif // !defined(DISABLE_FTP_SUPPORT) | 8994 #endif // !defined(DISABLE_FTP_SUPPORT) |
8947 | 8995 |
8948 } // namespace net | 8996 } // namespace net |
OLD | NEW |