You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2008/07/30 14:12:53 UTC
svn commit: r680995 - in /maven/wagon/trunk/wagon-providers/wagon-ssh: ./
src/test/java/org/apache/maven/wagon/providers/ssh/jsch/
Author: brett
Date: Wed Jul 30 05:12:51 2008
New Revision: 680995
URL: http://svn.apache.org/viewvc?rev=680995&view=rev
Log:
wagon ssh tests using proxy
Added:
maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java (with props)
Modified:
maven/wagon/trunk/wagon-providers/wagon-ssh/pom.xml
maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithSshPrivateKeySearchTest.java
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh/pom.xml
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh/pom.xml?rev=680995&r1=680994&r2=680995&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/pom.xml (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/pom.xml Wed Jul 30 05:12:51 2008
@@ -53,5 +53,11 @@
<artifactId>wagon-ssh-common-test</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.11</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Added: maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java?rev=680995&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java Wed Jul 30 05:12:51 2008
@@ -0,0 +1,206 @@
+package org.apache.maven.wagon.providers.ssh.jsch;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+import java.util.Random;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.authentication.AuthenticationException;
+import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.apache.maven.wagon.repository.Repository;
+import org.codehaus.plexus.PlexusTestCase;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.handler.AbstractHandler;
+
+public class ScpWagonWithProxyTest
+ extends PlexusTestCase
+{
+ private boolean handled;
+
+ public void testHttpProxy()
+ throws Exception
+ {
+ handled = false;
+ Handler handler = new AbstractHandler()
+ {
+ public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+ throws IOException, ServletException
+ {
+ assertEquals( "CONNECT", request.getMethod() );
+
+ handled = true;
+ ( (Request) request ).setHandled( true );
+ }
+ };
+
+ Server server = new Server( 0 );
+ server.setHandler( handler );
+ server.start();
+
+ int port = server.getConnectors()[0].getLocalPort();
+ ProxyInfo proxyInfo = new ProxyInfo();
+ proxyInfo.setHost( "localhost" );
+ proxyInfo.setPort( port );
+ proxyInfo.setType( "http" );
+ proxyInfo.setNonProxyHosts( null );
+
+ Wagon wagon = (Wagon) lookup( Wagon.ROLE, "scp" );
+ try
+ {
+ wagon.connect( new Repository( "id", "scp://localhost/tmp" ), proxyInfo );
+ fail();
+ }
+ catch ( AuthenticationException e )
+ {
+ assertTrue( handled );
+ }
+ finally
+ {
+ if ( server != null )
+ {
+ server.stop();
+ }
+ }
+ }
+
+ public void testSocksProxy()
+ throws Exception
+ {
+ handled = false;
+
+ int port = ( Math.abs( new Random().nextInt() ) % 2048 ) + 1024;
+
+ SocksServer s = new SocksServer( port );
+ Thread t = new Thread( s );
+ t.setDaemon( true );
+ t.start();
+
+ ProxyInfo proxyInfo = new ProxyInfo();
+ proxyInfo.setHost( "localhost" );
+ proxyInfo.setPort( port );
+ proxyInfo.setType( "socks_5" );
+ proxyInfo.setNonProxyHosts( null );
+
+ Wagon wagon = (Wagon) lookup( Wagon.ROLE, "scp" );
+ try
+ {
+ wagon.connect( new Repository( "id", "scp://localhost/tmp" ), proxyInfo );
+ fail();
+ }
+ catch ( AuthenticationException e )
+ {
+ assertTrue( handled );
+ }
+ finally
+ {
+ t.interrupt();
+ }
+ }
+
+ private final class SocksServer
+ implements Runnable
+ {
+
+ private final int port;
+
+ private String userAgent;
+
+ private SocksServer( int port )
+ {
+ this.port = port;
+ }
+
+ public void run()
+ {
+ ServerSocket ssock = null;
+ try
+ {
+ try
+ {
+ ssock = new ServerSocket( port );
+ ssock.setSoTimeout( 2000 );
+ }
+ catch ( IOException e )
+ {
+ return;
+ }
+
+ while ( !Thread.currentThread().isInterrupted() )
+ {
+ Socket sock = null;
+ try
+ {
+ try
+ {
+ sock = ssock.accept();
+ }
+ catch ( SocketTimeoutException e )
+ {
+ continue;
+ }
+
+ handled = true;
+ }
+ catch ( IOException e )
+ {
+ }
+ finally
+ {
+ if ( sock != null )
+ {
+ try
+ {
+ sock.close();
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+ }
+ }
+ }
+ finally
+ {
+ if ( ssock != null )
+ {
+ try
+ {
+ ssock.close();
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+ }
+ }
+ }
+}
Propchange: maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithProxyTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithSshPrivateKeySearchTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithSshPrivateKeySearchTest.java?rev=680995&r1=680994&r2=680995&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithSshPrivateKeySearchTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/src/test/java/org/apache/maven/wagon/providers/ssh/jsch/ScpWagonWithSshPrivateKeySearchTest.java Wed Jul 30 05:12:51 2008
@@ -20,8 +20,11 @@
*/
import java.io.File;
+import java.io.IOException;
+import org.apache.maven.wagon.ConnectionException;
import org.apache.maven.wagon.StreamingWagonTestCase;
+import org.apache.maven.wagon.authentication.AuthenticationException;
import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.providers.ssh.TestData;
import org.apache.maven.wagon.repository.Repository;
@@ -59,4 +62,48 @@
{
return new File( repository.getBasedir(), resource.getName() ).lastModified();
}
+
+ public void testMissingPrivateKey()
+ throws Exception
+ {
+ File file = File.createTempFile( "wagon", "tmp" );
+ file.delete();
+
+ AuthenticationInfo authInfo = new AuthenticationInfo();
+ authInfo.setPrivateKey( file.getAbsolutePath() );
+
+ try
+ {
+ getWagon().connect( new Repository(), authInfo );
+ fail();
+ }
+ catch ( AuthenticationException e )
+ {
+ assertTrue( true );
+ }
+ }
+
+ public void testBadPrivateKey()
+ throws Exception
+ {
+ File file = File.createTempFile( "wagon", "tmp" );
+ file.deleteOnExit();
+
+ AuthenticationInfo authInfo = new AuthenticationInfo();
+ authInfo.setPrivateKey( file.getAbsolutePath() );
+
+ try
+ {
+ getWagon().connect( new Repository(), authInfo );
+ fail();
+ }
+ catch ( AuthenticationException e )
+ {
+ assertTrue( true );
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org