From 2e3bd0ef8f2950243e98a356d75d00767dfa40d7 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 7 Jan 2014 08:08:32 +0100 Subject: [PATCH] fix double slash for append and getCompleteUrl of HttpUtil --- .../main/java/sonia/scm/util/HttpUtil.java | 19 ++++-------- .../java/sonia/scm/util/HttpUtilTest.java | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/util/HttpUtil.java b/scm-core/src/main/java/sonia/scm/util/HttpUtil.java index 96eab99483..f1ce453cc1 100644 --- a/scm-core/src/main/java/sonia/scm/util/HttpUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/HttpUtil.java @@ -197,7 +197,11 @@ public final class HttpUtil */ public static String append(String uri, String suffix) { - if (!uri.endsWith(SEPARATOR_PATH) &&!suffix.startsWith(SEPARATOR_PATH)) + if ( uri.endsWith(SEPARATOR_PATH) && suffix.startsWith(SEPARATOR_PATH) ) + { + uri = uri.substring( 0, uri.length() - 1 ); + } + else if (!uri.endsWith(SEPARATOR_PATH) &&!suffix.startsWith(SEPARATOR_PATH)) { uri = uri.concat(SEPARATOR_PATH); } @@ -490,18 +494,7 @@ public final class HttpUtil public static String getCompleteUrl(ScmConfiguration configuration, String path) { - String url = configuration.getBaseUrl(); - - if (url.endsWith(SEPARATOR_PATH) && path.startsWith(SEPARATOR_PATH)) - { - url = url.substring(0, url.length()); - } - else if (!path.startsWith(SEPARATOR_PATH)) - { - path = SEPARATOR_PATH.concat(path); - } - - return url.concat(path); + return append(configuration.getBaseUrl(), path); } /** diff --git a/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java b/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java index d2483c219f..4f88616662 100644 --- a/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java +++ b/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java @@ -54,6 +54,33 @@ import javax.servlet.http.HttpServletRequest; public class HttpUtilTest { + /** + * Method description + * + */ + @Test + public void appendTest() + { + //J- + assertEquals( + "http://www.scm-manager/scm/test", + HttpUtil.append("http://www.scm-manager/scm/", "test") + ); + assertEquals( + "http://www.scm-manager/scm/test", + HttpUtil.append("http://www.scm-manager/scm", "test") + ); + assertEquals( + "http://www.scm-manager/scm/test", + HttpUtil.append("http://www.scm-manager/scm", "/test") + ); + assertEquals( + "http://www.scm-manager/scm/test", + HttpUtil.append("http://www.scm-manager/scm/", "/test") + ); + //J+ + } + /** * Method description * @@ -173,6 +200,10 @@ public class HttpUtilTest HttpUtil.getCompleteUrl(config, "test/path")); assertEquals("http://www.scm-manager.org/scm/test/path", HttpUtil.getCompleteUrl(config, "/test/path")); + + config.setBaseUrl("http://www.scm-manager.org/scm/"); + assertEquals("http://www.scm-manager.org/scm/test/path", + HttpUtil.getCompleteUrl(config, "/test/path")); } /**