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 2011/04/13 17:50:57 UTC

svn commit: r1091831 - /wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java

Author: mgrigorov
Date: Wed Apr 13 15:50:56 2011
New Revision: 1091831

URL: http://svn.apache.org/viewvc?rev=1091831&view=rev
Log:
WICKET-3347 Simplify somehow the code in org.apache.wicket.request.handler.render.WebPageRenderer.respond(RequestCycle)

Add test for RedirectPolicy#NEVER_REDIRECT


Modified:
    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java

Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java?rev=1091831&r1=1091830&r2=1091831&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java Wed Apr 13 15:50:56 2011
@@ -31,6 +31,7 @@ import org.apache.wicket.request.compone
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.IPageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.settings.IRequestCycleSettings;
@@ -82,29 +83,43 @@ public class WebPageRendererTest
 	public void testOnePassRender()
 	{
 
-		PageRenderer renderer = new WebPageRenderer(handler)
+		PageRenderer renderer = new TestPageRenderer(handler)
 		{
 			@Override
 			protected boolean isOnePassRender()
 			{
 				return true;
 			}
+		};
 
-			@Override
-			protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
-			{
-				return null;
-			}
+		when(urlRenderer.getBaseUrl()).thenReturn(Url.parse("base"));
+
+		when(requestCycle.mapUrlFor(eq(handler))).thenReturn(Url.parse("base/a"));
+
+		when(request.shouldPreserveClientUrl()).thenReturn(false);
 
+		renderer.respond(requestCycle);
+
+		verify(response).write(any(byte[].class));
+		verify(response, never()).sendRedirect(anyString());
+	}
+
+	/**
+	 * Tests that when {@link RenderPageRequestHandler#getRedirectPolicy()} is
+	 * {@link RedirectPolicy#NEVER_REDIRECT} there wont be a redirect issued
+	 */
+	@Test
+	public void testRedirectPolicyNever()
+	{
+
+		PageRenderer renderer = new TestPageRenderer(handler)
+		{
 			@Override
-			protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle requestCycle)
+			protected RedirectPolicy getRedirectPolicy()
 			{
-				BufferedWebResponse webResponse = super.renderPage(targetUrl, requestCycle);
-				webResponse.write("some response".getBytes());
-				return webResponse;
+				return RedirectPolicy.NEVER_REDIRECT;
 			}
 
-
 		};
 
 		when(urlRenderer.getBaseUrl()).thenReturn(Url.parse("base"));
@@ -118,4 +133,30 @@ public class WebPageRendererTest
 		verify(response).write(any(byte[].class));
 		verify(response, never()).sendRedirect(anyString());
 	}
+
+	/**
+	 * Configures common methods which are used by all tests
+	 */
+	private static class TestPageRenderer extends WebPageRenderer
+	{
+		public TestPageRenderer(RenderPageRequestHandler renderPageRequestHandler)
+		{
+			super(renderPageRequestHandler);
+		}
+
+		@Override
+		protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
+		{
+			return null;
+		}
+
+		@Override
+		protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle requestCycle)
+		{
+			BufferedWebResponse webResponse = super.renderPage(targetUrl, requestCycle);
+			webResponse.write("some response".getBytes());
+			return webResponse;
+		}
+
+	}
 }