From 610dcd974d1fb96f81af782ef99808f294be8f22 Mon Sep 17 00:00:00 2001 From: David Kocher Date: Wed, 6 May 2015 07:59:17 +0000 Subject: [PATCH] Add test. Former-commit-id: 5fa05b063b7a37c7c14c93ee2d35895b156d1d33 --- .../core/ProxySocketFactoryTest.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/test/ch/cyberduck/core/ProxySocketFactoryTest.java b/test/ch/cyberduck/core/ProxySocketFactoryTest.java index 5f716ee537b..dfef83b9738 100644 --- a/test/ch/cyberduck/core/ProxySocketFactoryTest.java +++ b/test/ch/cyberduck/core/ProxySocketFactoryTest.java @@ -25,11 +25,14 @@ import org.junit.Test; +import java.net.Inet4Address; +import java.net.Inet6Address; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketException; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class ProxySocketFactoryTest extends AbstractTestCase { @@ -65,4 +68,30 @@ public Proxy find(final Host target) { assertNotNull(socket); socket.connect(new InetSocketAddress("test.cyberduck.ch", 21)); } -} + + @Test + public void testCreateSocketIPv6Localhost() throws Exception { + System.setProperty("java.net.preferIPv6Addresses", String.valueOf(true)); + final Socket socket = new ProxySocketFactory(ProtocolFactory.SFTP, new TrustManagerHostnameCallback() { + @Override + public String getTarget() { + return "localhost"; + } + }).createSocket("::1", 22); + assertNotNull(socket); + assertTrue(socket.getInetAddress() instanceof Inet6Address); + } + + @Test + public void testCreateSocketDualStackGoogle() throws Exception { + final Socket socket = new ProxySocketFactory(ProtocolFactory.WEBDAV, new TrustManagerHostnameCallback() { + @Override + public String getTarget() { + return "localhost"; + } + }).createSocket("ipv6test.google.com", 80); + assertNotNull(socket); + // We have set `java.net.preferIPv6Addresses` to `false` by default + assertTrue(socket.getInetAddress() instanceof Inet4Address); + } +} \ No newline at end of file