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 2013/06/13 12:26:22 UTC

git commit: WICKET-3347 Simplify somehow the code in org.apache.wicket.request.handler.render.WebPageRenderer.respond(RequestCycle)

Updated Branches:
  refs/heads/master 22f1e0489 -> eecb9d74b


WICKET-3347 Simplify somehow the code in org.apache.wicket.request.handler.render.WebPageRenderer.respond(RequestCycle)

Don't use 'protected static' because it causes problems for Scala users.
Formatting


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

Branch: refs/heads/master
Commit: eecb9d74b3e58245ddb932a2c107d877ed1679ba
Parents: 22f1e04
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Jun 13 13:25:23 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Jun 13 13:25:23 2013 +0300

----------------------------------------------------------------------
 .../request/handler/render/WebPageRenderer.java |  4 +-
 .../handler/render/AbstractVariations.java      | 13 +--
 .../render/ShouldRedirectToTargetUrl.java       | 33 +++++---
 ...uldRenderPageAndWriteResponseVariations.java | 35 ++++----
 .../handler/render/TestPageRenderer.java        | 85 +++++++++++++++++++
 .../request/handler/render/TestVariations.java  | 24 ++++--
 .../request/handler/render/Variation.java       | 16 ++--
 .../handler/render/WebPageRendererTest.java     | 89 +++++---------------
 8 files changed, 183 insertions(+), 116 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
index 6b95240..e25142c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
@@ -277,7 +277,7 @@ public class WebPageRenderer extends PageRenderer
 	//				session is temporary and page is stateless
 	// just redirect
 
