You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jh...@apache.org on 2007/08/13 22:00:09 UTC
svn commit: r565492 - in /struts/struts2/branches/STRUTS_2_0_X/core/src:
main/java/org/apache/struts2/views/util/UrlHelper.java
test/java/org/apache/struts2/views/util/UrlHelperTest.java
Author: jholmes
Date: Mon Aug 13 13:00:08 2007
New Revision: 565492
URL: http://svn.apache.org/viewvc?view=rev&rev=565492
Log: (empty)
Modified:
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java?view=diff&rev=565492&r1=565491&r2=565492
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java Mon Aug 13 13:00:08 2007
@@ -67,6 +67,7 @@
private static int httpsPort = DEFAULT_HTTPS_PORT;
private static String customEncoding;
+
@Inject(StrutsConstants.STRUTS_URL_HTTP_PORT)
public static void setHttpPort(String val) {
httpPort = Integer.parseInt(val);
@@ -109,22 +110,30 @@
link.append(request.getServerName());
if (scheme != null) {
- if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
- {
- link.append(":");
- link.append(scheme.equals("http") ? httpPort : httpsPort);
+ // If switching schemes, use the configured port for the particular scheme.
+ if (!scheme.equals(reqScheme)) {
+ if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) {
+ link.append(":");
+ link.append(scheme.equals("http") ? httpPort : httpsPort);
+ }
+ // Else use the port from the current request.
+ } else {
+ int reqPort = request.getServerPort();
+
+ if ((scheme.equals("http") && (reqPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && reqPort != DEFAULT_HTTPS_PORT)) {
+ link.append(":");
+ link.append(reqPort);
+ }
}
}
}
- else if (
- (scheme != null) && !scheme.equals(request.getScheme())) {
+ else if ((scheme != null) && !scheme.equals(request.getScheme())) {
changedScheme = true;
link.append(scheme);
link.append("://");
link.append(request.getServerName());
- if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
- {
+ if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) {
link.append(":");
link.append(scheme.equals("http") ? httpPort : httpsPort);
}
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java?view=diff&rev=565492&r1=565491&r2=565492
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java Mon Aug 13 13:00:08 2007
@@ -40,8 +40,6 @@
*/
public class UrlHelperTest extends StrutsTestCase {
-
-
public void testForceAddSchemeHostAndPort() throws Exception {
String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action";
@@ -49,7 +47,8 @@
mockHttpServletRequest.expectAndReturn("getScheme", "http");
mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
-
+ mockHttpServletRequest.expectAndReturn("getServerPort", 80);
+
Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, expectedUrl);
@@ -74,14 +73,30 @@
assertEquals(expectedUrl, result);
}
+ public void testForceAddSchemeHostAndPortWithNonStandardPort() throws Exception {
+ String expectedUrl = "http://localhost:9090/contextPath/path1/path2/myAction.action";
+
+ Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
+ mockHttpServletRequest.expectAndReturn("getScheme", "http");
+ mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
+ mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
+ mockHttpServletRequest.expectAndReturn("getServerPort", 9090);
+
+ Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
+ mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, expectedUrl);
+
+ String result = UrlHelper.buildUrl("/path1/path2/myAction.action", (HttpServletRequest) mockHttpServletRequest.proxy(), (HttpServletResponse)mockHttpServletResponse.proxy(), null, "http", true, true, true);
+ assertEquals(expectedUrl, result);
+ mockHttpServletRequest.verify();
+ }
+
public void testForceAddNullSchemeHostAndPort() throws Exception {
String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action";
Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
mockHttpServletRequest.expectAndReturn("getScheme", "http");
mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
- mockHttpServletRequest.expectAndReturn("getContextPath",
- "/contextPath");
+ mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl,