You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/03/15 00:29:40 UTC
svn commit: r1300786 - in /maven/wagon/trunk:
wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
Author: olamy
Date: Wed Mar 14 23:29:40 2012
New Revision: 1300786
URL: http://svn.apache.org/viewvc?rev=1300786&view=rev
Log:
add a unit test for GET with redirect
Modified:
maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
Modified: maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java?rev=1300786&r1=1300785&r2=1300786&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java (original)
+++ maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java Wed Mar 14 23:29:40 2012
@@ -432,16 +432,83 @@ public abstract class HttpWagonTestCase
if ( supportProxyPreemptiveAuthentication() )
{
- assertEquals( 200, handler.securityHandlerRequestReponses.get( 0 ).responseCode );
+ assertEquals( 200, handler.handlerRequestResponses.get( 0 ).responseCode );
}
else
{
- assertEquals( 407, handler.securityHandlerRequestReponses.get( 0 ).responseCode );
- assertEquals( 200, handler.securityHandlerRequestReponses.get( 1 ).responseCode );
+ assertEquals( 407, handler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( 200, handler.handlerRequestResponses.get( 1 ).responseCode );
}
}
+ public void testRedirectGet()
+ throws Exception
+ {
+ StreamingWagon wagon = (StreamingWagon) getWagon();
+
+ Server server = new Server( 0 );
+ TestHeaderHandler handler = new TestHeaderHandler();
+
+ server.setHandler( handler );
+ addConnectors( server );
+ server.start();
+
+ Server redirectServer = new Server( 0 );
+
+ addConnectors( redirectServer );
+
+ String protocol = getProtocol();
+
+ // protocol is wagon protocol but in fact dav is http(s)
+ if ( protocol.equals( "dav" ) )
+ {
+ protocol = "http";
+ }
+
+ if ( protocol.equals( "davs" ) )
+ {
+ protocol = "https";
+ }
+
+ String redirectUrl = protocol + "://localhost:" + server.getConnectors()[0].getLocalPort();
+
+ RedirectHandler redirectHandler = new RedirectHandler( "Found", 303, redirectUrl, null );
+
+ redirectServer.setHandler( redirectHandler );
+
+ redirectServer.start();
+
+ wagon.connect( new Repository( "id", getRepositoryUrl( redirectServer ) ) );
+
+ File tmpResult = File.createTempFile( "foo", "get" );
+
+ FileOutputStream fileOutputStream = new FileOutputStream( tmpResult );
+
+ try
+ {
+ wagon.getToStream( "resource", fileOutputStream );
+ fileOutputStream.flush();
+ fileOutputStream.close();
+ String found = FileUtils.fileRead( tmpResult );
+ assertEquals( "found:'" + found + "'", "Hello, World!", found );
+
+ assertEquals( 1, handler.handlerRequestResponses.size() );
+ assertEquals( 200, handler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( 1, redirectHandler.handlerRequestResponses.size() );
+ assertEquals( 302, redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
+ }
+ finally
+ {
+ wagon.disconnect();
+
+ server.stop();
+
+ tmpResult.delete();
+ }
+ }
+
+
public void testRedirectPutFromStreamWithFullUrl()
throws Exception
{
@@ -513,6 +580,7 @@ public abstract class HttpWagonTestCase
assertEquals( content, FileUtils.fileRead( sourceFile.getAbsolutePath() ) );
+ checkRequestResponseForRedirectPutFromStreamWithFullUrl( putHandler, redirectHandler );
}
finally
{
@@ -521,6 +589,18 @@ public abstract class HttpWagonTestCase
}
}
+ protected void checkRequestResponseForRedirectPutFromStreamWithFullUrl( PutHandler putHandler,
+ RedirectHandler redirectHandler )
+ {
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 1, putHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 201,
+ putHandler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 1,
+ redirectHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 302,
+ redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
+ }
+
public void testRedirectPutFromStreamRelativeUrl()
throws Exception
{
@@ -576,6 +656,8 @@ public abstract class HttpWagonTestCase
assertEquals( content, FileUtils.fileRead( sourceFile.getAbsolutePath() ) );
+ checkRequestResponseForRedirectPutFromStreamWithRelativeUrl( putHandler, redirectHandler );
+
}
finally
{
@@ -584,6 +666,20 @@ public abstract class HttpWagonTestCase
}
}
+ protected void checkRequestResponseForRedirectPutFromStreamWithRelativeUrl( PutHandler putHandler,
+ RedirectHandler redirectHandler )
+ {
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 0, putHandler.handlerRequestResponses.size() );
+
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 2,
+ redirectHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 302,
+ redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 201,
+ redirectHandler.handlerRequestResponses.get( 1 ).responseCode );
+
+ }
+
public void testRedirectPutFileWithFullUrl()
throws Exception
{
@@ -733,6 +829,8 @@ public abstract class HttpWagonTestCase
File repositoryDirectory;
+ public List<HandlerRequestResponse> handlerRequestResponses = new ArrayList<HandlerRequestResponse>();
+
RedirectHandler( String reason, int retCode, String redirectUrl, File repositoryDirectory )
{
this.reason = reason;
@@ -748,10 +846,15 @@ public abstract class HttpWagonTestCase
{
PutHandler putHandler = new PutHandler( this.repositoryDirectory );
putHandler.handle( s, req, resp, i );
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( req.getMethod(), ( (Response) resp ).getStatus(),
+ req.getRequestURI() ) );
return;
}
resp.setStatus( this.retCode );
resp.sendRedirect( this.redirectUrl + "/" + req.getRequestURI() );
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( req.getMethod(), ( (Response) resp ).getStatus(), req.getRequestURI() ) );
}
}
@@ -1310,16 +1413,16 @@ public abstract class HttpWagonTestCase
if ( supportPreemptiveAuthentication() )
{
- assertEquals( "not 1 security handler use " + sh.securityHandlerRequestReponses, 1,
- sh.securityHandlerRequestReponses.size() );
- assertEquals( 200, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
+ assertEquals( "not 1 security handler use " + sh.handlerRequestResponses, 1,
+ sh.handlerRequestResponses.size() );
+ assertEquals( 200, sh.handlerRequestResponses.get( 0 ).responseCode );
}
else
{
- assertEquals( "not 2 security handler use " + sh.securityHandlerRequestReponses, 2,
- sh.securityHandlerRequestReponses.size() );
- assertEquals( 401, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
- assertEquals( 200, sh.securityHandlerRequestReponses.get( 1 ).responseCode );
+ assertEquals( "not 2 security handler use " + sh.handlerRequestResponses, 2,
+ sh.handlerRequestResponses.size() );
+ assertEquals( 401, sh.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( 200, sh.handlerRequestResponses.get( 1 ).responseCode );
}
}
@@ -1374,7 +1477,7 @@ public abstract class HttpWagonTestCase
}
}
- static class PutHandler
+ public static class PutHandler
extends AbstractHandler
{
private final File resourceBase;
@@ -1383,6 +1486,8 @@ public abstract class HttpWagonTestCase
public int putCallNumber = 0;
+ public List<HandlerRequestResponse> handlerRequestResponses = new ArrayList<HandlerRequestResponse>();
+
public PutHandler( File repositoryDirectory )
{
this.resourceBase = repositoryDirectory;
@@ -1414,7 +1519,6 @@ public abstract class HttpWagonTestCase
in.close();
out.close();
}
- System.out.println( "put file " + request.getPathInfo() );
putCallNumber++;
DeployedResource deployedResource = new DeployedResource();
@@ -1425,6 +1529,10 @@ public abstract class HttpWagonTestCase
deployedResources.add( deployedResource );
response.setStatus( HttpServletResponse.SC_CREATED );
+
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( request.getMethod(), ( (Response) response ).getStatus(),
+ request.getRequestURI() ) );
}
}
@@ -1432,8 +1540,7 @@ public abstract class HttpWagonTestCase
extends TestHeaderHandler
{
- List<SecurityHandlerRequestReponse> securityHandlerRequestReponses =
- new ArrayList<SecurityHandlerRequestReponse>();
+ List<HandlerRequestResponse> handlerRequestResponses = new ArrayList<HandlerRequestResponse>();
public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
throws IOException, ServletException
@@ -1441,14 +1548,16 @@ public abstract class HttpWagonTestCase
System.out.println( " handle proxy request" );
if ( request.getHeader( "Proxy-Authorization" ) == null )
{
- securityHandlerRequestReponses.add( new SecurityHandlerRequestReponse( request.getMethod(), 407 ) );
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( request.getMethod(), 407, request.getRequestURI() ) );
response.setStatus( 407 );
response.addHeader( "Proxy-Authenticate", "Basic realm=\"Squid proxy-caching web server\"" );
( (Request) request ).setHandled( true );
return;
}
- securityHandlerRequestReponses.add( new SecurityHandlerRequestReponse( request.getMethod(), 200 ) );
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( request.getMethod(), 200, request.getRequestURI() ) );
super.handle( target, request, response, dispatch );
}
}
@@ -1456,7 +1565,9 @@ public abstract class HttpWagonTestCase
private static class TestHeaderHandler
extends AbstractHandler
{
- public Map headers = Collections.EMPTY_MAP;
+ public Map<String, String> headers = Collections.emptyMap();
+
+ public List<HandlerRequestResponse> handlerRequestResponses = new ArrayList<HandlerRequestResponse>();
public TestHeaderHandler()
{
@@ -1474,7 +1585,11 @@ public abstract class HttpWagonTestCase
response.setContentType( "text/plain" );
response.setStatus( HttpServletResponse.SC_OK );
- response.getWriter().println( "Hello, World!" );
+ response.getWriter().print( "Hello, World!" );
+
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( request.getMethod(), ( (Response) response ).getStatus(),
+ request.getRequestURI() ) );
( (Request) request ).setHandled( true );
}
@@ -1505,8 +1620,7 @@ public abstract class HttpWagonTestCase
extends SecurityHandler
{
- public List<SecurityHandlerRequestReponse> securityHandlerRequestReponses =
- new ArrayList<SecurityHandlerRequestReponse>();
+ public List<HandlerRequestResponse> handlerRequestResponses = new ArrayList<HandlerRequestResponse>();
@Override
public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
@@ -1514,33 +1628,36 @@ public abstract class HttpWagonTestCase
{
String method = request.getMethod();
super.handle( target, request, response, dispatch );
- System.out.println( "method in SecurityHandler: " + method );
- securityHandlerRequestReponses.add(
- new SecurityHandlerRequestReponse( method, ( (Response) response ).getStatus() ) );
+ handlerRequestResponses.add(
+ new HandlerRequestResponse( method, ( (Response) response ).getStatus(), request.getRequestURI() ) );
}
}
- public static class SecurityHandlerRequestReponse
+ public static class HandlerRequestResponse
{
public String method;
public int responseCode;
- private SecurityHandlerRequestReponse( String method, int responseCode )
+ public String requestUri;
+
+ private HandlerRequestResponse( String method, int responseCode, String requestUri )
{
this.method = method;
this.responseCode = responseCode;
+ this.requestUri = requestUri;
}
@Override
public String toString()
{
final StringBuilder sb = new StringBuilder();
- sb.append( "SecurityHandlerRequestReponse" );
+ sb.append( "HandlerRequestResponse" );
sb.append( "{method='" ).append( method ).append( '\'' );
sb.append( ", responseCode=" ).append( responseCode );
+ sb.append( ", requestUri='" ).append( requestUri ).append( '\'' );
sb.append( '}' );
return sb.toString();
}
Modified: maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java?rev=1300786&r1=1300785&r2=1300786&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java Wed Mar 14 23:29:40 2012
@@ -314,18 +314,18 @@ public class WebDavWagonTest
if ( supportPreemptiveAuthentication() )
{
- assertEquals( "not 2 security handler use " + sh.securityHandlerRequestReponses, 2,
- sh.securityHandlerRequestReponses.size() );
- assertEquals( 200, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
+ assertEquals( "not 2 security handler use " + sh.handlerRequestResponses, 2,
+ sh.handlerRequestResponses.size() );
+ assertEquals( 200, sh.handlerRequestResponses.get( 0 ).responseCode );
}
else
{
- assertEquals( "not 4 security handler use " + sh.securityHandlerRequestReponses, 4,
- sh.securityHandlerRequestReponses.size() );
- assertEquals( 401, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
- assertEquals( 200, sh.securityHandlerRequestReponses.get( 1 ).responseCode );
- assertEquals( 401, sh.securityHandlerRequestReponses.get( 2 ).responseCode );
- assertEquals( 200, sh.securityHandlerRequestReponses.get( 3 ).responseCode );
+ assertEquals( "not 4 security handler use " + sh.handlerRequestResponses, 4,
+ sh.handlerRequestResponses.size() );
+ assertEquals( 401, sh.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( 200, sh.handlerRequestResponses.get( 1 ).responseCode );
+ assertEquals( 401, sh.handlerRequestResponses.get( 2 ).responseCode );
+ assertEquals( 200, sh.handlerRequestResponses.get( 3 ).responseCode );
}
}
@@ -429,4 +429,32 @@ public class WebDavWagonTest
return true;
}
+ protected void checkRequestResponseForRedirectPutFromStreamWithFullUrl( PutHandler putHandler,
+ RedirectHandler redirectHandler )
+ {
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 1, putHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 201,
+ putHandler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 3,
+ redirectHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 302,
+ redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
+ }
+
+ protected void checkRequestResponseForRedirectPutFromStreamWithRelativeUrl( PutHandler putHandler,
+ RedirectHandler redirectHandler )
+ {
+ assertEquals( "found:" + putHandler.handlerRequestResponses, 0, putHandler.handlerRequestResponses.size() );
+
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 4,
+ redirectHandler.handlerRequestResponses.size() );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 302,
+ redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 302,
+ redirectHandler.handlerRequestResponses.get( 1 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 201,
+ redirectHandler.handlerRequestResponses.get( 3 ).responseCode );
+
+ }
+
}