Author: pete
Date: Sat Jun 25 14:37:41 2011
New Revision: 1139546
URL: http://svn.apache.org/viewvc?rev=1139546&view=rev
Log:
WICKET-3834 WicketTester does not follow absolute redirects (propagate
protocol://host:port of the last non-ajax request)
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperApplicationTest.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=1139546&r1=1139545&r2=1139546&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
Sat Jun 25 14:37:41 2011
@@ -358,6 +358,20 @@ public class BaseWicketTester
{
request = new MockHttpServletRequest(application, httpSession,
servletContext);
request.setURL(request.getContextPath() +
request.getServletPath() + "/");
+
+ // assign protocol://host:port to next request unless the last
request was ajax
+ final boolean assignBaseLocation =
+ lastRequest != null &&
lastRequest.getHeader("Wicket-Ajax") == null;
+
+ // resume request processing with scheme://host:port from last
request
+ if (assignBaseLocation)
+ {
+ request.setScheme(lastRequest.getScheme());
+ request.setSecure(lastRequest.isSecure());
+ request.setServerName(lastRequest.getServerName());
+ request.setServerPort(lastRequest.getServerPort());
+ }
+
response = new MockHttpServletResponse(request);
ServletWebRequest servletWebRequest = newServletWebRequest();
Modified:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperApplicationTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperApplicationTest.java?rev=1139546&r1=1139545&r2=1139546&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperApplicationTest.java
(original)
+++
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/https/HttpsMapperApplicationTest.java
Sat Jun 25 14:37:41 2011
@@ -115,4 +115,18 @@ public class HttpsMapperApplicationTest
assertEquals("https", tester.getLastRequest().getScheme());
assertEquals(456, tester.getLastRequest().getServerPort());
}
+
+ @Test
+ public void testProtocolSwitchForNextRequest()
+ {
+ WicketTester tester = new WicketTester(new
HttpsMapperApplication());
+
+ requestPage(tester, HttpsPage.class);
+
+ assertEquals("https", tester.getLastRequest().getScheme());
+ assertEquals(443, tester.getLastRequest().getServerPort());
+
+ assertEquals("https", tester.getRequest().getScheme());
+ assertEquals(443, tester.getRequest().getServerPort());
+ }
}