Index: chrome/browser/extensions/api/sockets_tcp/sockets_tcp_apitest.cc |
diff --git a/chrome/browser/extensions/api/sockets_tcp/sockets_tcp_apitest.cc b/chrome/browser/extensions/api/sockets_tcp/sockets_tcp_apitest.cc |
index 276c1e6171119ff354008c678566dd8b55ccfbdb..44d315933a67c3c9260413c8f23f6128b3524a7e 100644 |
--- a/chrome/browser/extensions/api/sockets_tcp/sockets_tcp_apitest.cc |
+++ b/chrome/browser/extensions/api/sockets_tcp/sockets_tcp_apitest.cc |
@@ -88,7 +88,10 @@ IN_PROC_BROWSER_TEST_F(SocketsTcpApiTest, SocketTcpExtension) { |
net::SpawnedTestServer::TYPE_TCP_ECHO, |
net::SpawnedTestServer::kLocalhost, |
base::FilePath(FILE_PATH_LITERAL("net/data")))); |
- EXPECT_TRUE(test_server->Start()); |
+ |
+ // Start them in parallel. |
+ EXPECT_TRUE(test_server->StartInBackground()); |
+ EXPECT_TRUE(test_server->BlockUntilStarted()); |
net::HostPortPair host_port_pair = test_server->host_port_pair(); |
int port = host_port_pair.port(); |
@@ -109,3 +112,46 @@ IN_PROC_BROWSER_TEST_F(SocketsTcpApiTest, SocketTcpExtension) { |
EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(SocketsTcpApiTest, SocketTcpExtensionTLS) { |
+ scoped_ptr<net::SpawnedTestServer> test_tcp_server(new net::SpawnedTestServer( |
+ net::SpawnedTestServer::TYPE_TCP_ECHO, |
+ net::SpawnedTestServer::kLocalhost, |
+ base::FilePath(FILE_PATH_LITERAL("net/data")))); |
+ scoped_ptr<net::SpawnedTestServer> test_https_server( |
+ new net::SpawnedTestServer( |
+ net::SpawnedTestServer::TYPE_HTTPS, |
+ net::BaseTestServer::SSLOptions(), |
+ base::FilePath(FILE_PATH_LITERAL("net/data")))); |
+ // Start the servers in parallel. |
+ EXPECT_TRUE(test_tcp_server->StartInBackground()); |
+ EXPECT_TRUE(test_https_server->StartInBackground()); |
+ EXPECT_TRUE(test_tcp_server->BlockUntilStarted()); |
+ EXPECT_TRUE(test_https_server->BlockUntilStarted()); |
+ |
+ net::HostPortPair tcp_host_port_pair = test_tcp_server->host_port_pair(); |
+ int tcp_port = tcp_host_port_pair.port(); |
+ ASSERT_TRUE(tcp_port > 0); |
+ |
+ net::HostPortPair https_host_port_pair = test_https_server->host_port_pair(); |
+ int https_port = https_host_port_pair.port(); |
+ ASSERT_TRUE(https_port > 0); |
+ |
+ // Test that connect() is properly resolving hostnames. |
+ tcp_host_port_pair.set_host("lOcAlHoSt"); |
+ |
+ ResultCatcher catcher; |
+ catcher.RestrictToProfile(browser()->profile()); |
+ |
+ ExtensionTestMessageListener listener("info_please", true); |
+ |
+ ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("sockets_tcp/api"))); |
+ EXPECT_TRUE(listener.WaitUntilSatisfied()); |
+ listener.Reply(base::StringPrintf("tcp:%s:%d,https:%s:%d", |
+ tcp_host_port_pair.host().c_str(), |
+ tcp_port, |
+ https_host_port_pair.host().c_str(), |
+ https_port)); |
+ |
+ EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
+} |