Extended tests for DefaultProxySelector
Project: http://git-wip-us.apache.org/repos/asf/maven-aether/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-aether/commit/ad273427 Tree: http://git-wip-us.apache.org/repos/asf/maven-aether/tree/ad273427 Diff: http://git-wip-us.apache.org/repos/asf/maven-aether/diff/ad273427 Branch: refs/heads/master Commit: ad273427e8c63b60f0a144fd22fdbbab8dd7a524 Parents: fbf380c Author: Benjamin Bentmann <bentm...@sonatype.com> Authored: Sat May 31 16:44:50 2014 +0200 Committer: Benjamin Bentmann <bentm...@sonatype.com> Committed: Sat May 31 16:44:50 2014 +0200 ---------------------------------------------------------------------- .../repository/DefaultProxySelectorTest.java | 70 ++++++++++++++++++++ 1 file changed, 70 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-aether/blob/ad273427/aether-util/src/test/java/org/eclipse/aether/util/repository/DefaultProxySelectorTest.java ---------------------------------------------------------------------- diff --git a/aether-util/src/test/java/org/eclipse/aether/util/repository/DefaultProxySelectorTest.java b/aether-util/src/test/java/org/eclipse/aether/util/repository/DefaultProxySelectorTest.java index 6ae5f2b..80392b1 100644 --- a/aether-util/src/test/java/org/eclipse/aether/util/repository/DefaultProxySelectorTest.java +++ b/aether-util/src/test/java/org/eclipse/aether/util/repository/DefaultProxySelectorTest.java @@ -14,6 +14,8 @@ import static org.junit.Assert.*; import java.util.Arrays; +import org.eclipse.aether.repository.Proxy; +import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.util.repository.DefaultProxySelector.NonProxyHosts; import org.junit.Test; @@ -22,6 +24,11 @@ import org.junit.Test; public class DefaultProxySelectorTest { + private RemoteRepository newRepo( String url ) + { + return new RemoteRepository.Builder( "id", "type", url ).build(); + } + private boolean isNonProxyHost( String host, String nonProxyHosts ) { return new NonProxyHosts( NonProxyHosts.split( nonProxyHosts ) ).isNonProxyHost( host ); @@ -90,4 +97,67 @@ public class DefaultProxySelectorTest assertTrue( isNonProxyHost( "www.ECLIPSE.org", "www.eclipse.org" ) ); } + @Test + public void testGetProxy_FirstMatchWins() + { + DefaultProxySelector selector = new DefaultProxySelector(); + Proxy proxy1 = new Proxy( Proxy.TYPE_HTTP, "proxy", 88 ); + selector.add( proxy1, "localhost" ); + Proxy proxy2 = new Proxy( Proxy.TYPE_HTTP, "other", 8888 ); + selector.add( proxy2, "" ); + + assertSame( proxy1, selector.getProxy( newRepo( "http://eclipse.org/" ) ) ); + assertSame( proxy2, selector.getProxy( newRepo( "http://localhost/" ) ) ); + } + + @Test + public void testGetProxy_Http() + { + DefaultProxySelector selector = new DefaultProxySelector(); + Proxy proxy1 = new Proxy( Proxy.TYPE_HTTP, "proxy", 88 ); + selector.add( proxy1, "localhost" ); + + assertSame( proxy1, selector.getProxy( newRepo( "http://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "HTTP://eclipse.org/" ) ) ); + + assertSame( proxy1, selector.getProxy( newRepo( "https://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "HTTPS://eclipse.org/" ) ) ); + + assertNull( selector.getProxy( newRepo( "http://localhost/" ) ) ); + + Proxy proxy2 = new Proxy( Proxy.TYPE_HTTPS, "sproxy", 888 ); + selector.add( proxy2, "localhost" ); + + assertSame( proxy1, selector.getProxy( newRepo( "http://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "HTTP://eclipse.org/" ) ) ); + + assertSame( proxy2, selector.getProxy( newRepo( "https://eclipse.org/" ) ) ); + assertSame( proxy2, selector.getProxy( newRepo( "HTTPS://eclipse.org/" ) ) ); + } + + @Test + public void testGetProxy_WebDav() + { + DefaultProxySelector selector = new DefaultProxySelector(); + Proxy proxy1 = new Proxy( Proxy.TYPE_HTTP, "proxy", 88 ); + selector.add( proxy1, "localhost" ); + + assertSame( proxy1, selector.getProxy( newRepo( "dav://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "dav:http://eclipse.org/" ) ) ); + + assertSame( proxy1, selector.getProxy( newRepo( "davs://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "dav:https://eclipse.org/" ) ) ); + + assertNull( selector.getProxy( newRepo( "dav://localhost/" ) ) ); + + Proxy proxy2 = new Proxy( Proxy.TYPE_HTTPS, "sproxy", 888 ); + selector.add( proxy2, "localhost" ); + + assertSame( proxy1, selector.getProxy( newRepo( "dav://eclipse.org/" ) ) ); + assertSame( proxy1, selector.getProxy( newRepo( "dav:http://eclipse.org/" ) ) ); + + assertSame( proxy2, selector.getProxy( newRepo( "davs://eclipse.org/" ) ) ); + assertSame( proxy2, selector.getProxy( newRepo( "dav:https://eclipse.org/" ) ) ); + } + }