-	protected static boolean shouldRedirectToTargetUrl(boolean ajax, RedirectPolicy redirectPolicy, boolean redirectToRender, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless,boolean sessionTemporary) {
+	protected boolean shouldRedirectToTargetUrl(boolean ajax, RedirectPolicy redirectPolicy, boolean redirectToRender, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless,boolean sessionTemporary) {
 		return alwaysRedirect(redirectPolicy) //
 						||
 						redirectToRender //
@@ -308,7 +308,7 @@ public class WebPageRenderer extends PageRenderer
 	//	or
 	//  	the request determines that the current url should be preserved
 	//	just render the page
-	protected static boolean shouldRenderPageAndWriteResponse(boolean ajax, boolean onePassRender, boolean redirectToRender, RedirectPolicy redirectPolicy, boolean shouldPreserveClientUrl, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless) {
+	protected boolean shouldRenderPageAndWriteResponse(boolean ajax, boolean onePassRender, boolean redirectToRender, RedirectPolicy redirectPolicy, boolean shouldPreserveClientUrl, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless) {
 		return neverRedirect(redirectPolicy)
 			||
 			(!ajax &&

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/AbstractVariations.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/AbstractVariations.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/AbstractVariations.java
index b15b4e7..1ccbb27 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/AbstractVariations.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/AbstractVariations.java
@@ -16,21 +16,24 @@
  */
 package org.apache.wicket.request.handler.render;
 
-public abstract class AbstractVariations {
-
+public abstract class AbstractVariations
+{
 	protected abstract VariationIterator<?> last();
 
 	public abstract boolean getResult();
 
-	public boolean hasNextVariation() {
+	public boolean hasNextVariation()
+	{
 		return last().hasNext();
 	}
 
-	public void nextVariation() {
+	public void nextVariation()
+	{
 		last().nextVariation();
 	}
 
-	protected static void toString(StringBuilder sb,String label, VariationIterator<?> iterator) {
+	protected void toString(StringBuilder sb, String label, VariationIterator<?> iterator)
+	{
 		sb.append(label).append('=').append(iterator.next()).append(',');
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRedirectToTargetUrl.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRedirectToTargetUrl.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRedirectToTargetUrl.java
index 4a6f389..990c7a9 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRedirectToTargetUrl.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRedirectToTargetUrl.java
@@ -18,20 +18,22 @@ package org.apache.wicket.request.handler.render;
 
 import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 
-public class ShouldRedirectToTargetUrl extends AbstractVariations {
+public class ShouldRedirectToTargetUrl extends AbstractVariations
+{
 
-	VariationIterator<Boolean> ajax=VariationIterator.of(Variation.ofBoolean());
-	VariationIterator<RenderPageRequestHandler.RedirectPolicy> redirectPolicy=VariationIterator.of(ajax,Variation.of(RenderPageRequestHandler.RedirectPolicy.class));
-	VariationIterator<Boolean> redirectToRender=VariationIterator.of(redirectPolicy,Variation.ofBoolean());
-	VariationIterator<Boolean> targetEqualsCurrentUrl=VariationIterator.of(redirectToRender,Variation.ofBoolean());
-	VariationIterator<Boolean> newPageInstance=VariationIterator.of(targetEqualsCurrentUrl,Variation.ofBoolean());
-	VariationIterator<Boolean> pageStateless=VariationIterator.of(newPageInstance,Variation.ofBoolean());
-	VariationIterator<Boolean> sessionTemporary=VariationIterator.of(pageStateless,Variation.ofBoolean());
+	VariationIterator<Boolean> ajax = VariationIterator.of(Variation.ofBoolean());
+	VariationIterator<RenderPageRequestHandler.RedirectPolicy> redirectPolicy = VariationIterator.of(ajax,Variation.of(RenderPageRequestHandler.RedirectPolicy.class));
+	VariationIterator<Boolean> redirectToRender = VariationIterator.of(redirectPolicy,Variation.ofBoolean());
+	VariationIterator<Boolean> targetEqualsCurrentUrl = VariationIterator.of(redirectToRender,Variation.ofBoolean());
+	VariationIterator<Boolean> newPageInstance = VariationIterator.of(targetEqualsCurrentUrl,Variation.ofBoolean());
+	VariationIterator<Boolean> pageStateless = VariationIterator.of(newPageInstance,Variation.ofBoolean());
+	VariationIterator<Boolean> sessionTemporary = VariationIterator.of(pageStateless,Variation.ofBoolean());
 
-	VariationIterator<Boolean> last=sessionTemporary;
+	VariationIterator<Boolean> last = sessionTemporary;
 
-
-	public String toString() {
+	@Override
+	public String toString()
+	{
 		StringBuilder sb=new StringBuilder();
 		toString(sb,"ajax",ajax);
 		toString(sb,"redirectPolicy",redirectPolicy);
@@ -44,13 +46,16 @@ public class ShouldRedirectToTargetUrl extends AbstractVariations {
 	}
 
 	@Override
-	protected VariationIterator<?> last() {
+	protected VariationIterator<?> last()
+	{
 		return last;
 	}
 
 	@Override
-	public boolean getResult() {
-		return WebPageRenderer.shouldRedirectToTargetUrl(ajax.next(), redirectPolicy.next(),
+	public boolean getResult()
+	{
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		return renderer.shouldRedirectToTargetUrl(ajax.next(), redirectPolicy.next(),
 				redirectToRender.next(), targetEqualsCurrentUrl.next(), newPageInstance.next(),
 				pageStateless.next(), sessionTemporary.next());
 	}

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRenderPageAndWriteResponseVariations.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRenderPageAndWriteResponseVariations.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRenderPageAndWriteResponseVariations.java
index 3f7b5d6..f97250b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRenderPageAndWriteResponseVariations.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/ShouldRenderPageAndWriteResponseVariations.java
@@ -18,31 +18,36 @@ package org.apache.wicket.request.handler.render;
 
 import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 
-public class ShouldRenderPageAndWriteResponseVariations extends AbstractVariations {
+public class ShouldRenderPageAndWriteResponseVariations extends AbstractVariations
+{
+	VariationIterator<RenderPageRequestHandler.RedirectPolicy> redirectPolicy = VariationIterator.of(Variation.of(RenderPageRequestHandler.RedirectPolicy.class));
+	VariationIterator<Boolean> ajax = VariationIterator.of(redirectPolicy, Variation.ofBoolean());
+	VariationIterator<Boolean> onePassRender = VariationIterator.of(ajax,Variation.ofBoolean());
+	VariationIterator<Boolean> redirectToRender = VariationIterator.of(onePassRender,Variation.ofBoolean());
+	VariationIterator<Boolean> shouldPreserveClientUrl = VariationIterator.of(redirectToRender,Variation.ofBoolean());
+	VariationIterator<Boolean> targetEqualsCurrentUrl = VariationIterator.of(shouldPreserveClientUrl,Variation.ofBoolean());
+	VariationIterator<Boolean> newPageInstance = VariationIterator.of(targetEqualsCurrentUrl,Variation.ofBoolean());
+	VariationIterator<Boolean> pageStateless = VariationIterator.of(newPageInstance,Variation.ofBoolean());
 
-	VariationIterator<RenderPageRequestHandler.RedirectPolicy> redirectPolicy=VariationIterator.of(Variation.of(RenderPageRequestHandler.RedirectPolicy.class));
-	VariationIterator<Boolean> ajax=VariationIterator.of(redirectPolicy, Variation.ofBoolean());
-	VariationIterator<Boolean> onePassRender=VariationIterator.of(ajax,Variation.ofBoolean());
-	VariationIterator<Boolean> redirectToRender=VariationIterator.of(onePassRender,Variation.ofBoolean());
-	VariationIterator<Boolean> shouldPreserveClientUrl=VariationIterator.of(redirectToRender,Variation.ofBoolean());
-	VariationIterator<Boolean> targetEqualsCurrentUrl=VariationIterator.of(shouldPreserveClientUrl,Variation.ofBoolean());
-	VariationIterator<Boolean> newPageInstance=VariationIterator.of(targetEqualsCurrentUrl,Variation.ofBoolean());
-	VariationIterator<Boolean> pageStateless=VariationIterator.of(newPageInstance,Variation.ofBoolean());
-
-	VariationIterator<Boolean> last=pageStateless;
+	VariationIterator<Boolean> last = pageStateless;
 
 	@Override
-	protected VariationIterator<?> last() {
+	protected VariationIterator<?> last()
+	{
 		return last;
 	}
 
-	public boolean getResult() {
-		return WebPageRenderer.shouldRenderPageAndWriteResponse(ajax.next(), onePassRender.next(),
+	public boolean getResult()
+	{
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		return renderer.shouldRenderPageAndWriteResponse(ajax.next(), onePassRender.next(),
 				redirectToRender.next(), redirectPolicy.next(), shouldPreserveClientUrl.next(),
 				targetEqualsCurrentUrl.next(), newPageInstance.next(), pageStateless.next());
 	}
 
-	public String toString() {
+	@Override
+	public String toString()
+	{
 		StringBuilder sb=new StringBuilder();
 		toString(sb,"ajax",ajax);
 		toString(sb,"onePassRender",onePassRender);

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
new file mode 100644
index 0000000..bcf2139
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.request.handler.render;
+
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.cycle.RequestCycle;
+
+/**
+ * Configures common methods which are used by all tests
+ */
+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;
+	}
+
+	// makes it public
+	@Override
+	public boolean shouldRedirectToTargetUrl(boolean ajax, RenderPageRequestHandler.RedirectPolicy redirectPolicy, boolean redirectToRender, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless, boolean sessionTemporary)
+	{
+		return super.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless, sessionTemporary);
+	}
+
+	// makes it public
+	@Override
+	public boolean shouldRenderPageAndWriteResponse(boolean ajax, boolean onePassRender, boolean redirectToRender, RenderPageRequestHandler.RedirectPolicy redirectPolicy, boolean shouldPreserveClientUrl, boolean targetEqualsCurrentUrl, boolean newPageInstance, boolean pageStateless)
+	{
+		return super.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless);
+	}
+
+	@Override
+	protected boolean isOnePassRender()
+	{
+		return false;
+	}
+
+	@Override
+	protected boolean isRedirectToRender()
+	{
+		return false;
+	}
+
+	@Override
+	protected boolean isRedirectToBuffer()
+	{
+		return false;
+	}
+
+	@Override
+	protected boolean isSessionTemporary()
+	{
+		return false;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestVariations.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestVariations.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestVariations.java
index 5a11266..87a0bc2 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestVariations.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestVariations.java
@@ -19,26 +19,31 @@ package org.apache.wicket.request.handler.render;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class TestVariations {
-
+public class TestVariations
+{
 	@Test
-	public void testSingle() {
+	public void testSingle()
+	{
 		VariationIterator<Boolean> single = VariationIterator.of(Variation.ofBoolean());
 		Assert.assertTrue(single.hasNext());
 		single.nextVariation();
 		Assert.assertFalse(single.hasNext());
 
 		Exception ex = null;
-		try {
+		try
+		{
 			single.nextVariation();
-		} catch (Exception e) {
+		}
+		catch (Exception e)
+		{
 			ex = e;
 		}
 		Assert.assertNotNull(ex);
 	}
 
 	@Test
-	public void testDouble() {
+	public void testDouble()
+	{
 		VariationIterator<Integer> numbers = VariationIterator.of(new Variation<>(1,2,3));
 		VariationIterator<Boolean> flag = VariationIterator.of(numbers,Variation.ofBoolean());
 		VariationIterator<?> last=flag;
@@ -56,9 +61,12 @@ public class TestVariations {
 		Assert.assertFalse(last.hasNext());
 
 		Exception ex = null;
-		try {
+		try
+		{
 			last.nextVariation();
-		} catch (Exception e) {
+		}
+		catch (Exception e)
+		{
 			ex = e;
 		}
 		Assert.assertNotNull(ex);

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/Variation.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/Variation.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/Variation.java
index d086c34..8bc014e 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/Variation.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/Variation.java
@@ -24,23 +24,27 @@ import java.util.List;
  *
  * Similar to <a href="https://github.com/rickynils/scalacheck">Scala Check</a>
  */
-public class Variation<T> {
-
+public class Variation<T>
+{
 	private final List<T> value;
 
-	public Variation(T...values) {
+	public Variation(T...values)
+	{
 		this.value = Arrays.asList(values);
 	}
 
-	public List<T> values() {
+	public List<T> values()
+	{
 		return value;
 	}
 
-	public static Variation<Boolean> ofBoolean() {
+	public static Variation<Boolean> ofBoolean()
+	{
 		return new Variation<>(Boolean.FALSE,Boolean.TRUE);
 	}
 
-	public static <T extends Enum<T>> Variation<T> of(Class<T> enumType) {
+	public static <T extends Enum<T>> Variation<T> of(Class<T> enumType)
+	{
 		return new Variation<>(enumType.getEnumConstants());
 	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/eecb9d74/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
index 0f32673..54e5f5f 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
@@ -649,7 +649,8 @@ public class WebPageRendererTest
 		newPageInstance=true;
 		pageStateless=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		ajax=false;
 		onePassRender=false;
@@ -659,7 +660,7 @@ public class WebPageRendererTest
 		newPageInstance=false;
 		pageStateless=false;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		// 	or
 		//		its NOT ajax and
@@ -670,7 +671,7 @@ public class WebPageRendererTest
 		ajax=false;
 		onePassRender=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		targetEqualsCurrentUrl=true;
 		redirectPolicy=RedirectPolicy.ALWAYS_REDIRECT;
@@ -679,21 +680,21 @@ public class WebPageRendererTest
 		newPageInstance=false;
 		pageStateless=false;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		//	or
 		//		the targetUrl matches current url and it's redirect-to-render
 		redirectToRender=true;
 		targetEqualsCurrentUrl=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		targetEqualsCurrentUrl=true;
 		pageStateless=true;
 		newPageInstance=true;
 		redirectToRender=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		//	or
 		//  	the request determines that the current url should be preserved
@@ -708,7 +709,7 @@ public class WebPageRendererTest
 		newPageInstance=true;
 		pageStateless=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertTrue(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 	}
 
@@ -747,13 +748,14 @@ public class WebPageRendererTest
 		newPageInstance=true;
 		pageStateless=true;
 
-		Assert.assertFalse(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		Assert.assertFalse(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 
 		redirectToRender=false;
 		newPageInstance=false;
 		pageStateless=false;
 
-		Assert.assertFalse(WebPageRenderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
+		Assert.assertFalse(renderer.shouldRenderPageAndWriteResponse(ajax, onePassRender, redirectToRender, redirectPolicy, shouldPreserveClientUrl, targetEqualsCurrentUrl, newPageInstance, pageStateless));
 	}
 
 	@Test
@@ -820,7 +822,8 @@ public class WebPageRendererTest
 		checkVariations(match,new ShouldRedirectToTargetUrl());
 	}
 
-	public void testShouldRedirectToTargetUrlCondition() {
+	@Test
+	public void shouldRedirectToTargetUrlCondition() {
 
 		boolean ajax;
 		RedirectPolicy redirectPolicy;
@@ -841,14 +844,15 @@ public class WebPageRendererTest
 		pageStateless=false;
 		sessionTemporary=false;
 
-		Assert.assertTrue(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		Assert.assertTrue(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 
 		// 	or
 		//		it's redirect-to-render
 		redirectPolicy=RedirectPolicy.AUTO_REDIRECT;
 		redirectToRender=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		Assert.assertTrue(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 
 		//	or
 		//		its ajax and the targetUrl matches current url
@@ -856,7 +860,7 @@ public class WebPageRendererTest
 		ajax=true;
 		targetEqualsCurrentUrl=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		Assert.assertTrue(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 
 		// 	or
 		//		targetUrl DONT matches current url and
@@ -867,17 +871,18 @@ public class WebPageRendererTest
 		targetEqualsCurrentUrl=false;
 		newPageInstance=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		Assert.assertTrue(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 
 		newPageInstance=false;
 		sessionTemporary=true;
 		pageStateless=true;
 
-		Assert.assertTrue(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		Assert.assertTrue(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 		// just redirect
 	}
 
-	public void testShouldNOTRedirectToTargetUrlCondition() {
+	@Test
+	public void shouldNOTRedirectToTargetUrlCondition() {
 
 		boolean ajax;
 		RedirectPolicy redirectPolicy;
@@ -907,7 +912,8 @@ public class WebPageRendererTest
 		pageStateless=false;
 		sessionTemporary=false;
 
-		Assert.assertFalse(WebPageRenderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
+		TestPageRenderer renderer = new TestPageRenderer(null);
+		Assert.assertFalse(renderer.shouldRedirectToTargetUrl(ajax, redirectPolicy, redirectToRender, targetEqualsCurrentUrl, newPageInstance, pageStateless,sessionTemporary));
 	}
 
 	private int countVariations(AbstractVariations variations) {
@@ -1036,53 +1042,4 @@ public class WebPageRendererTest
 		verify(response).sendRedirect(anyString());
 		Assert.assertTrue(stored.get());
 	}
-
-	/**
-	 * 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;
-		}
-
-		@Override
-		protected boolean isOnePassRender()
-		{
-			return false;
-		}
-
-		@Override
-		protected boolean isRedirectToRender()
-		{
-			return false;
-		}
-
-		@Override
-		protected boolean isRedirectToBuffer()
-		{
-			return false;
-		}
-
-		@Override
-		protected boolean isSessionTemporary()
-		{
-			return false;
-		}
-	}
 }