You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jb...@apache.org on 2007/03/06 11:38:00 UTC
svn commit: r515061 - in /incubator/wicket/trunk/wicket/src:
main/java/wicket/ajax/AjaxRequestTarget.java
test/java/wicket/protocol/http/TestPage.html
test/java/wicket/protocol/http/TestPage.java
test/java/wicket/protocol/http/WebResponseTest.java
Author: jbq
Date: Tue Mar 6 02:37:59 2007
New Revision: 515061
URL: http://svn.apache.org/viewvc?view=rev&rev=515061
Log:
WICKET-313 Use standard exception handling in AjaxRequestTarget
Added:
incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.html
- copied unchanged from r514753, incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/TestPage.html
incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.java
- copied, changed from r514753, incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/TestPage.java
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/ajax/AjaxRequestTarget.java
incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/WebResponseTest.java
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/ajax/AjaxRequestTarget.java?view=diff&rev=515061&r1=515060&r2=515061
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/ajax/AjaxRequestTarget.java (original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/ajax/AjaxRequestTarget.java Tue Mar 6 02:37:59 2007
@@ -297,8 +297,7 @@
public final void respond(final RequestCycle requestCycle)
{
final WebResponse response = (WebResponse)requestCycle.getResponse();
- try
- {
+ response.setAjax(true);
final Application app = Application.get();
// Determine encoding
@@ -338,18 +337,6 @@
}
response.write("</ajax-response>");
- }
- catch (RuntimeException ex)
- {
- // log the error but output nothing in the response, parse failure
- // of response will cause any javascript failureHandler to be
- // invoked
- Log.error("Error while responding to an AJAX request: " + toString(), ex);
- }
- finally
- {
- requestCycle.setResponse(response);
- }
}
private void fireOnBeforeRespondListeners()
Copied: incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.java (from r514753, incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/TestPage.java)
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.java?view=diff&rev=515061&p1=incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/TestPage.java&r1=514753&p2=incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.java&r2=515061
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/protocol/http/TestPage.java (original)
+++ incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/TestPage.java Tue Mar 6 02:37:59 2007
@@ -33,7 +33,7 @@
public TestPage()
{
- add(new AjaxLink("link")
+ new AjaxLink(this, "link")
{
/**
*
@@ -51,7 +51,7 @@
if (clicked)
throw new IllegalStateException("Intentional error");
}
- });
+ };
}
}
Modified: incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/WebResponseTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/WebResponseTest.java?view=diff&rev=515061&r1=515060&r2=515061
==============================================================================
--- incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/WebResponseTest.java (original)
+++ incubator/wicket/trunk/wicket/src/test/java/wicket/protocol/http/WebResponseTest.java Tue Mar 6 02:37:59 2007
@@ -18,6 +18,13 @@
import junit.framework.TestCase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import wicket.ajax.AjaxEventBehavior;
+import wicket.ajax.markup.html.AjaxLink;
+import wicket.util.tester.WicketTester;
+
/**
*
*
@@ -25,6 +32,8 @@
*/
public class WebResponseTest extends TestCase
{
+ private static final Logger log = LoggerFactory.getLogger(WebResponseTest.class);
+
/**
* Test that redirect works correctly when not using ajax
*/
@@ -54,5 +63,42 @@
assertNull(mockResponse.getRedirectLocation());
assertTrue(mockResponse.containsHeader("Ajax-Location"));
+ }
+
+ public void testErrorPage()
+ {
+ WicketTester tester = new WicketTester();
+ tester.startPage(TestPage.class);
+ AjaxLink link = (AjaxLink)tester.getComponentFromLastRenderedPage("link");
+
+ // Cannot use executeAjaxEvent or onClick because WicketTester creates
+ // an AjaxRequestTarget from scratch
+ // tester.executeAjaxEvent(link, "onclick");
+ // tester.clickLink("link");
+
+ // FIXME should not be needed
+ tester.createRequestCycle();
+
+ // Invoke the call back URL of the ajax event behavior
+ String callbackUrl = ((AjaxEventBehavior)link.getBehaviors().get(0)).getCallbackUrl()
+ .toString();
+ tester.setupRequestAndResponse();
+ // Fake an Ajax request
+ ((MockHttpServletRequest)tester.getServletRequest()).addHeader("Wicket-Ajax", "Yes");
+ tester.getServletRequest().setURL(callbackUrl);
+
+ // Do not call tester.processRequestCycle() because it throws an
+ // exception when getting an error page
+ WebRequestCycle cycle = tester.createRequestCycle();
+ cycle.request();
+
+ assertNull(((MockHttpServletResponse)tester.getWicketResponse().getHttpServletResponse())
+ .getRedirectLocation());
+ String ajaxLocation = ((MockHttpServletResponse)tester.getWicketResponse()
+ .getHttpServletResponse()).getHeader("Ajax-Location");
+ log.debug(ajaxLocation);
+ assertNotNull(ajaxLocation);
+
+ tester.destroy();
}
}