You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2009/11/15 01:55:49 UTC

svn commit: r836302 - in /wicket/trunk/wicket/src: main/java/org/apache/wicket/ng/mock/ main/java/org/apache/wicket/ng/request/cycle/ main/java/org/apache/wicket/ng/request/handler/ main/java/org/apache/wicket/ng/request/handler/impl/ main/java/org/apa...

Author: knopp
Date: Sun Nov 15 00:55:47 2009
New Revision: 836302

URL: http://svn.apache.org/viewvc?rev=836302&view=rev
Log:
Some NG stuff

Added:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java   (with props)
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java   (with props)
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java
      - copied, changed from r835536, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java   (with props)
Removed:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequest.java
Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRenderPageRequestHandlerDelegate.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java Sun Nov 15 00:55:47 2009
@@ -16,18 +16,15 @@
  */
 package org.apache.wicket.ng.mock;
 
-import org.apache.wicket.ng.Application;
 import org.apache.wicket.ng.page.PageManager;
+import org.apache.wicket.ng.protocol.http.WebApplication;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.cycle.RequestCycleContext;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
-import org.apache.wicket.ng.request.mapper.BookmarkableMapper;
-import org.apache.wicket.ng.request.mapper.PageInstanceMapper;
-import org.apache.wicket.ng.request.mapper.ResourceReferenceMapper;
 import org.apache.wicket.ng.session.SessionStore;
 
-public class MockApplication extends Application
+public class MockApplication extends WebApplication
 {
 
 	public MockApplication()
@@ -35,14 +32,6 @@
 	}
 
 	@Override
-	protected void registerDefaultEncoders()
-	{
-		registerEncoder(new PageInstanceMapper());
-		registerEncoder(new BookmarkableMapper());
-		registerEncoder(new ResourceReferenceMapper());
-	}
-
-	@Override
 	public Class<? extends RequestablePage> getHomePage()
 	{
 		return null;
@@ -54,11 +43,30 @@
 		return new MockRequestCycle(context);
 	}
 
+	private RequestablePage lastRenderedPage;
+
+	public RequestablePage getLastRenderedPage()
+	{
+		return lastRenderedPage;
+	}
+
+	public void clearLastRenderedPage()
+	{
+		lastRenderedPage = null;
+	}
+
 	@Override
 	public RenderPageRequestHandlerDelegate getRenderPageRequestHandlerDelegate(
 		RenderPageRequestHandler renderPageRequestHandler)
 	{
-		return new MockRenderPageRequestHandlerDelegate(renderPageRequestHandler);
+		return new MockRenderPageRequestHandlerDelegate(renderPageRequestHandler)
+		{
+			@Override
+			protected void onPageRender(RequestablePage page)
+			{
+				lastRenderedPage = page;
+			}
+		};
 	}
 
 	@Override

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java Sun Nov 15 00:55:47 2009
@@ -22,13 +22,22 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.wicket.ng.page.ManageablePage;
+import org.apache.wicket.ng.page.PageManager;
 import org.apache.wicket.ng.page.PageManagerContext;
 import org.apache.wicket.ng.page.common.AbstractPageManager;
 import org.apache.wicket.ng.page.common.RequestAdapter;
 
