summaryrefslogtreecommitdiffstats
path: root/archiva-modules
diff options
context:
space:
mode:
authorJames William Dumay <jdumay@apache.org>2008-06-04 03:50:03 +0000
committerJames William Dumay <jdumay@apache.org>2008-06-04 03:50:03 +0000
commita0091f489877ebc8aeea7d71a1bdbe967a19d83a (patch)
tree1968e7aff1883bd915a840257a5851159c48dd38 /archiva-modules
parentf4ce1aafc2ebda3ccb955b3ae299506f539a198c (diff)
downloadarchiva-a0091f489877ebc8aeea7d71a1bdbe967a19d83a.tar.gz
archiva-a0091f489877ebc8aeea7d71a1bdbe967a19d83a.zip
MRM-781 - Removal of Archiva-Webdav implementation in favor of Jackrabbit-webdav
* Reenabled RepositoryServletBrowseTest * Added Extra DavResourceLocator tests * Increased Litmus test score to 87.7% git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@662968 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules')
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java2
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java6
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java28
-rw-r--r--archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java124
4 files changed, 91 insertions, 69 deletions
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
index d73f4f194..ba51a894f 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
@@ -222,7 +222,7 @@ public class ArchivaDavResourceFactory
setHeaders( locator, response );
// compatibility with MRM-440 to ensure browsing the repository works ok
- if ( resource.isCollection() && !resource.getLocator().getResourcePath().endsWith( "/" ) )
+ if ( resource.isCollection() && !resource.getLocator().getHref(true).endsWith("/" ) )
{
throw new BrowserRedirectException( resource.getHref() );
}
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java
index 32bb76c2b..b936eb6e7 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocator.java
@@ -60,14 +60,14 @@ public class ArchivaDavResourceLocator
{
hrefPrefix = hrefPrefix.substring( 0, hrefPrefix.length() - 1 );
}
+
+ href = hrefPrefix + escapedPath;
//Remove trailing slashes otherwise Text.getRelativeParent fails
if (resourcePath.endsWith("/") && resourcePath.length() > 1)
{
this.resourcePath = resourcePath.substring( 0, resourcePath.length() - 1 );
}
-
- href = hrefPrefix + escapedPath;
}
public String getRepositoryId()
@@ -108,7 +108,7 @@ public class ArchivaDavResourceLocator
public String getHref( boolean isCollection )
{
// avoid doubled trailing '/' for the root item
- String suffix = ( isCollection && !isRootLocation() ) ? "/" : "";
+ String suffix = ( isCollection && !isRootLocation() && !href.endsWith("/") ) ? "/" : "";
return href + suffix;
}
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java
index c40ea1d65..e81c134e5 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/ArchivaDavResourceLocatorTest.java
@@ -35,13 +35,30 @@ public class ArchivaDavResourceLocatorTest extends TestCase
super.setUp();
factory = new ArchivaDavLocatorFactory();
}
+
+ public void testAvoidDoubleSlashInHref()
+ throws Exception
+ {
+ String prefix = "http://myproxy/";
+ String href = "/repository/internal/";
+ ArchivaDavResourceLocator locator = getLocator(prefix, href);
+
+ assertEquals("internal", locator.getRepositoryId());
+ assertEquals("", locator.getWorkspaceName());
+ assertEquals("", locator.getWorkspacePath());
+ assertEquals("http://myproxy/", locator.getPrefix());
+ assertEquals("http://myproxy/repository/internal/", locator.getHref(false));
+ assertEquals("http://myproxy/repository/internal/", locator.getHref(true));
+ assertEquals("/repository/internal", locator.getResourcePath());
+ assertEquals("/repository/internal", locator.getRepositoryPath());
+ }
public void testLocatorWithPrefixHref()
throws Exception
{
String prefix = "http://myproxy/";
String href = "/repository/internal";
- ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+ ArchivaDavResourceLocator locator = getLocator(prefix, href);
assertEquals("internal", locator.getRepositoryId());
assertEquals("", locator.getWorkspaceName());
@@ -58,7 +75,7 @@ public class ArchivaDavResourceLocatorTest extends TestCase
{
String prefix = "http://myproxy/";
String href = "http://myproxy/repository/internal";
- ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+ ArchivaDavResourceLocator locator = getLocator(prefix, href);
assertEquals("internal", locator.getRepositoryId());
assertEquals("", locator.getWorkspaceName());
@@ -75,7 +92,7 @@ public class ArchivaDavResourceLocatorTest extends TestCase
{
String prefix = "http://myproxy/";
String href = "/";
- ArchivaDavResourceLocator locator = (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+ ArchivaDavResourceLocator locator = getLocator(prefix, href);
assertEquals("", locator.getRepositoryId());
assertEquals("", locator.getWorkspaceName());
@@ -86,4 +103,9 @@ public class ArchivaDavResourceLocatorTest extends TestCase
assertEquals("/", locator.getResourcePath());
assertEquals("/", locator.getRepositoryPath());
}
+
+ private ArchivaDavResourceLocator getLocator( String prefix, String href )
+ {
+ return (ArchivaDavResourceLocator)factory.createResourceLocator(prefix, href);
+ }
}
diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
index 4e50b452a..885b8c1e6 100644
--- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
+++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/maven/archiva/webdav/RepositoryServletBrowseTest.java
@@ -1,62 +1,62 @@
-//package org.apache.maven.archiva.webdav;
-//
-///*
-// * 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 com.meterware.httpunit.GetMethodWebRequest;
-//import com.meterware.httpunit.WebLink;
-//import com.meterware.httpunit.WebRequest;
-//import com.meterware.httpunit.WebResponse;
-//
-//import java.io.File;
-//
-//import javax.servlet.http.HttpServletResponse;
-//
-///**
-// * RepositoryServletBrowseTest
-// *
-// * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
-// * @version $Id$
-// */
-//public class RepositoryServletBrowseTest
-// extends AbstractRepositoryServletTestCase
-//{
-// public void testBrowse()
-// throws Exception
-// {
-// new File( repoRootInternal, "org/apache/archiva" ).mkdirs();
-// new File( repoRootInternal, "net/sourceforge" ).mkdirs();
-// new File( repoRootInternal, "commons-lang" ).mkdirs();
-//
-// 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++ )
-// {
-// assertEquals( "Link[" + i + "]", expectedLinks[i], links[i].getURLString() );
-// }
-// }
-//}
+package org.apache.maven.archiva.webdav;
+
+/*
+ * 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 com.meterware.httpunit.GetMethodWebRequest;
+import com.meterware.httpunit.WebLink;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+
+import java.io.File;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * RepositoryServletBrowseTest
+ *
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryServletBrowseTest
+ extends AbstractRepositoryServletTestCase
+{
+ public void testBrowse()
+ throws Exception
+ {
+ new File( repoRootInternal, "org/apache/archiva" ).mkdirs();
+ new File( repoRootInternal, "net/sourceforge" ).mkdirs();
+ new File( repoRootInternal, "commons-lang" ).mkdirs();
+
+ 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++ )
+ {
+ assertEquals( "Link[" + i + "]", expectedLinks[i], links[i].getURLString() );
+ }
+ }
+}