Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 94B1D200CFD for ; Wed, 6 Sep 2017 11:39:42 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 93573161925; Wed, 6 Sep 2017 09:39:42 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BB6BB160CD8 for ; Wed, 6 Sep 2017 11:39:41 +0200 (CEST) Received: (qmail 82898 invoked by uid 500); 6 Sep 2017 09:39:40 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 82883 invoked by uid 99); 6 Sep 2017 09:39:40 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Sep 2017 09:39:40 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B3690E7DFA; Wed, 6 Sep 2017 09:39:40 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: lukaszlenart@apache.org To: commits@struts.apache.org Date: Wed, 06 Sep 2017 09:39:40 -0000 Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: [1/2] struts git commit: WW-4843 DefaultUrlHelper().buildUrl() not outputting port when used as parameter archived-at: Wed, 06 Sep 2017 09:39:42 -0000 Repository: struts Updated Branches: refs/heads/master 64fa814a5 -> 223e735e3 WW-4843 DefaultUrlHelper().buildUrl() not outputting port when used as parameter Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/0b9e68ed Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/0b9e68ed Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/0b9e68ed Branch: refs/heads/master Commit: 0b9e68ed16341c585d48d301ceacfb9e74438552 Parents: c9bdb24 Author: Aleksandr Mashchenko Authored: Wed Aug 23 23:05:29 2017 +0300 Committer: Aleksandr Mashchenko Committed: Wed Aug 23 23:05:29 2017 +0300 ---------------------------------------------------------------------- .../struts2/views/util/DefaultUrlHelper.java | 27 +++++++++----------- .../views/util/DefaultUrlHelperTest.java | 23 +++++++++++++++++ 2 files changed, 35 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/0b9e68ed/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java index 668d1a9..0fb86d9 100644 --- a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java +++ b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java @@ -110,19 +110,13 @@ public class DefaultUrlHelper implements UrlHelper { if (scheme != null) { // If switching schemes, use the configured port for the particular scheme. if (!scheme.equals(reqScheme)) { - if ((HTTP_PROTOCOL.equals(scheme) && (httpPort != DEFAULT_HTTP_PORT)) || (HTTPS_PROTOCOL.equals(scheme) && httpsPort != DEFAULT_HTTPS_PORT)) { - link.append(":"); - link.append(HTTP_PROTOCOL.equals(scheme) ? httpPort : httpsPort); - } + appendPort(link, scheme, HTTP_PROTOCOL.equals(scheme) ? httpPort : httpsPort); // Else use the port from the current request. } else { - int reqPort = request.getServerPort(); - - if ((scheme.equals(HTTP_PROTOCOL) && (reqPort != DEFAULT_HTTP_PORT)) || (scheme.equals(HTTPS_PROTOCOL) && reqPort != DEFAULT_HTTPS_PORT)) { - link.append(":"); - link.append(reqPort); - } + appendPort(link, scheme, request.getServerPort()); } + } else { + appendPort(link, reqScheme, request.getServerPort()); } } else if ((scheme != null) && !scheme.equals(request.getScheme())) { changedScheme = true; @@ -130,11 +124,7 @@ public class DefaultUrlHelper implements UrlHelper { link.append("://"); link.append(request.getServerName()); - if ((scheme.equals(HTTP_PROTOCOL) && (httpPort != DEFAULT_HTTP_PORT)) || (HTTPS_PROTOCOL.equals(scheme) && httpsPort != DEFAULT_HTTPS_PORT)) - { - link.append(":"); - link.append(HTTP_PROTOCOL.equals(scheme) ? httpPort : httpsPort); - } + appendPort(link, scheme, HTTP_PROTOCOL.equals(scheme) ? httpPort : httpsPort); } if (action != null) { @@ -201,6 +191,13 @@ public class DefaultUrlHelper implements UrlHelper { return result; } + private void appendPort(StringBuilder link, String scheme, int port) { + if ((HTTP_PROTOCOL.equals(scheme) && port != DEFAULT_HTTP_PORT) || (HTTPS_PROTOCOL.equals(scheme) && port != DEFAULT_HTTPS_PORT)) { + link.append(":"); + link.append(port); + } + } + public void buildParametersString(Map params, StringBuilder link, String paramSeparator) { buildParametersString(params, link, paramSeparator, true); } http://git-wip-us.apache.org/repos/asf/struts/blob/0b9e68ed/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java b/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java index b4a5b26..81c595f 100644 --- a/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java +++ b/core/src/test/java/org/apache/struts2/views/util/DefaultUrlHelperTest.java @@ -138,6 +138,29 @@ public class DefaultUrlHelperTest extends StrutsInternalTestCase { mockHttpServletRequest.expectAndReturn("getServerName", "localhost"); mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath"); + mockHttpServletRequest.expectAndReturn("getServerPort", 80); + + 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, + null, true, true, true); + assertEquals(expectedUrl, result); + mockHttpServletRequest.verify(); + } + + public void testForceAddNullSchemeHostAndPort2() throws Exception { + String expectedUrl = "http://localhost:8080/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", 8080); Mock mockHttpServletResponse = new Mock(HttpServletResponse.class); mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl,