From 49973354b22e8aba9cc71f83571020b0414c54e0 Mon Sep 17 00:00:00 2001 From: Sauli Tähkäpää Date: Thu, 13 Mar 2014 08:52:37 +0200 Subject: Fixed trailing slash trimming in VaadinPortletService. Change-Id: Ia9f6230219adfb1fcb29b88ad819e3209770e1fc --- server/ivy.xml | 2 + .../com/vaadin/server/VaadinPortletService.java | 14 ++---- .../vaadin/server/VaadinPortletServiceTests.java | 58 ++++++++++++++++++++++ shared/build.xml | 5 +- shared/ivy.xml | 2 + shared/src/com/vaadin/shared/util/SharedUtil.java | 9 ++++ .../com/vaadin/shared/util/SharedUtilTests.java | 43 ++++++++++++++++ 7 files changed, 121 insertions(+), 12 deletions(-) create mode 100644 server/tests/src/com/vaadin/server/VaadinPortletServiceTests.java create mode 100644 shared/tests/src/com/vaadin/shared/util/SharedUtilTests.java diff --git a/server/ivy.xml b/server/ivy.xml index ba859b08ee..2967d25f32 100644 --- a/server/ivy.xml +++ b/server/ivy.xml @@ -60,6 +60,8 @@ + - + @@ -57,8 +57,7 @@ - - WHAT? No tests for ${module.name}! + diff --git a/shared/ivy.xml b/shared/ivy.xml index 3b044e9ab4..b4b5878294 100644 --- a/shared/ivy.xml +++ b/shared/ivy.xml @@ -22,6 +22,8 @@ + diff --git a/shared/src/com/vaadin/shared/util/SharedUtil.java b/shared/src/com/vaadin/shared/util/SharedUtil.java index 80efe68d83..449685705f 100644 --- a/shared/src/com/vaadin/shared/util/SharedUtil.java +++ b/shared/src/com/vaadin/shared/util/SharedUtil.java @@ -44,4 +44,13 @@ public class SharedUtil implements Serializable { return o1.equals(o2); } + /** + * Trims trailing slashes (if any) from a string. + * @param value The string value to be trimmed. Cannot be null. + * @return String value without trailing slashes. + */ + public static String trimTrailingSlashes(String value) { + return value.replaceAll("/*$", ""); + } + } diff --git a/shared/tests/src/com/vaadin/shared/util/SharedUtilTests.java b/shared/tests/src/com/vaadin/shared/util/SharedUtilTests.java new file mode 100644 index 0000000000..b593032bd6 --- /dev/null +++ b/shared/tests/src/com/vaadin/shared/util/SharedUtilTests.java @@ -0,0 +1,43 @@ +package com.vaadin.shared.util; + +import org.junit.Before; +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +public class SharedUtilTests { + + private SharedUtil sut; + + @Before + public void setup() { + sut = new SharedUtil(); + } + + @Test + public void trailingSlashIsTrimmed() { + assertThat(sut.trimTrailingSlashes("/path/"), is("/path")); + } + + @Test + public void noTrailingSlashForTrimming() { + assertThat(sut.trimTrailingSlashes("/path"), is("/path")); + } + + @Test + public void trailingSlashesAreTrimmed() { + assertThat(sut.trimTrailingSlashes("/path///"), is("/path")); + } + + @Test + public void emptyStringIsHandled() { + assertThat(sut.trimTrailingSlashes(""), is("")); + } + + @Test + public void rootSlashIsTrimmed() { + assertThat(sut.trimTrailingSlashes("/"), is("")); + } + +} -- cgit v1.2.3