Browse Source

Merge commit '49973354b22e8aba9cc71f83571020b0414c54e0'

Conflicts:
	shared/ivy.xml

Change-Id: I2aa7cc35953fdc7441d1a5b15a7bf0a34a97db7f
tags/7.2.0.beta1
Sauli Tähkäpää 10 years ago
parent
commit
d90416ce1b

+ 2
- 0
server/ivy.xml View File

@@ -60,6 +60,8 @@
<!-- Test frameworks & related -->
<dependency org="junit" name="junit" rev="4.11"
conf="test,ide -> default" />
<dependency org="org.mockito" name="mockito-all" rev="1.9.5"
conf="test,ide->default" />
<dependency org="org.easymock" name="easymock" rev="3.0"
conf="test,ide-> default" transitive="true" />
<dependency org="org.hsqldb" name="hsqldb" rev="2.2.6"

+ 5
- 9
server/src/com/vaadin/server/VaadinPortletService.java View File

@@ -16,6 +16,8 @@

package com.vaadin.server;

import static com.vaadin.shared.util.SharedUtil.trimTrailingSlashes;

import java.io.File;
import java.io.InputStream;
import java.net.URL;
@@ -80,9 +82,8 @@ public class VaadinPortletService extends VaadinService {
}

private static String getPortalProperty(VaadinRequest request,
String portalParameterVaadinWidgetset) {
return ((VaadinPortletRequest) request)
.getPortalProperty(portalParameterVaadinWidgetset);
String propertyName) {
return ((VaadinPortletRequest) request).getPortalProperty(propertyName);
}

@Override
@@ -139,12 +140,7 @@ public class VaadinPortletService extends VaadinService {
String staticFileLocation = getPortalProperty(request,
Constants.PORTAL_PARAMETER_VAADIN_RESOURCE_PATH);
if (staticFileLocation != null) {
// remove trailing slash if any
while (staticFileLocation.endsWith(".")) {
staticFileLocation = staticFileLocation.substring(0,
staticFileLocation.length() - 1);
}
return staticFileLocation;
return trimTrailingSlashes(staticFileLocation);
} else {
// default for Liferay
return "/html";

+ 58
- 0
server/tests/src/com/vaadin/server/VaadinPortletServiceTests.java View File

@@ -0,0 +1,58 @@
/*
* Copyright 2000-2013 Vaadin Ltd.
*
* Licensed 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.
*/
package com.vaadin.server;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import org.junit.Before;
import org.junit.Test;

public class VaadinPortletServiceTests {

private VaadinPortletService sut;
private VaadinPortletRequest request;

@Before
public void setup() throws ServiceException {
VaadinPortlet portlet = mock(VaadinPortlet.class);
DeploymentConfiguration conf = mock(DeploymentConfiguration.class);

sut = new VaadinPortletService(portlet, conf);

request = mock(VaadinPortletRequest.class);
}

private void mockRequestToReturnLocation(String location) {
when(request.getPortalProperty(
Constants.PORTAL_PARAMETER_VAADIN_RESOURCE_PATH))
.thenReturn(location);
}

@Test
public void trailingSlashesAreTrimmedFromStaticFileLocation()
throws ServiceException {

mockRequestToReturnLocation("/content////");

String staticFileLocation = sut
.getStaticFileLocation(request);

assertThat(staticFileLocation, is("/content"));
}
}

+ 9
- 0
shared/src/com/vaadin/shared/util/SharedUtil.java View File

@@ -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("/*$", "");
}

}

+ 43
- 0
shared/tests/src/com/vaadin/shared/util/SharedUtilTests.java View File

@@ -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(""));
}

}

Loading…
Cancel
Save