You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/06/21 11:42:18 UTC

git commit: WICKET-4610 WicketTester.assertRedirectUrl always fails because it always thinks the redirect was null

Updated Branches:
  refs/heads/wicket-1.5.x 3122a2db9 -> 12e5604e8


WICKET-4610 WicketTester.assertRedirectUrl always fails because it always thinks the redirect was null


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/12e5604e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/12e5604e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/12e5604e

Branch: refs/heads/wicket-1.5.x
Commit: 12e5604e88642d9180d473affe31f93454a97219
Parents: 3122a2d
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Jun 21 12:39:14 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Jun 21 12:39:14 2012 +0300

----------------------------------------------------------------------
 .../http/mock/MockHttpServletResponse.java         |    1 +
 .../wicket/util/tester/BaseWicketTester.java       |    9 +++++-
 .../wicket/util/tester/WicketTesterTest.java       |   23 +++++++++++++++
 3 files changed, 32 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/12e5604e/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
index 6288e5d..a1846ed 100755
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
@@ -583,6 +583,7 @@ public class MockHttpServletResponse implements HttpServletResponse, IMetaDataBu
 	public void sendRedirect(String location) throws IOException
 	{
 		redirectLocation = location;
+		status = HttpServletResponse.SC_FOUND;
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/wicket/blob/12e5604e/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 2ab8058..f19b5c2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -728,7 +728,10 @@ public class BaseWicketTester
 	{
 		String originalHost = requestUrl.getHost();
 		String redirectHost = newUrl.getHost();
-		if (originalHost == redirectHost)
+		Integer originalPort = requestUrl.getPort();
+		Integer newPort = newUrl.getPort();
+
+		if (originalHost.equals(redirectHost))
 		{
 			return false; // identical or both null
 		}
@@ -736,6 +739,10 @@ public class BaseWicketTester
 		{
 			return false; // no new host
 		}
+		else if (originalPort.equals(newPort) == false)
+		{
+			return true;
+		}
 		else
 		{
 			return !(redirectHost.equals(originalHost));

http://git-wip-us.apache.org/repos/asf/wicket/blob/12e5604e/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index f3657e0..54141b7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -21,6 +21,7 @@ import java.util.List;
 import java.util.Locale;
 
 import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletResponse;
 
 import junit.framework.AssertionFailedError;
 
@@ -1255,4 +1256,26 @@ public class WicketTesterTest extends WicketTestCase
 		tester.startPage(new RedirectPage());
 		tester.assertRenderedPage(CreateBook.class);
 	}
+
+	public static class AlwaysRedirectPage extends WebPage
+	{
+		public AlwaysRedirectPage()
+		{
+			// redirects to another web server on the same computer
+			throw new RedirectToUrlException("http://localhost:4333/");
+		}
+	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4610
+	 */
+	@Test
+	public void redirectToAbsoluteUrlTest()
+	{
+		WicketTester tester = new WicketTester();
+		tester.setFollowRedirects(false);
+		tester.startPage(AlwaysRedirectPage.class);
+		tester.assertRedirectUrl("http://localhost:4333/");
+		assertEquals(HttpServletResponse.SC_FOUND, tester.getLastResponse().getStatus());
+	}
 }