+/**
+ * Simple {@link PageManager} used for testing.
+ * 
+ * @author Matej Knopp
+ */
 public class MockPageManager extends AbstractPageManager
 {
 
+	/**
+	 * Construct.
+	 */
 	public MockPageManager()
 	{
 	}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRenderPageRequestHandlerDelegate.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRenderPageRequestHandlerDelegate.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRenderPageRequestHandlerDelegate.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRenderPageRequestHandlerDelegate.java Sun Nov 15 00:55:47 2009
@@ -16,13 +16,25 @@
  */
 package org.apache.wicket.ng.mock;
 
+import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
-import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
+import org.apache.wicket.ng.request.handler.impl.render.WebRenderPageRequestHandlerDelegate;
 
-public class MockRenderPageRequestHandlerDelegate extends RenderPageRequestHandlerDelegate
+/**
+ * Delegate subclass that intercepts the render to allow storing last rendered page instance.
+ * 
+ * @author Matej Knopp
+ */
+public abstract class MockRenderPageRequestHandlerDelegate extends
+	WebRenderPageRequestHandlerDelegate
 {
 
+	/**
+	 * Construct.
+	 * 
+	 * @param renderPageRequestHandler
+	 */
 	public MockRenderPageRequestHandlerDelegate(RenderPageRequestHandler renderPageRequestHandler)
 	{
 		super(renderPageRequestHandler);
@@ -31,7 +43,9 @@
 	@Override
 	public void respond(RequestCycle requestCycle)
 	{
-		getPageProvider().getPageInstance().renderPage();
+		onPageRender(getPageProvider().getPageInstance());
+		super.respond(requestCycle);
 	}
 
+	protected abstract void onPageRender(RequestablePage page);
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java Sun Nov 15 00:55:47 2009
@@ -20,9 +20,19 @@
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.cycle.RequestCycleContext;
 
+/**
+ * Request cycle that allows to override {@link RequestHandler} resolving to force custom
+ * {@link RequestHandler}.
+ * 
+ * @author Matej Knopp
+ */
 public class MockRequestCycle extends RequestCycle
 {
-
+	/**
+	 * Construct.
+	 * 
+	 * @param context
+	 */
 	public MockRequestCycle(RequestCycleContext context)
 	{
 		super(context);
@@ -30,6 +40,11 @@
 
 	private RequestHandler forcedRequestHandler;
 
+	/**
+	 * Forces the specified request handler to be resolved.
+	 * 
+	 * @param requestHandler
+	 */
 	public void forceRequestHandler(RequestHandler requestHandler)
 	{
 		forcedRequestHandler = requestHandler;

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java?rev=836302&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java Sun Nov 15 00:55:47 2009
@@ -0,0 +1,86 @@
+/*
+ * 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.ng.mock;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.wicket.ng.request.RequestParameters;
+import org.apache.wicket.util.string.StringValue;
+
+/**
+ * Mutable mock implementation of {@link RequestParameters}.
+ * 
+ * @author Matej Knopp
+ */
+public class MockRequestParameters implements RequestParameters
+{
+	private final Map<String, List<StringValue>> parameters = new HashMap<String, List<StringValue>>();
+
+	public Set<String> getParameterNames()
+	{
+		return Collections.unmodifiableSet(parameters.keySet());
+	}
+
+	public StringValue getParameterValue(String name)
+	{
+		List<StringValue> values = parameters.get(name);
+		return (values != null && !values.isEmpty()) ? values.get(0)
+			: StringValue.valueOf((String)null);
+	}
+
+	public List<StringValue> getParameterValues(String name)
+	{
+		List<StringValue> values = parameters.get(name);
+
+		return values != null ? Collections.unmodifiableList(values) : null;
+	}
+
+	/**
+	 * Sets value for given key.
+	 * 
+	 * @param name
+	 * @param value
+	 */
+	public void setParameterValue(String name, String value)
+	{
+		List<StringValue> list = new ArrayList<StringValue>(1);
+		list.add(StringValue.valueOf(value));
+		parameters.put(name, list);
+	}
+
+	/**
+	 * Adds value for given key.
+	 * 
+	 * @param name
+	 * @param value
+	 */
+	public void addParameterValue(String name, String value)
+	{
+		List<StringValue> list = parameters.get(name);
+		if (list == null)
+		{
+			list = new ArrayList<StringValue>(1);
+			parameters.put(name, list);
+		}
+		list.add(StringValue.valueOf(value));
+	}
+}

Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java Sun Nov 15 00:55:47 2009
@@ -35,7 +35,10 @@
  */
 public class MockSessionStore implements SessionStore
 {
-
+	/**
+	 * 
+	 * Construct.
+	 */
 	public MockSessionStore()
 	{
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebRequest.java Sun Nov 15 00:55:47 2009
@@ -28,17 +28,27 @@
 import org.apache.wicket.ng.protocol.http.WebRequest;
 import org.apache.wicket.ng.request.Url;
 
+/**
+ * Mutable mock {@link WebRequest}.
+ * 
+ * @author Matej Knopp
+ */
 public class MockWebRequest extends WebRequest
 {
 	private final Url url;
 
+	/**
+	 * Construct.
+	 * 
+	 * @param url
+	 */
 	public MockWebRequest(Url url)
 	{
 		this.url = url;
 	}
 
 	@Override
-	public WebRequest requestWithUrl(Url url)
+	public MockWebRequest requestWithUrl(Url url)
 	{
 		return new MockWebRequest(url);
 	}
@@ -50,42 +60,18 @@
 	}
 
 	@Override
-	public int hashCode()
-	{
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((url == null) ? 0 : url.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj)
-	{
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		MockWebRequest other = (MockWebRequest)obj;
-		if (url == null)
-		{
-			if (other.url != null)
-				return false;
-		}
-		else if (!url.equals(other.url))
-			return false;
-		return true;
-	}
-
-	@Override
 	public String toString()
 	{
-		return "MockRequest [url=" + url + "]";
+		return "MockWebRequest [url=" + url + "]";
 	}
 
 	private Cookie cookies[];
 
+	/**
+	 * Sets cookies for current request.
+	 * 
+	 * @param cookies
+	 */
 	public void setCookies(Cookie[] cookies)
 	{
 		this.cookies = cookies;
@@ -129,6 +115,24 @@
 		values.add(value);
 	}
 
+	/**
+	 * Sets date header for given name.
+	 * 
+	 * @param name
+	 * @param value
+	 */
+	public void setDateHeader(String name, long value)
+	{
+		removeHeader(name);
+		addHeaderObject(name, value);
+	}
+
+	/**
+	 * Adds date header for given name.
+	 * 
+	 * @param name
+	 * @param value
+	 */
 	public void addDateHeader(String name, long value)
 	{
 		addHeaderObject(name, value);
@@ -141,13 +145,36 @@
 		return (h == null || h.isEmpty()) ? null : h.get(0).toString();
 	}
 
+	/**
+	 * Sets header for given name.
+	 * 
+	 * @param name
+	 * @param value
+	 */
 	public void setHeader(String name, String value)
 	{
+		removeHeader(name);
+		addHeader(name, value);
+	}
+
+	/**
+	 * Adds header for given name.
+	 * 
+	 * @param name
+	 * @param value
+	 */
+	public void addHeader(String name, String value)
+	{
 		addHeaderObject(name, value);
 	}
 
 	private Locale locale = Locale.getDefault();
 
+	/**
+	 * Sets request locale.
+	 * 
+	 * @param locale
+	 */
 	public void setLocale(Locale locale)
 	{
 		this.locale = locale;
@@ -177,8 +204,21 @@
 		return res;
 	}
 
+	/**
+	 * Removes header with specified name.
+	 * 
+	 * @param header
+	 */
 	public void removeHeader(String header)
 	{
 		headers.remove(header);
 	}
+
+	private final MockRequestParameters postRequestParameters = new MockRequestParameters();
+
+	@Override
+	public MockRequestParameters getPostRequestParameters()
+	{
+		return postRequestParameters;
+	}
 }

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java?rev=836302&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java Sun Nov 15 00:55:47 2009
@@ -0,0 +1,272 @@
+/*
+ * 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.ng.mock;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.Cookie;
+
+import org.apache.wicket.ng.WicketRuntimeException;
+import org.apache.wicket.ng.request.response.WebResponse;
+
+/**
+ * Mocked {@link WebResponse}.
+ * 
+ * @author Matej Knopp
+ */
+public class MockWebResponse extends WebResponse
+{
+
+	/**
+	 * Construct.
+	 */
+	public MockWebResponse()
+	{
+	}
+
+	private final List<Cookie> cookies = new ArrayList<Cookie>();
+
+	@Override
+	public void addCookie(Cookie cookie)
+	{
+		cookies.add(cookie);
+	}
+
+	@Override
+	public void clearCookie(Cookie cookie)
+	{
+		cookies.remove(cookie);
+	}
+
+	/**
+	 * @return cookies set in this response
+	 */
+	public List<Cookie> getCookies()
+	{
+		return Collections.unmodifiableList(cookies);
+	}
+
+	private String redirectUrl;
+
+	@Override
+	public void sendRedirect(String url)
+	{
+		redirectUrl = url;
+	}
+
+	/**
+	 * @return redirect URL or <code>null</code> if {@link #sendRedirect(String)} was not called.
+	 */
+	public String getRedirectUrl()
+	{
+		return redirectUrl;
+	}
+
+	/**
+	 * @return <code>true</code> if redirect URL was set, <code>false</code> otherwise.
+	 */
+	public boolean isRedirect()
+	{
+		return redirectUrl != null;
+	}
+
+	private Long contentLength;
+
+	@Override
+	public void setContentLength(long length)
+	{
+		contentLength = length;
+	}
+
+	/**
+	 * @return content length (set by {@link #setContentLength(long)})
+	 */
+	public Long getContentLength()
+	{
+		return contentLength;
+	}
+
+	private String contentType;
+
+	@Override
+	public void setContentType(String mimeType)
+	{
+		contentType = mimeType;
+	}
+
+	/**
+	 * @return content mime type
+	 */
+	public String getContentType()
+	{
+		return contentType;
+	}
+
+	private final Map<String, Object> headers = new HashMap<String, Object>();
+
+	@Override
+	public void setDateHeader(String name, long date)
+	{
+		headers.put(name, date);
+	}
+
+	/**
+	 * @param name
+	 * 
+	 * @return date header with specified name
+	 */
+	public long getDateHeader(String name)
+	{
+		Object value = headers.get(name);
+		if (value == null)
+		{
+			throw new WicketRuntimeException("Date header '" + name + "' is not set.");
+		}
+		else if (value instanceof Long == false)
+		{
+			throw new WicketRuntimeException("Header '" + name + "' is not date type.");
+		}
+		else
+		{
+			return (Long)value;
+		}
+	}
+
+	@Override
+	public void setHeader(String name, String value)
+	{
+		headers.put(name, value);
+	}
+
+	/**
+	 * @param name
+	 * 
+	 * @return header string with specified name
+	 */
+	public String getHeader(String name)
+	{
+		Object value = headers.get(name);
+		return value != null ? value.toString() : null;
+	}
+
+	/**
+	 * @param name
+	 * 
+	 * @return <code>true</code> if the header was set, <code>false</code> otherwise
+	 */
+	public boolean hasHeader(String name)
+	{
+		return headers.containsKey(name);
+	}
+
+	/**
+	 * @return set of all header names
+	 */
+	public Set<String> getHeaderNames()
+	{
+		return Collections.unmodifiableSet(headers.keySet());
+	}
+
+	Integer status;
+
+	@Override
+	public void setStatus(int sc)
+	{
+		status = sc;
+	}
+
+	/**
+	 * @return status code or <code>null</code> if status was not set
+	 */
+	public Integer getStatus()
+	{
+		return status;
+	}
+
+	@Override
+	public String encodeURL(String url)
+	{
+		return url;
+	}
+
+	private StringBuilder textResponse;
+	private ByteArrayOutputStream binaryResponse;
+
+	@Override
+	public void write(CharSequence sequence)
+	{
+		if (binaryResponse != null)
+		{
+			throw new IllegalStateException("Binary response has already been initiated.");
+		}
+		if (textResponse == null)
+		{
+			textResponse = new StringBuilder();
+		}
+		textResponse.append(sequence);
+	}
+
+	/**
+	 * @return text response
+	 */
+	public CharSequence getTextResponse()
+	{
+		return textResponse;
+	}
+
+	@Override
+	public void write(byte[] array)
+	{
+		if (textResponse != null)
+		{
+			throw new IllegalStateException("Text response has already been initiated.");
+		}
+		if (binaryResponse == null)
+		{
+			binaryResponse = new ByteArrayOutputStream();
+		}
+		try
+		{
+			binaryResponse.write(array);
+		}
+		catch (IOException yeahRight)
+		{
+		}
+	}
+
+	/**
+	 * @return binary response
+	 */
+	public byte[] getBinaryResponse()
+	{
+		if (binaryResponse == null)
+		{
+			return null;
+		}
+		else
+		{
+			return binaryResponse.toByteArray();
+		}
+	}
+}

Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java Sun Nov 15 00:55:47 2009
@@ -28,6 +28,7 @@
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.component.PageParameters;
 import org.apache.wicket.ng.request.component.RequestablePage;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageProvider;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.response.Response;
@@ -391,7 +392,7 @@
 	 */
 	public void setResponsePage(RequestablePage page)
 	{
-		scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new PageProvider(page),
+		scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new DefaultPageProvider(page),
 			RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
 	}
 
@@ -404,7 +405,7 @@
 	public void setResponsePage(Class<? extends RequestablePage> pageClass,
 		PageParameters parameters)
 	{
-		PageProvider provider = new PageProvider(pageClass);
+		PageProvider provider = new DefaultPageProvider(pageClass);
 		scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(provider,
 			RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
 	}

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java (from r835536, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java&r1=835536&r2=836302&rev=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java Sun Nov 15 00:55:47 2009
@@ -36,16 +36,16 @@
  * Purpose of this class is to reduce complexity of both {@link RequestMapper}s and
  * {@link RequestHandler}s. {@link RequestMapper} examines the URL, gathers all relevant information
  * about the page in the URL (combination of page id, page class, page parameters and render count),
- * creates {@link PageProvider} object and creates a {@link RequestHandler} instance that can use
- * the {@link PageProvider} to access the page.
+ * creates {@link DefaultPageProvider} object and creates a {@link RequestHandler} instance that can
+ * use the {@link DefaultPageProvider} to access the page.
  * <p>
- * Apart from simplifying {@link RequestMapper}s and {@link RequestHandler}s {@link PageProvider}
- * also helps performance because creating or obtaining page from {@link PageManager} is delayed
- * until the {@link RequestHandler} actually requires the page.
+ * Apart from simplifying {@link RequestMapper}s and {@link RequestHandler}s
+ * {@link DefaultPageProvider} also helps performance because creating or obtaining page from
+ * {@link PageManager} is delayed until the {@link RequestHandler} actually requires the page.
  * 
  * @author Matej Knopp
  */
-public class PageProvider
+public class DefaultPageProvider implements PageProvider
 {
 	private Integer renderCount;
 	private PageSource pageSource;
@@ -62,7 +62,7 @@
 	 * @param renderCount
 	 *            optional argument
 	 */
-	public PageProvider(int pageId, Integer renderCount)
+	public DefaultPageProvider(int pageId, Integer renderCount)
 	{
 		this.pageId = pageId;
 		this.renderCount = renderCount;
@@ -78,7 +78,8 @@
 	 * @param renderCount
 	 *            optional argument
 	 */
-	public PageProvider(int pageId, Class<? extends RequestablePage> pageClass, Integer renderCount)
+	public DefaultPageProvider(int pageId, Class<? extends RequestablePage> pageClass,
+		Integer renderCount)
 	{
 		this(pageId, pageClass, new PageParameters(), renderCount);
 	}
@@ -94,7 +95,7 @@
 	 * @param renderCount
 	 *            optional argument
 	 */
-	public PageProvider(int pageId, Class<? extends RequestablePage> pageClass,
+	public DefaultPageProvider(int pageId, Class<? extends RequestablePage> pageClass,
 		PageParameters pageParameters, Integer renderCount)
 	{
 		this.pageId = pageId;
@@ -110,7 +111,8 @@
 	 * @param pageClass
 	 * @param pageParameters
 	 */
-	public PageProvider(Class<? extends RequestablePage> pageClass, PageParameters pageParameters)
+	public DefaultPageProvider(Class<? extends RequestablePage> pageClass,
+		PageParameters pageParameters)
 	{
 		setPageClass(pageClass);
 		setPageParameters(pageParameters);
@@ -122,7 +124,7 @@
 	 * 
 	 * @param pageClass
 	 */
-	public PageProvider(Class<? extends RequestablePage> pageClass)
+	public DefaultPageProvider(Class<? extends RequestablePage> pageClass)
 	{
 		this(pageClass, new PageParameters());
 	}
@@ -133,7 +135,7 @@
 	 * 
 	 * @param page
 	 */
-	public PageProvider(RequestablePage page)
+	public DefaultPageProvider(RequestablePage page)
 	{
 		Checks.argumentNotNull(page, "page");
 
@@ -141,14 +143,7 @@
 	}
 
 	/**
-	 * Returns page instance specified by the constructor.
-	 * 
-	 * @return page instance
-	 * @throws StalePageException
-	 *             if render count has been specified in constructor and the render count of page
-	 *             does not match the valeu
-	 * @throw {@link PageExpiredException} if the specified page could not have been found and the
-	 *        constructor used did not provide enough information to create new page instance
+	 * @see org.apache.wicket.ng.request.handler.PageProvider#getPageInstance()
 	 */
 	public RequestablePage getPageInstance()
 	{
@@ -165,9 +160,7 @@
 	}
 
 	/**
-	 * Returns {@link PageParameters} of the page specified by constructor.
-	 * 
-	 * @return page parameters
+	 * @see org.apache.wicket.ng.request.handler.PageProvider#getPageParameters()
 	 */
 	public PageParameters getPageParameters()
 	{
@@ -182,9 +175,7 @@
 	}
 
 	/**
-	 * Returns class of the page specified by the constructor.
-	 * 
-	 * @return page class
+	 * @see org.apache.wicket.ng.request.handler.PageProvider#getPageClass()
 	 */
 	public Class<? extends RequestablePage> getPageClass()
 	{
@@ -278,9 +269,9 @@
 	}
 
 	/**
-	 * If the {@link PageProvider} is used outside request thread (thread that does not have
+	 * If the {@link DefaultPageProvider} is used outside request thread (thread that does not have
 	 * application instance assigned) it is necessary to specify a {@link PageSource} instance so
-	 * that {@link PageProvider} knows how to get a page instance.
+	 * that {@link DefaultPageProvider} knows how to get a page instance.
 	 * 
 	 * @param pageSource
 	 */

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java Sun Nov 15 00:55:47 2009
@@ -22,20 +22,20 @@
 import org.apache.wicket.util.lang.Checks;
 
 /**
- * Extension of {@link PageProvider} that is also capable of providing a Component belonging to the
+ * Extension of {@link DefaultPageProvider} that is also capable of providing a Component belonging to the
  * page.
  * 
- * @see PageProvider
+ * @see DefaultPageProvider
  * 
  * @author Matej Knopp
  */
-public class PageAndComponentProvider extends PageProvider
+public class PageAndComponentProvider extends DefaultPageProvider
 {
 	private RequestableComponent component;
 	private String componentPath;
 
 	/**
-	 * @see PageProvider#PageProvider(RequestablePage)
+	 * @see DefaultPageProvider#PageProvider(RequestablePage)
 	 * 
 	 * @param page
 	 * @param componentPath
@@ -47,7 +47,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(RequestablePage)
+	 * @see DefaultPageProvider#PageProvider(RequestablePage)
 	 * 
 	 * @param page
 	 * @param component
@@ -62,7 +62,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(Class, PageParameters)
+	 * @see DefaultPageProvider#PageProvider(Class, PageParameters)
 	 * 
 	 * @param pageClass
 	 * @param pageParameters
@@ -76,7 +76,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(Class)
+	 * @see DefaultPageProvider#PageProvider(Class)
 	 * 
 	 * @param pageClass
 	 * @param componentPath
@@ -88,7 +88,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(int, Class, Integer)
+	 * @see DefaultPageProvider#PageProvider(int, Class, Integer)
 	 * 
 	 * @param pageId
 	 * @param pageClass
@@ -103,7 +103,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(int, Class, PageParameters, Integer)
+	 * @see DefaultPageProvider#PageProvider(int, Class, PageParameters, Integer)
 	 * 
 	 * @param pageId
 	 * @param pageClass
@@ -119,7 +119,7 @@
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(int, Integer)
+	 * @see DefaultPageProvider#PageProvider(int, Integer)
 	 * 
 	 * @param pageId
 	 * @param renderCount

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java?rev=836302&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java Sun Nov 15 00:55:47 2009
@@ -0,0 +1,66 @@
+/*
+ * 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.ng.request.handler;
+
+import org.apache.wicket.ng.request.component.PageExpiredException;
+import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.ng.request.component.RequestablePage;
+import org.apache.wicket.ng.request.mapper.StalePageException;
+
+
+/**
+ * Represents object capable of providing a page instance. In some cases the implementation class
+ * might now page class and page parameters without having the actual page instance. Thus it's
+ * recommended to call {@link #getPageParameters()} instead of calling {@link #getPageInstance()}
+ * .getPageParameters(). Same goes for page class.
+ * 
+ * @author Matej Knopp
+ */
+public interface PageProvider
+{
+	/**
+	 * Returns page instance specified by the constructor.
+	 * 
+	 * @return page instance
+	 * @throws StalePageException
+	 *             if render count has been specified in constructor and the render count of page
+	 *             does not match the valeu
+	 * @throw {@link PageExpiredException} if the specified page could not have been found and the
+	 *        constructor used did not provide enough information to create new page instance
+	 */
+	public abstract RequestablePage getPageInstance();
+
+	/**
+	 * Returns {@link PageParameters} of the page.
+	 * 
+	 * @return page parameters
+	 */
+	public abstract PageParameters getPageParameters();
+
+	/**
+	 * Returns class of the page.
+	 * 
+	 * @return page class
+	 */
+	public abstract Class<? extends RequestablePage> getPageClass();
+
+	/**
+	 * Detaches the page if it has been loaded.
+	 */
+	public abstract void detach();
+
+}
\ No newline at end of file

Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java Sun Nov 15 00:55:47 2009
@@ -24,7 +24,7 @@
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.handler.ComponentRequestHandler;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
-import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.ng.request.listener.RequestListenerInterface;
@@ -123,7 +123,7 @@
 			// schedule page render after current request handler is done. this can be overridden during invocation of listener
 			// method (i.e. by calling RequestCycle#setResponsePage)
 			RedirectPolicy policy = getPage().isPageStateless() ? RedirectPolicy.NEVER_REDIRECT : RedirectPolicy.AUTO_REDIRECT;
-			requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new PageProvider(getPage()), policy));
+			requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(new DefaultPageProvider(getPage()), policy));
 
 			if (getBehaviorIndex() == null)
 			{

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java Sun Nov 15 00:55:47 2009
@@ -23,7 +23,7 @@
 import org.apache.wicket.ng.request.component.PageParameters;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
-import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.BookmarkablePageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
@@ -142,7 +142,7 @@
 	
 	private RequestHandler processBookmarkable(Class<? extends RequestablePage> pageClass, PageParameters pageParameters)
 	{
-		PageProvider provider = new PageProvider(pageClass, pageParameters);
+		DefaultPageProvider provider = new DefaultPageProvider(pageClass, pageParameters);
 		provider.setPageSource(getContext());
 		return new RenderPageRequestHandler(provider);
 	}
@@ -150,7 +150,7 @@
 	private RequestHandler processHybrid(PageInfo pageInfo, Class<? extends RequestablePage> pageClass,
 			PageParameters pageParameters, Integer renderCount)
 	{
-		PageProvider provider = new PageProvider(pageInfo.getPageId(), pageClass, pageParameters,
+		DefaultPageProvider provider = new DefaultPageProvider(pageInfo.getPageId(), pageClass, pageParameters,
 				renderCount);
 		provider.setPageSource(getContext());
 		return new RenderPageRequestHandler(provider);

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java Sun Nov 15 00:55:47 2009
@@ -21,7 +21,7 @@
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
-import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.listener.RequestListenerInterface;
@@ -66,7 +66,7 @@
 
 				if (info.getComponentInfo() == null)
 				{
-					PageProvider provider = new PageProvider(info.getPageInfo().getPageId(), renderCount);
+					DefaultPageProvider provider = new DefaultPageProvider(info.getPageInfo().getPageId(), renderCount);
 					provider.setPageSource(getContext());
 					// render page					
 					return new RenderPageRequestHandler(provider);

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java Sun Nov 15 00:55:47 2009
@@ -24,6 +24,7 @@
 import org.apache.wicket.ng.request.component.RequestableComponent;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageProvider;
 import org.apache.wicket.ng.request.handler.PageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
@@ -244,7 +245,7 @@
 	 */
     public void testEncode1()
     {
-        PageProvider provider = new PageProvider(MockPage.class, new PageParameters());
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, new PageParameters());
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -261,7 +262,7 @@
         parameters.setIndexedParameter(1, "i2");
         parameters.setNamedParameter("a", "b");
         parameters.setNamedParameter("b", "c");
-        PageProvider provider = new PageProvider(MockPage.class, parameters);
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, parameters);
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -279,7 +280,7 @@
         parameters.setNamedParameter("a", "b");
         parameters.setNamedParameter("b", "c");
 
-        PageProvider provider = new PageProvider(MockPage.class, parameters);
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, parameters);
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -299,7 +300,7 @@
         page.getPageParameters().setNamedParameter("b", "c");
         page.setCreatedBookmarkable(true);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
 
@@ -319,7 +320,7 @@
 
         page.setCreatedBookmarkable(false);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
 
@@ -393,7 +394,7 @@
         page.setCreatedBookmarkable(true);
         page.setPageStateless(true);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
 
         Url url = encoder.mapHandler(handler);

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java Sun Nov 15 00:55:47 2009
@@ -25,6 +25,7 @@
 import org.apache.wicket.ng.request.component.RequestableComponent;
 import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageProvider;
 import org.apache.wicket.ng.request.handler.PageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
@@ -268,7 +269,7 @@
 	 */
     public void testEncode1()
     {
-        PageProvider provider = new PageProvider(MockPage.class, new PageParameters());
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, new PageParameters());
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -285,7 +286,7 @@
         parameters.setIndexedParameter(1, "i2");
         parameters.setNamedParameter("a", "b");
         parameters.setNamedParameter("b", "c");
-        PageProvider provider = new PageProvider(MockPage.class, parameters);
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, parameters);
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -303,7 +304,7 @@
         parameters.setNamedParameter("a", "b");
         parameters.setNamedParameter("b", "c");
 
-        PageProvider provider = new PageProvider(MockPage.class, parameters);
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, parameters);
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
@@ -323,7 +324,7 @@
         page.getPageParameters().setNamedParameter("b", "c");
         page.setCreatedBookmarkable(true);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
 
@@ -343,7 +344,7 @@
 
         page.setCreatedBookmarkable(false);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
         Url url = encoder.mapHandler(handler);
 
@@ -418,7 +419,7 @@
         page.setCreatedBookmarkable(true);
         page.setPageStateless(true);
 
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
 
         Url url = encoder.mapHandler(handler);
@@ -517,7 +518,7 @@
         parameters.setNamedParameter("param2", "p2");
 
 
-        PageProvider provider = new PageProvider(MockPage.class, parameters);
+        DefaultPageProvider provider = new DefaultPageProvider(MockPage.class, parameters);
         provider.setPageSource(context);
         RequestHandler handler = new BookmarkablePageRequestHandler(provider);
         Url url = placeholderEncoder.mapHandler(handler);

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java Sun Nov 15 00:55:47 2009
@@ -22,6 +22,7 @@
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.component.RequestableComponent;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
+import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageProvider;
 import org.apache.wicket.ng.request.handler.PageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
@@ -181,7 +182,7 @@
     public void testEncode1()
     {
         MockPage page = new MockPage(15);
-        PageProvider provider = new PageProvider(page);
+        PageProvider provider = new DefaultPageProvider(page);
         RequestHandler handler = new RenderPageRequestHandler(provider);
 
         Url url = encoder.mapHandler(handler);

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java?rev=836302&r1=836301&r2=836302&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java Sun Nov 15 00:55:47 2009
@@ -23,15 +23,15 @@
 import org.apache.wicket.ng.markup.html.link.ILinkListener;
 import org.apache.wicket.ng.markup.html.link.Link;
 import org.apache.wicket.ng.mock.MockApplication;
-import org.apache.wicket.ng.mock.MockRequest;
 import org.apache.wicket.ng.mock.MockRequestCycle;
+import org.apache.wicket.ng.mock.MockWebRequest;
+import org.apache.wicket.ng.mock.MockWebResponse;
 import org.apache.wicket.ng.request.Request;
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
 import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
 import org.apache.wicket.ng.request.mapper.MountedMapper;
-import org.apache.wicket.ng.request.response.Response;
-import org.apache.wicket.ng.request.response.StringResponse;
+import org.apache.wicket.ng.settings.RequestCycleSettings.RenderStrategy;
 
 public class TestPageRender extends TestCase
 {
@@ -71,24 +71,25 @@
 		app.setName("TestApplication1");
 		app.set(); // set it to ThreadContext
 		app.initApplication();
+		app.getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
 
 		// Mount the test page
 		app.registerEncoder(new MountedMapper("first-test-page", Page1.class));
 
 		// Construct request for first-test-page
-		Request request = new MockRequest(Url.parse("first-test-page"));
-		Response response = new StringResponse();
+		Request request = new MockWebRequest(Url.parse("first-test-page"));
+		MockWebResponse response = new MockWebResponse();
 
 		// create and execute request cycle
 		MockRequestCycle cycle = (MockRequestCycle)app.createRequestCycle(request, response);
 		cycle.processRequestAndDetach();
 
 		System.out.println("Rendered:");
-		System.out.println(response);
+		System.out.println(response.getTextResponse());
 
 		// invoke listener on the page
-		request = new MockRequest(Url.parse("wicket/page?0-1.ILinkListener-link"));
-		response = new StringResponse();
+		request = new MockWebRequest(Url.parse("wicket/page?0-1.ILinkListener-link"));
+		response = new MockWebResponse();
 		cycle = (MockRequestCycle)app.createRequestCycle(request, response);
 		cycle.processRequestAndDetach();