Author: olamy
Date: Wed Mar 14 17:50:24 2012
New Revision: 1300663

URL: http://svn.apache.org/viewvc?rev=1300663&view=rev
Log:
add test for redirect with putting a file

Modified:
    
maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.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=1300663&r1=1300662&r2=1300663&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 17:50:24 2012
@@ -584,6 +584,143 @@ public abstract class HttpWagonTestCase
         }
     }
 
+    public void testRedirectPutFileWithFullUrl()
+        throws Exception
+    {
+        Server realServer = new Server( 0 );
+
+        addConnectors( realServer );
+
+        File repositoryDirectory = getRepositoryDirectory();
+        FileUtils.deleteDirectory( repositoryDirectory );
+        repositoryDirectory.mkdirs();
+
+        PutHandler putHandler = new PutHandler( repositoryDirectory );
+
+        realServer.setHandler( putHandler );
+
+        realServer.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:" + 
realServer.getConnectors()[0].getLocalPort();
+
+        RedirectHandler redirectHandler = new RedirectHandler( "Found", 303, 
redirectUrl, repositoryDirectory );
+
+        redirectServer.setHandler( redirectHandler );
+
+        redirectServer.start();
+
+        try
+        {
+            StreamingWagon wagon = (StreamingWagon) getWagon();
+            Repository repository = new Repository( "foo", getRepositoryUrl( 
redirectServer ) );
+            wagon.connect( repository );
+
+            File sourceFile = new File( repositoryDirectory, 
"test-secured-put-resource" );
+            sourceFile.delete();
+            assertFalse( sourceFile.exists() );
+
+            File tempFile = File.createTempFile( "wagon", "tmp" );
+            tempFile.deleteOnExit();
+            String content = "put top secret";
+            FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
+
+            try
+            {
+                wagon.put( tempFile, "test-secured-put-resource" );
+            }
+            finally
+            {
+                tempFile.delete();
+            }
+
+            assertEquals( content, FileUtils.fileRead( 
sourceFile.getAbsolutePath() ) );
+
+        }
+        finally
+        {
+            realServer.stop();
+            redirectServer.stop();
+        }
+    }
+
+
+    public void testRedirectPutFileRelativeUrl()
+        throws Exception
+    {
+        Server realServer = new Server( 0 );
+        addConnectors( realServer );
+        File repositoryDirectory = getRepositoryDirectory();
+        FileUtils.deleteDirectory( repositoryDirectory );
+        repositoryDirectory.mkdirs();
+
+        PutHandler putHandler = new PutHandler( repositoryDirectory );
+
+        realServer.setHandler( putHandler );
+
+        realServer.start();
+
+        Server redirectServer = new Server( 0 );
+
+        addConnectors( redirectServer );
+
+        RedirectHandler redirectHandler =
+            new RedirectHandler( "Found", 303, "/redirectRequest/foo", 
repositoryDirectory );
+
+        redirectServer.setHandler( redirectHandler );
+
+        redirectServer.start();
+
+        try
+        {
+            StreamingWagon wagon = (StreamingWagon) getWagon();
+            Repository repository = new Repository( "foo", getRepositoryUrl( 
redirectServer ) );
+            wagon.connect( repository );
+
+            File sourceFile = new File( repositoryDirectory, 
"/redirectRequest/foo/test-secured-put-resource" );
+            sourceFile.delete();
+            assertFalse( sourceFile.exists() );
+
+            File tempFile = File.createTempFile( "wagon", "tmp" );
+            tempFile.deleteOnExit();
+            String content = "put top secret";
+            FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
+
+            try
+            {
+                wagon.put( tempFile, "test-secured-put-resource" );
+            }
+            finally
+            {
+                tempFile.delete();
+            }
+
+            assertEquals( content, FileUtils.fileRead( 
sourceFile.getAbsolutePath() ) );
+
+        }
+        finally
+        {
+            realServer.stop();
+            redirectServer.stop();
+        }
+    }
+
 
     public static class RedirectHandler
         extends AbstractHandler


Reply via email to