svn commit: r589640 - in /lenya/trunk/src/modules-core/linking/java: src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java
[email protected] Mon, 29 Oct 2007 14:38:32 -0000
Newsgroups
gmane.comp.cms.lenya.cvs
Message-ID
<[email protected] >
Author: andreas
Date: Mon Oct 29 07:38:32 2007
New Revision: 589640
URL: http://svn.apache.org/viewvc?rev=589640&view=rev
Log:
Fixed generation of relative URLs, updated test accordingly
Modified:
lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
lenya/trunk/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java
Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java?rev=589640&r1=589639&r2=589640&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java Mon Oct 29 07:38:32 2007
@@ -236,7 +236,7 @@
protected String getRelativeUrlTo(String webappUrl) {
String relativeUrl;
if (this.requestUrl.equals(webappUrl)) {
- relativeUrl = webappUrl.substring(webappUrl.lastIndexOf("/") + 1);
+ relativeUrl = getLastStep(webappUrl);
}
else {
List sourceSteps = toList(this.requestUrl);
@@ -253,10 +253,10 @@
prefix = generateUpDots(sourceSteps.size());
}
else if (sourceSteps.isEmpty()) {
- prefix = "./";
+ prefix = getLastStep(this.requestUrl) + "/";
}
else if (sourceSteps.size() > 1) {
- prefix = generateUpDots(sourceSteps.size()) + "/";
+ prefix = generateUpDots(sourceSteps.size() - 1) + "/";
}
String[] targetArray = (String[]) targetSteps.toArray(new String[targetSteps.size()]);
@@ -264,6 +264,10 @@
relativeUrl = prefix + targetPath;
}
return relativeUrl;
+ }
+
+ protected String getLastStep(String url) {
+ return url.substring(url.lastIndexOf("/") + 1);
}
protected String generateUpDots(int length) {
Modified: lenya/trunk/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java?rev=589640&r1=589639&r2=589640&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java (original)
+++ lenya/trunk/src/modules-core/linking/java/test/org/apache/lenya/cms/linking/OutgoingLinkRewriterTest.java Mon Oct 29 07:38:32 2007
@@ -29,10 +29,11 @@
assertEquals(rewriter.rewrite("/aaa/bbb/foo"), "foo");
assertEquals(rewriter.rewrite("/aaa/bbb"), "..");
- assertEquals(rewriter.rewrite("/aaa/bbb/ccc/ddd"), "./ddd");
- assertEquals(rewriter.rewrite("/aaa/foo"), "../../foo");
- assertEquals(rewriter.rewrite("/aaa/foo/bar"), "../../foo/bar");
- assertEquals(rewriter.rewrite("/foo/bar"), "../../../foo/bar");
+ assertEquals(rewriter.rewrite("/aaa/bbb/ccc/ddd"), "ccc/ddd");
+ assertEquals(rewriter.rewrite("/aaa/foo"), "../foo");
+ assertEquals(rewriter.rewrite("/aaa/foo/bar"), "../foo/bar");
+ assertEquals(rewriter.rewrite("/foo/bar"), "../../foo/bar");
+ assertEquals(rewriter.rewrite("/aaa/foo/bar/baz"), "../foo/bar/baz");
}
}