You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "James Holmes (JIRA)" <ji...@apache.org> on 2007/08/13 22:00:37 UTC
[jira] Commented: (WW-1950) UrlHelper.buildUrl does not output port
even if forceAddSchemeHostAndPort turned on (TestCase included)
[ https://issues.apache.org/struts/browse/WW-1950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_41824 ]
James Holmes commented on WW-1950:
----------------------------------
The reason why this test fails is because Struts 2 does not currently use the port from the current request to build new URLs. Instead, Struts 2 uses the two configurable ports ("struts.url.http.port" and "struts.url.https.port").
The only scenario where the port from the request should be used is in when not switching between schemes. I have fixed that scenario and added the attached test case. The test case passes with the fix for using the request port when not switching schemes.
> UrlHelper.buildUrl does not output port even if forceAddSchemeHostAndPort turned on (TestCase included)
> -------------------------------------------------------------------------------------------------------
>
> Key: WW-1950
> URL: https://issues.apache.org/struts/browse/WW-1950
> Project: Struts 2
> Issue Type: Bug
> Components: Views
> Affects Versions: 2.0.8
> Reporter: Sami Dalouche
> Assignee: James Holmes
> Fix For: 2.1.0
>
>
> If you add this test to UrlHelperTest, you will find out that it fails..
> 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();
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.