Author: jdumay
Date: Wed Jun 11 22:00:17 2008
New Revision: 666951

URL: http://svn.apache.org/viewvc?rev=666951&view=rev
Log:
MRM-781 - Looks like I broke the collection redirect again. This time we have a 
regression test :)

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java?rev=666951&r1=666950&r2=666951&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
 Wed Jun 11 22:00:17 2008
@@ -222,7 +222,7 @@
                         setHeaders( locator, response );
 
                         // compatibility with MRM-440 to ensure browsing the 
repository works ok
-                        if ( resource.isCollection() && 
!resource.getLocator().getHref(true).endsWith("/" ) )
+                        if ( resource.isCollection() && 
!request.getRequestURI().endsWith("/" ) )
                         {
                             throw new BrowserRedirectException( 
resource.getHref() );
                         }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java?rev=666951&r1=666950&r2=666951&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
 Wed Jun 11 22:00:17 2008
@@ -37,26 +37,48 @@
 public class RepositoryServletBrowseTest
     extends AbstractRepositoryServletTestCase
 {
-    public void testBrowse()
-        throws Exception
+    @Override
+    protected void setUp()
+        throws Exception 
     {
+        super.setUp();
+        
         new File( repoRootInternal, "org/apache/archiva" ).mkdirs();
+        new File( repoRootInternal, "org/codehaus/mojo/" ).mkdirs();
         new File( repoRootInternal, "net/sourceforge" ).mkdirs();
         new File( repoRootInternal, "commons-lang" ).mkdirs();
-
+    }
+    
+    public void testBrowse()
+        throws Exception
+    {
         WebRequest request = new GetMethodWebRequest( 
"http://machine.com/repository/internal/"; );
         WebResponse response = sc.getResponse( request );
         assertEquals( "Response", HttpServletResponse.SC_OK, 
response.getResponseCode() );
 
         // dumpResponse( response );
 
-        WebLink links[] = response.getLinks();
         String expectedLinks[] = new String[] { "./commons-lang/", "./net/", 
"./org/" };
-
-        assertEquals( "Links.length", expectedLinks.length, links.length );
-        for ( int i = 0; i < links.length; i++ )
+        assertLinks(expectedLinks, response.getLinks());
+    }
+    
+    public void testBrowseSubdirectory()
+        throws Exception
+    {
+        WebRequest request = new GetMethodWebRequest( 
"http://machine.com/repository/internal/org"; );
+        WebResponse response = sc.getResponse( request );
+        assertEquals( "Response", HttpServletResponse.SC_OK, 
response.getResponseCode() );
+        
+        String expectedLinks[] = new String[] { "../", "./apache/", 
"./codehaus/" };
+        assertLinks(expectedLinks, response.getLinks());
+    }
+    
+    private void assertLinks(String expectedLinks[], WebLink actualLinks[])
+    {
+        assertEquals( "Links.length", expectedLinks.length, actualLinks.length 
);
+        for ( int i = 0; i < actualLinks.length; i++ )
         {
-            assertEquals( "Link[" + i + "]", expectedLinks[i], 
links[i].getURLString() );
-        }
+            assertEquals( "Link[" + i + "]", expectedLinks[i], 
actualLinks[i].getURLString() );
+        }        
     }
 }


Reply via email to