Chromium Code Reviews| Index: net/socket/ssl_client_socket_unittest.cc |
| diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc |
| index 957b772b3276f7766912b461cdc280a0b35e5791..3113c94ca49b127bf6492f41d108f7751cfda8d6 100644 |
| --- a/net/socket/ssl_client_socket_unittest.cc |
| +++ b/net/socket/ssl_client_socket_unittest.cc |
| @@ -3104,6 +3104,41 @@ TEST_F(SSLClientSocketTest, DeprecatedShardSessionCache) { |
| EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, ssl_info.handshake_type); |
| } |
| +TEST_F(SSLClientSocketTest, RequireECDHE) { |
| + // Run test server without ECDHE. |
| + SpawnedTestServer::SSLOptions ssl_options( |
| + SpawnedTestServer::SSLOptions::CERT_MISMATCHED_NAME); |
|
davidben
2015/06/16 19:18:21
This should just be the parameterless one I think.
Sergey Ulanov
2015/06/16 19:29:07
Done
|
| + ssl_options.key_exchanges = SpawnedTestServer::SSLOptions::KEY_EXCHANGE_RSA; |
| + SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS, ssl_options, |
| + base::FilePath()); |
| + ASSERT_TRUE(test_server.Start()); |
| + |
| + AddressList addr; |
| + ASSERT_TRUE(test_server.GetAddressList(&addr)); |
| + |
| + TestCompletionCallback callback; |
| + TestNetLog log; |
| + scoped_ptr<StreamSocket> transport( |
| + new TCPClientSocket(addr, &log, NetLog::Source())); |
| + int rv = transport->Connect(callback.callback()); |
| + if (rv == ERR_IO_PENDING) |
| + rv = callback.WaitForResult(); |
|
davidben
2015/06/16 19:18:21
Nit: This can be
int rv = ....(callback.callbac
Sergey Ulanov
2015/06/16 19:29:07
Done.
|
| + EXPECT_EQ(OK, rv); |
| + |
| + SSLConfig config; |
| + config.require_ecdhe = true; |
| + |
| + scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket( |
| + transport.Pass(), test_server.host_port_pair(), config)); |
| + |
| + rv = sock->Connect(callback.callback()); |
| + |
| + if (rv == ERR_IO_PENDING) |
| + rv = callback.WaitForResult(); |
| + |
| + EXPECT_EQ(ERR_SSL_VERSION_OR_CIPHER_MISMATCH, rv); |
| +} |
| + |
| TEST_F(SSLClientSocketFalseStartTest, FalseStartEnabled) { |
| if (!SupportsAESGCM()) { |
| LOG(WARNING) << "Skipping test because AES-GCM is not supported."; |