You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2007/05/05 11:07:08 UTC

svn commit: r535482 - in /incubator/wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/markup/ main/java/org/apache/wicket/markup/html/border/ main/java/org/apache/wicket/settings/ main/java/org/apache/wicket/util/diff/ main/java/org/apache/w...

Author: jdonnerstag
Date: Sat May  5 02:07:07 2007
New Revision: 535482

URL: http://svn.apache.org/viewvc?view=rev&rev=535482
Log:
The MarkupParser can no longer be re-used for multiple markup files. You have to get a new instance from IMarkupParserFactory for every markup file to be parsed (which Wicket-core did already anyway). The MarkupParser API has been changed to make that clear as well.
This has the advantage that initializing the default set of markup filters now happens in the MarkupParsers constructor and that adding your own filter is now just a matter of invoking appendMarkupFilter() once you created a new MarkupParser. Creating a new MarkupParser happens in MarkupParserFactory (no change) which is registered with Settings (IMarkupSettings). But MarkupParserFactory has changed to reflect the change in MarkupParser. MarkupParserFactory.newMarkupParser(resource) gets you a new MarkupParser. In order add your own IMarkupFilter whenever Wicket requests a parser, you must subclass MarkupParserFactory, substitute newMarkupParser and register your own MarkupParserFactory with Settings.

public class MyMarkupParserFactory
{
  ...
  public MarkupParser newMarkupParser(IMarkupResouceStream resource)
  {
     MarkupParser parser = new MarkupParser(resource);
     parser.appendMarkupFilter(new MyFilter());
     return parser;
  }
}

In order to allow better control over where in the chain of IMarkupFilter to place your own one, appendMarkupFilter has got a second parameter "markupFilterClass". Your own IMarkupFilter will inserted before the one identified by the parameter.

Move some code from WicketTestCase into WicketTester

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/IMarkupParserFactory.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParserFactory.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupResourceStream.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/diff/DiffUtil.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ResourceTest.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/WicketTestCase.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/HtmlProblemFinderTest.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
    incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/IMarkupParserFactory.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/IMarkupParserFactory.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/IMarkupParserFactory.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/IMarkupParserFactory.java Sat May  5 02:07:07 2007
@@ -24,7 +24,9 @@
 public interface IMarkupParserFactory
 {
 	/**
+	 * @param resource
+	 *            The markup resource (file)
 	 * @return new instance of {@link MarkupParser}
 	 */
-	MarkupParser newMarkupParser();
+	MarkupParser newMarkupParser(final MarkupResourceStream resource);
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupCache.java Sat May  5 02:07:07 2007
@@ -342,7 +342,7 @@
 		{
 			// read and parse the markup
 			Markup markup = application.getMarkupSettings().getMarkupParserFactory()
-					.newMarkupParser().readAndParse(markupResourceStream);
+					.newMarkupParser(markupResourceStream).parse();
 
 			// Check for markup inheritance. If it contains <wicket:extend>
 			// the two markups get merged.

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParser.java Sat May  5 02:07:07 2007
@@ -23,12 +23,16 @@
 
 import org.apache.wicket.Application;
 import org.apache.wicket.Page;
+import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.parser.IMarkupFilter;
 import org.apache.wicket.markup.parser.IXmlPullParser;
+import org.apache.wicket.markup.parser.XmlPullParser;
 import org.apache.wicket.markup.parser.filter.BodyTagHandler;
+import org.apache.wicket.markup.parser.filter.EnclosureHandler;
 import org.apache.wicket.markup.parser.filter.HeadForceTagIdHandler;
 import org.apache.wicket.markup.parser.filter.HtmlHandler;
 import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
+import org.apache.wicket.markup.parser.filter.PrependContextPathHandler;
 import org.apache.wicket.markup.parser.filter.TagTypeHandler;
 import org.apache.wicket.markup.parser.filter.WicketLinkTagHandler;
 import org.apache.wicket.markup.parser.filter.WicketMessageTagHandler;
@@ -37,10 +41,9 @@
 import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
 import org.apache.wicket.settings.IMarkupSettings;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 
-
-
 /**
  * This is a Wicket MarkupParser specifically for (X)HTML. It makes use of a
  * streaming XML parser to read the markup and IMarkupFilters to remove
@@ -78,14 +81,43 @@
 	/**
 	 * Constructor.
 	 * 
+	 * @param resource
+	 *            The markup resource (file)
+	 */
+	public MarkupParser(final MarkupResourceStream resource)
+	{
+		this(new XmlPullParser(), resource);
+	}
+
+	/**
+	 * Constructor. Usually for testing purposes only
+	 * 
+	 * @param markup
+	 *            The markup resource.
+	 */
+	public MarkupParser(final String markup)
+	{
+		this(new XmlPullParser(), new MarkupResourceStream(new StringResourceStream(markup)));
+	}
+
+	/**
+	 * Constructor.
+	 * 
 	 * @param xmlParser
 	 *            The streaming xml parser to read and parse the markup
+	 * @param resource
+	 *            The markup resource (file)
 	 */
-	public MarkupParser(final IXmlPullParser xmlParser)
+	public MarkupParser(final IXmlPullParser xmlParser, final MarkupResourceStream resource)
 	{
 		this.xmlParser = xmlParser;
-		this.markup = new Markup();
 		this.markupSettings = Application.get().getMarkupSettings();
+
+		this.markup = new Markup();
+		this.markup.setResource(resource);
+
+		// Initialize the markup filter chain
+		initializeMarkupFilters();
 	}
 
 	/**
@@ -145,6 +177,9 @@
 				appendMarkupFilter(new HeadForceTagIdHandler(containerInfo.getContainerClass()));
 			}
 		}
+		
+		appendMarkupFilter(new PrependContextPathHandler(Application.get()));
+		appendMarkupFilter(new EnclosureHandler());
 	}
 
 	/**
@@ -152,72 +187,76 @@
 	 * filters if required.
 	 * 
 	 * @see #appendMarkupFilter(IMarkupFilter)
+	 * @deprecated since 1.3
 	 */
 	protected void initFilterChain()
 	{
+		throw new WicketRuntimeException("This method is no longer suppoert: since 1.3");
 	}
 
 	/**
 	 * Append a new filter to the list of already pre-configured markup filters.
-	 * To be used by subclasses which implement {@link #initFilterChain()}.
 	 * 
 	 * @param filter
 	 *            The filter to be appended
 	 */
 	public final void appendMarkupFilter(final IMarkupFilter filter)
 	{
-		filter.setParent(this.markupFilterChain);
-		this.markupFilterChain = filter;
+		appendMarkupFilter(filter, PrependContextPathHandler.class);
 	}
 
 	/**
-	 * Reads and parses markup from a file.
+	 * Append a new filter to the list of already pre-configured markup filters.
 	 * 
-	 * @param resource
-	 *            The file
-	 * @return The markup
-	 * @throws IOException
-	 * @throws ResourceStreamNotFoundException
+	 * @param filter
+	 *            The filter to be appended
+	 * @param beforeFilter
+	 *            The filter should be added before the beforeFilter. If
+	 *            beforeFilter == null or beforeFilter not found than append to
+	 *            the end
 	 */
-	public final Markup readAndParse(final MarkupResourceStream resource) throws IOException,
-			ResourceStreamNotFoundException
+	public final void appendMarkupFilter(final IMarkupFilter filter,
+			final Class beforeFilter)
 	{
-		// Remove all existing markup elements
-		this.markup.reset();
-
-		// For diagnostic purposes
-		this.markup.setResource(resource);
-
-		// Initialize the xml parser
-		this.xmlParser.parse(resource.getInputStream(), this.markupSettings.getDefaultMarkupEncoding());
-
-		// parse the xml markup and tokenize it into wicket relevant markup
-		// elements
-		parseMarkup();
-
-		this.markup.setEncoding(xmlParser.getEncoding());
-		this.markup.setXmlDeclaration(xmlParser.getXmlDeclaration());
-
-		return this.markup;
+		if ((beforeFilter == null) || (this.markupFilterChain == null))
+		{
+			filter.setParent(this.markupFilterChain);
+			this.markupFilterChain = filter;
+		}
+		else
+		{
+			IMarkupFilter current = this.markupFilterChain;
+			while (current != null)
+			{
+				if (current.getClass() == beforeFilter)
+				{
+					filter.setParent(current.getParent());
+					current.setParent(filter);
+					break;
+				}
+				current = current.getParent();
+			}
+			
+			if (current == null)
+			{
+				filter.setParent(this.markupFilterChain);
+				this.markupFilterChain = filter;
+			}
+		}
 	}
 
 	/**
-	 * Parse the markup.
+	 * Reads and parses markup from a file.
 	 * 
-	 * @param string
-	 *            The markup
 	 * @return The markup
 	 * @throws IOException
 	 * @throws ResourceStreamNotFoundException
 	 */
-	public final Markup parse(final String string) throws IOException,
-			ResourceStreamNotFoundException
+	public final Markup parse() throws IOException, ResourceStreamNotFoundException
 	{
-		// Remove all existing markup elements
-		this.markup.reset();
-
 		// Initialize the xml parser
-		this.xmlParser.parse(string);
+		this.xmlParser.parse(this.markup.getResource().getInputStream(), this.markupSettings
+				.getDefaultMarkupEncoding());
 
 		// parse the xml markup and tokenize it into wicket relevant markup
 		// elements
@@ -235,12 +274,6 @@
 	 */
 	private void parseMarkup()
 	{
-		// Initialize the markup filter chain
-		initializeMarkupFilters();
-
-		// Allow subclasses to extend the filter chain
-		initFilterChain();
-
 		// Get relevant settings from the Application
 		final boolean stripComments = this.markupSettings.getStripComments();
 		final boolean compressWhitespace = this.markupSettings.getCompressWhitespace();

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParserFactory.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParserFactory.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParserFactory.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupParserFactory.java Sat May  5 02:07:07 2007
@@ -16,84 +16,52 @@
  */
 package org.apache.wicket.markup;
 
-import org.apache.wicket.Application;
 import org.apache.wicket.markup.parser.IMarkupFilter;
 import org.apache.wicket.markup.parser.XmlPullParser;
-import org.apache.wicket.markup.parser.filter.EnclosureHandler;
-import org.apache.wicket.markup.parser.filter.PrependContextPathHandler;
+import org.apache.wicket.settings.IMarkupSettings;
 
 /**
- * Default implementation of IMarkupParserFactory
+ * Default implementation of IMarkupParserFactory. It creates a MarkupParser
+ * with a standard set of IMarkupFilter. You may add IMarkupFilters like shown
+ * below, but don't forget to register your own MarkupParserFactory with
+ * Settings to become activated.
+ * 
+ * <pre>
+ * class MyMarkupParserFactory
+ * {
+ *   ...
+ *   public MarkupParser newMarkupParser(final MarkupResourceStream resource)
+ *   {
+ *      MarkupParser parser = new MarkupParser(new XmlPullParser(), resource);
+ *      parser.appendMarkupFilter(new MyOwnFilter());
+ *      return parser;
+ *   }
+ *   ...
+ * }
+ * </pre>
+ * 
+ * @see IMarkupFilter
+ * @see MarkupParser
+ * @see IMarkupSettings
  * 
  * @author Igor Vaynberg (ivaynberg)
+ * @author Juergen Donnerstag
  */
 public class MarkupParserFactory implements IMarkupParserFactory
 {
-	private IMarkupFilter[] filters;
-
-	// FIXME right now we add the two default filters in 3 places, refactor so
-	// it is done in a single place
-
-	/**
-	 * Construct.
-	 * 
-	 * @param application
-	 *            Application settings necessary to configure the parser
-	 */
-	public MarkupParserFactory(final Application application)
-	{
-		this.filters = new IMarkupFilter[] { new PrependContextPathHandler(application),
-				new EnclosureHandler() };
-	}
-
-	/**
-	 * Construct.
-	 * 
-	 * @param application
-	 *            Application settings necessary to configure the parser
-	 * @param filters
-	 *            additional markup filters
-	 */
-	public MarkupParserFactory(final Application application, IMarkupFilter[] filters)
-	{
-		this.filters = new IMarkupFilter[filters.length + 2];
-		System.arraycopy(filters, 0, this.filters, 0, filters.length);
-		this.filters[filters.length - 1] = new PrependContextPathHandler(application);
-		this.filters[filters.length] = new EnclosureHandler();
-	}
-
 	/**
 	 * Construct.
 	 * 
-	 * @param application
-	 *            Application settings necessary to configure the parser
-	 * @param filter
-	 *            additional markup filter
 	 */
-	public MarkupParserFactory(final Application application, IMarkupFilter filter)
+	public MarkupParserFactory()
 	{
-		this.filters = new IMarkupFilter[] { filter, new PrependContextPathHandler(application),
-				new EnclosureHandler() };
 	}
 
 	/**
-	 * @see org.apache.wicket.markup.IMarkupParserFactory#newMarkupParser()
+	 * @see org.apache.wicket.markup.IMarkupParserFactory#newMarkupParser(org.apache.wicket.markup.MarkupResourceStream)
 	 */
-	public MarkupParser newMarkupParser()
+	public MarkupParser newMarkupParser(final MarkupResourceStream resource)
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser())
-		{
-			public void initFilterChain()
-			{
-				if (filters != null)
-				{
-					for (int i = 0; i < filters.length; i++)
-					{
-						appendMarkupFilter(filters[i]);
-					}
-				}
-			}
-		};
-		return parser;
+		return new MarkupParser(new XmlPullParser(), resource);
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupResourceStream.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupResourceStream.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupResourceStream.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/MarkupResourceStream.java Sat May  5 02:07:07 2007
@@ -57,6 +57,23 @@
 	 * Construct.
 	 * 
 	 * @param resourceStream
+	 */
+	public MarkupResourceStream(final IResourceStream resourceStream)
+	{
+		this.resourceStream = resourceStream;
+		this.containerInfo = null;
+		this.markupClass = null;
+
+		if (resourceStream == null)
+		{
+			throw new IllegalArgumentException("Parameter 'resourceStream' must not be null");
+		}
+	}
+
+	/**
+	 * Construct.
+	 * 
+	 * @param resourceStream
 	 * @param containerInfo
 	 * @param markupClass
 	 */

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/border/MarkupComponentBorder.java Sat May  5 02:07:07 2007
@@ -208,7 +208,7 @@
 		try
 		{
 			Markup markup = Application.get().getMarkupSettings().getMarkupParserFactory()
-					.newMarkupParser().readAndParse(markupResourceStream);
+					.newMarkupParser(markupResourceStream).parse();
 			return new MarkupStream(markup);
 		}
 		catch (Exception e)

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/settings/Settings.java Sat May  5 02:07:07 2007
@@ -301,7 +301,6 @@
 	public Settings(final Application application)
 	{
 		this.application = application;
-		this.markupParserFactory = new MarkupParserFactory(application);
 		stringResourceLoaders.add(new ComponentStringResourceLoader());
 		stringResourceLoaders.add(new ClassStringResourceLoader(this.application.getClass()));
 	}
@@ -557,6 +556,10 @@
 	 */
 	public IMarkupParserFactory getMarkupParserFactory()
 	{
+		if (this.markupParserFactory == null)
+		{
+			this.markupParserFactory = new MarkupParserFactory();
+		}
 		return markupParserFactory;
 	}
 

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/diff/DiffUtil.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/diff/DiffUtil.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/diff/DiffUtil.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/diff/DiffUtil.java Sat May  5 02:07:07 2007
@@ -26,7 +26,6 @@
 
 import org.apache.wicket.markup.Markup;
 import org.apache.wicket.markup.MarkupParser;
-import org.apache.wicket.markup.parser.XmlPullParser;
 import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.string.StringList;
@@ -176,8 +175,8 @@
 		try
 		{
 			// Parse a and b into markup and compare
-			final Markup amarkup = new MarkupParser(new XmlPullParser()).parse(a);
-			final Markup bmarkup = new MarkupParser(new XmlPullParser()).parse(b);
+			final Markup amarkup = new MarkupParser(a).parse();
+			final Markup bmarkup = new MarkupParser(b).parse();
 			return amarkup.equalTo(bmarkup);
 		}
 		catch (IOException e)

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sat May  5 02:07:07 2007
@@ -20,7 +20,6 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
@@ -53,6 +52,7 @@
 import org.apache.wicket.markup.html.link.PageLink;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.protocol.http.MockHttpServletResponse;
 import org.apache.wicket.protocol.http.MockWebApplication;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WebRequestCycle;
@@ -199,8 +199,7 @@
 	{
 		setupRequestAndResponse();
 		WebRequestCycle cycle = createRequestCycle();
-		getServletRequest().setRequestToRedirectString(
-				behavior.getCallbackUrl(false).toString());
+		getServletRequest().setRequestToRedirectString(behavior.getCallbackUrl(false).toString());
 		processRequestCycle(cycle);
 	}
 
@@ -212,14 +211,15 @@
 	 */
 	public final Page startPage(final Page page)
 	{
-		return startPage(new ITestPageSource() {
+		return startPage(new ITestPageSource()
+		{
 			private static final long serialVersionUID = 1L;
 
 			public Page getTestPage()
 			{
 				return page;
 			}
-			
+
 		});
 	}
 
@@ -781,35 +781,6 @@
 	}
 
 	/**
-	 * assert error feedback messages
-	 * 
-	 * @param expectedErrorMessages
-	 *            expected error messages
-	 */
-	public void assertErrorMessages(String[] expectedErrorMessages)
-	{
-		List actualMessages = getMessages(FeedbackMessage.ERROR);
-		List msgs = new ArrayList();
-		for (Iterator iterator = actualMessages.iterator(); iterator.hasNext();)
-		{
-			msgs.add(iterator.next().toString());
-		}
-		WicketTesterHelper.assertEquals(Arrays.asList(expectedErrorMessages), msgs);
-	}
-
-	/**
-	 * assert info feedback message
-	 * 
-	 * @param expectedInfoMessages
-	 *            expected info messages
-	 */
-	public void assertInfoMessages(String[] expectedInfoMessages)
-	{
-		List actualMessages = getMessages(FeedbackMessage.INFO);
-		WicketTesterHelper.assertEquals(Arrays.asList(expectedInfoMessages), actualMessages);
-	}
-
-	/**
 	 * get feedback messages
 	 * 
 	 * @param level
@@ -1093,6 +1064,56 @@
 				}
 			}
 		});
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public String getContentTypeFromResponseHeader()
+	{
+		String contentType = ((MockHttpServletResponse)getWicketResponse().getHttpServletResponse())
+				.getHeader("Content-Type");
+		if (contentType == null)
+		{
+			throw new WicketRuntimeException("No Content-Type header found");
+		}
+		return contentType;
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public int getContentLengthFromResponseHeader()
+	{
+		String contentLength = ((MockHttpServletResponse)getWicketResponse()
+				.getHttpServletResponse()).getHeader("Content-Length");
+		if (contentLength == null)
+		{
+			throw new WicketRuntimeException("No Content-Length header found");
+		}
+		return Integer.parseInt(contentLength);
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public String getLastModifiedFromResponseHeader()
+	{
+		return ((MockHttpServletResponse)getWicketResponse().getHttpServletResponse())
+				.getHeader("Last-Modified");
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public String getContentDispositionFromResponseHeader()
+	{
+		return ((MockHttpServletResponse)getWicketResponse().getHttpServletResponse())
+				.getHeader("Content-Disposition");
 	}
 
 	private Result isTrue(String message, boolean condition)

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java Sat May  5 02:07:07 2007
@@ -32,6 +32,7 @@
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.protocol.http.MockHttpServletResponse;
 import org.apache.wicket.protocol.http.UnitTestSettings;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WebResponse;
@@ -151,15 +152,20 @@
 	private static final Logger log = LoggerFactory.getLogger(WicketTester.class);
 
 	/**
-	 * @author frankbille
 	 */
 	public static class DummyWebApplication extends WebApplication
 	{
+		/**
+		 * @see org.apache.wicket.Application#getHomePage()
+		 */
 		public Class getHomePage()
 		{
 			return DummyHomePage.class;
 		}
 
+		/**
+		 * @see org.apache.wicket.protocol.http.WebApplication#newWebResponse(javax.servlet.http.HttpServletResponse)
+		 */
 		protected WebResponse newWebResponse(final HttpServletResponse servletResponse)
 		{
 			return new WebResponse(servletResponse);
@@ -363,23 +369,22 @@
 	}
 
 	/**
-	 * assert last rendered Page against an expected HTML document
+	 * Assert last rendered Page against an expected HTML document
 	 * <p>
 	 * Use <code>-Dwicket.replace.expected.results=true</code> to
 	 * automatically replace the expected output file.
 	 * </p>
 	 * 
-	 * @param pageClass
+	 * @param clazz
 	 *            Used to load the file (relative to clazz package)
 	 * @param filename
 	 *            Expected output
 	 * @throws Exception
 	 */
-	public void assertResultPage(final Class pageClass, final String filename) throws Exception
+	public void assertResultPage(final Class clazz, final String filename) throws Exception
 	{
-		// Validate the document
 		String document = getServletResponse().getDocument();
-		DiffUtil.validatePage(document, pageClass, filename, true);
+		DiffUtil.validatePage(document, clazz, filename, true);
 	}
 
 	/**
@@ -444,7 +449,7 @@
 		List actualMessages = getMessages(FeedbackMessage.INFO);
 		WicketTesterHelper.assertEquals(Arrays.asList(expectedInfoMessages), actualMessages);
 	}
-
+	
 	/**
 	 * Test that a component has been added to a AjaxRequestTarget, using
 	 * {@link AjaxRequestTarget#addComponent(Component)}. This method actually
@@ -486,6 +491,32 @@
 		if (result.wasFailed())
 		{
 			throw new AssertionFailedError(result.getMessage());
+		}
+	}
+
+	/**
+	 * Assert that the ajax location header is present
+	 */
+	public void assertAjaxLocation()
+	{
+		if (null != ((MockHttpServletResponse)getWicketResponse().getHttpServletResponse())
+						.getRedirectLocation())
+		{
+			throw new AssertionFailedError("Location header should *not* be present when using Ajax");
+		}
+		
+		String ajaxLocation = ((MockHttpServletResponse)getWicketResponse()
+				.getHttpServletResponse()).getHeader("Ajax-Location");
+		if (null == ajaxLocation)
+		{
+			throw new AssertionFailedError("Ajax-Location header should be present when using Ajax");
+		}
+		
+		int statusCode = ((MockHttpServletResponse)getWicketResponse()
+				.getHttpServletResponse()).getStatus();
+		if (statusCode != 200)
+		{
+			throw new AssertionFailedError("Expected HTTP status code to be 200 (OK)");
 		}
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ResourceTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ResourceTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ResourceTest.java Sat May  5 02:07:07 2007
@@ -71,9 +71,9 @@
 		resource.onResourceRequested();
 		tester.processRequestCycle(cycle);
 
-		log.debug(getLastModified());
-		assertEquals(testFileLastModified, getLastModified());
-		assertEquals(TEST_STRING.length(), getContentLength());
+		log.debug(tester.getLastModifiedFromResponseHeader());
+		assertEquals(testFileLastModified, tester.getLastModifiedFromResponseHeader());
+		assertEquals(TEST_STRING.length(), tester.getContentLengthFromResponseHeader());
 	}
 
 	/**
@@ -113,7 +113,7 @@
 		resource.onResourceRequested();
 		tester.processRequestCycle(cycle);
 
-		assertNull(getLastModified());
-		assertEquals(TEST_STRING.length(), getContentLength());
+		assertNull(tester.getLastModifiedFromResponseHeader());
+		assertEquals(TEST_STRING.length(), tester.getContentLengthFromResponseHeader());
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/WicketTestCase.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/WicketTestCase.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/WicketTestCase.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/WicketTestCase.java Sat May  5 02:07:07 2007
@@ -19,7 +19,6 @@
 import junit.framework.TestCase;
 
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.protocol.http.MockHttpServletResponse;
 import org.apache.wicket.util.tester.WicketTester;
 
 /**
@@ -52,11 +51,17 @@
 		super(name);
 	}
 
+	/**
+	 * @see junit.framework.TestCase#setUp()
+	 */
 	protected void setUp() throws Exception
 	{
 		tester = new WicketTester();
 	}
 
+	/**
+	 * @see junit.framework.TestCase#tearDown()
+	 */
 	protected void tearDown() throws Exception
 	{
 		tester.destroy();
@@ -81,81 +86,38 @@
 
 	/**
 	 * 
-	 * @param pageClass
+	 * @param clazz
 	 * @param component
 	 * @param filename
 	 * @throws Exception
 	 */
-	protected void executedListener(final Class pageClass, final Component component,
+	protected void executedListener(final Class clazz, final Component component,
 			final String filename) throws Exception
 	{
 		assertNotNull(component);
 
-		System.out.println("=== " + pageClass.getName() + " : " + component.getPageRelativePath()
+		System.out.println("=== " + clazz.getName() + " : " + component.getPageRelativePath()
 				+ " ===");
 
 		tester.executeListener(component);
-		tester.assertResultPage(pageClass, filename);
+		tester.assertResultPage(clazz, filename);
 	}
 
 	/**
 	 * 
-	 * @param pageClass
+	 * @param clazz
 	 * @param behavior
 	 * @param filename
 	 * @throws Exception
 	 */
-	protected void executedBehavior(final Class pageClass, final AbstractAjaxBehavior behavior,
+	protected void executedBehavior(final Class clazz, final AbstractAjaxBehavior behavior,
 			final String filename) throws Exception
 	{
 		assertNotNull(behavior);
 
-		System.out.println("=== " + pageClass.getName() + " : " + behavior.toString() + " ===");
+		System.out.println("=== " + clazz.getName() + " : " + behavior.toString() + " ===");
 
 		tester.executeBehavior(behavior);
-		tester.assertResultPage(pageClass, filename);
-	}
-
-	protected String getContentType()
-	{
-		String contentType = ((MockHttpServletResponse)tester.getWicketResponse()
-				.getHttpServletResponse()).getHeader("Content-Type");
-		if (contentType == null)
-			throw new WicketRuntimeException("No Content-Type header found");
-		return contentType;
-	}
-
-	protected int getContentLength()
-	{
-		String contentLength = ((MockHttpServletResponse)tester.getWicketResponse()
-				.getHttpServletResponse()).getHeader("Content-Length");
-		if (contentLength == null)
-			throw new WicketRuntimeException("No Content-Length header found");
-		return Integer.parseInt(contentLength);
-	}
-
-	protected String getLastModified()
-	{
-		return ((MockHttpServletResponse)tester.getWicketResponse().getHttpServletResponse())
-				.getHeader("Last-Modified");
-	}
-
-	protected String getContentDisposition()
-	{
-		return ((MockHttpServletResponse)tester.getWicketResponse().getHttpServletResponse())
-				.getHeader("Content-Disposition");
-	}
-
-	protected void assertAjaxLocation()
-	{
-		assertNull("Location header should *not* be present when using Ajax",
-				((MockHttpServletResponse)tester.getWicketResponse().getHttpServletResponse())
-						.getRedirectLocation());
-		String ajaxLocation = ((MockHttpServletResponse)tester.getWicketResponse()
-				.getHttpServletResponse()).getHeader("Ajax-Location");
-		assertNotNull("Ajax-Location header should be present when using Ajax", ajaxLocation);
-		int statusCode = ((MockHttpServletResponse)tester.getWicketResponse()
-				.getHttpServletResponse()).getStatus();
-		assertEquals(200, statusCode);
+		tester.assertResultPage(clazz, filename);
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html Sat May  5 02:07:07 2007
@@ -9,7 +9,7 @@
 
 <script type="text/javascript" src="resources/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax-debug.js"></script>
 <script type="text/javascript" ><!--/*--><![CDATA[/*><!--*/
-Wicket.Event.add(window, "load", function() { setTimeout("var wcall=wicketAjaxGet('?wicket:interface=:0:testPanel:baseSpan:linja1:-1:IUnversionedBehaviorListener:0&wicket:ignoreIfNotActive=true', function() { }, function() { });", 2000);;});
+Wicket.Event.add(window, "load", function() { setTimeout("var wcall=wicketAjaxGet('?wicket:interface=:0:testPanel:baseSpan:linja1::IBehaviorListener:0&wicket:ignoreIfNotActive=true', function() { }.bind(this), function() { }.bind(this));", 2000);;});
 /*-->]]>*/</script>
 
 </head>

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/HtmlProblemFinderTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/HtmlProblemFinderTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/HtmlProblemFinderTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/HtmlProblemFinderTest.java Sat May  5 02:07:07 2007
@@ -18,8 +18,8 @@
 
 
 import org.apache.wicket.WicketTestCase;
-import org.apache.wicket.markup.parser.XmlPullParser;
 import org.apache.wicket.markup.parser.filter.HtmlProblemFinder;
+import org.apache.wicket.markup.parser.filter.PrependContextPathHandler;
 
 
 /**
@@ -44,17 +44,12 @@
      */
     public void testProblemFinder()
     {
-        final MarkupParser parser = new MarkupParser(new XmlPullParser())
-        {
-            public void initFilterChain()
-            {
-                appendMarkupFilter(new HtmlProblemFinder(HtmlProblemFinder.ERR_THROW_EXCEPTION));
-            }
-        };
+        final MarkupParser parser = new MarkupParser("<img src=\"\"/>");
+        parser.appendMarkupFilter(new HtmlProblemFinder(HtmlProblemFinder.ERR_THROW_EXCEPTION), PrependContextPathHandler.class);
 	    
 	    try
 	    {
-	        parser.parse("<img src=\"\"/>");
+	        parser.parse();
 	        assertTrue("Should have thrown an exception", false);
 	    }
 	    catch (Exception ex)

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/MarkupParserTest.java Sat May  5 02:07:07 2007
@@ -24,7 +24,6 @@
 
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.html.pages.PageExpiredErrorPage;
-import org.apache.wicket.markup.parser.XmlPullParser;
 import org.apache.wicket.markup.parser.XmlTag;
 import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
 import org.apache.wicket.util.resource.IResourceStream;
@@ -36,7 +35,6 @@
 import org.slf4j.LoggerFactory;
 
 
-
 /**
  * Test cases for markup parser.
  * 
@@ -63,12 +61,12 @@
 	 */
 	public final void testTagParsing() throws Exception
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		final MarkupParser parser = new MarkupParser(
+				"This is a test <a componentName:id=\"a\" href=\"foo.html\"> <b componentName:id=\"b\">Bold!</b> "
+						+ "<img componentName:id=\"img\" width=9 height=10 src=\"foo\"> <marker componentName:id=\"marker\"/> </a>");
 		parser.setWicketNamespace("componentName");
 
-		final Markup markup = parser
-				.parse("This is a test <a componentName:id=\"a\" href=\"foo.html\"> <b componentName:id=\"b\">Bold!</b> "
-						+ "<img componentName:id=\"img\" width=9 height=10 src=\"foo\"> <marker componentName:id=\"marker\"/> </a>");
+		final Markup markup = parser.parse();
 
 		final MarkupStream markupStream = new MarkupStream(markup);
 
@@ -128,10 +126,10 @@
 	 */
 	public final void test() throws Exception
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		final MarkupParser parser = new MarkupParser(
+				"This is a test <a componentName:id=9> <b>bold</b> <b componentName:id=10/></a> of the emergency broadcasting system");
 		parser.setWicketNamespace("componentName");
-		final Markup tokens = parser
-				.parse("This is a test <a componentName:id=9> <b>bold</b> <b componentName:id=10/></a> of the emergency broadcasting system");
+		final Markup tokens = parser.parse();
 
 		log.info("tok(0)=" + tokens.get(0));
 		log.info("tok(1)=" + tokens.get(1));
@@ -168,9 +166,9 @@
 				+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">"
 				+ "<html>" + "<head><title>Some Page</title></head>"
 				+ "<body><h1>XHTML Test</h1></body>" + "</html>";
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		final MarkupParser parser = new MarkupParser(docText);
 		parser.setWicketNamespace("componentName");
-		final Markup tokens = parser.parse(docText);
+		final Markup tokens = parser.parse();
 
 		log.info("tok(0)=" + tokens.get(0));
 
@@ -199,61 +197,78 @@
 	public final void testFileDocument() throws ParseException, ResourceStreamNotFoundException,
 			IOException
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
-		parser.setWicketNamespace("wcn");
-
 		IResourceStreamLocator locator = new ResourceStreamLocator();
-
 		MarkupResourceStream resource = newMarkupResourceStream(locator, this.getClass(), "1",
 				null, "html");
 
-		Markup tokens = parser.readAndParse(resource);
+		MarkupParser parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+
+		Markup tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "2", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "3", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "4", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		// File from jar (URL resource)
 		resource = newMarkupResourceStream(locator, PageExpiredErrorPage.class, null, null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "5", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "6", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "7", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "8", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 
 		resource = newMarkupResourceStream(locator, this.getClass(), "9", null, "html");
-		tokens = parser.readAndParse(resource);
+		parser = new MarkupParser(resource);
+		parser.setWicketNamespace("wcn");
+		tokens = parser.parse();
 		log.info("tok(0)=" + tokens.get(0));
 		// Assert.assertEquals(docText, tokens.get(0).toString());
 	}
@@ -272,21 +287,19 @@
 		WicketTagIdentifier.registerWellKnownTagName("border");
 		WicketTagIdentifier.registerWellKnownTagName("panel");
 
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
-
-		parser.parse("<span wicket:id=\"test\"/>");
-		parser.parse("<span wicket:id=\"test\">Body</span>");
-		parser.parse("This is a test <span wicket:id=\"test\"/>");
-		parser.parse("This is a test <span wicket:id=\"test\">Body</span>");
-		parser.parse("<a wicket:id=\"[autolink]\" href=\"test.html\">Home</a>");
-
-		parser.parse("<wicket:body/>");
-		parser.parse("<wicket:border/>");
-		parser.parse("<wicket:panel/>");
+		new MarkupParser("<span wicket:id=\"test\"/>").parse();
+		new MarkupParser("<span wicket:id=\"test\">Body</span>").parse();
+		new MarkupParser("This is a test <span wicket:id=\"test\"/>").parse();
+		new MarkupParser("This is a test <span wicket:id=\"test\">Body</span>").parse();
+		new MarkupParser("<a wicket:id=\"[autolink]\" href=\"test.html\">Home</a>").parse();
+
+		new MarkupParser("<wicket:body/>").parse();
+		new MarkupParser("<wicket:border/>").parse();
+		new MarkupParser("<wicket:panel/>").parse();
 
 		try
 		{
-			parser.parse("<wicket:remove/>");
+			new MarkupParser("<wicket:remove/>").parse();
 			assertTrue("Should have thrown an exception", false);
 		}
 		catch (MarkupException ex)
@@ -294,20 +307,22 @@
 			// ignore
 		}
 
-		Markup markup = parser.parse("<wicket:remove>  </wicket:remove>");
+		Markup markup = new MarkupParser("<wicket:remove>  </wicket:remove>").parse();
 		assertEquals(0, markup.size());
 
-		markup = parser.parse("<wicket:remove> <span id=\"test\"/> </wicket:remove>");
+		markup = new MarkupParser("<wicket:remove> <span id=\"test\"/> </wicket:remove>").parse();
 		assertEquals(0, markup.size());
 
-		markup = parser.parse("<div><wicket:remove> <span id=\"test\"/> </wicket:remove></div>");
+		markup = new MarkupParser("<div><wicket:remove> <span id=\"test\"/> </wicket:remove></div>")
+				.parse();
 		assertEquals(2, markup.size());
 		assertEquals("<div>", ((RawMarkup)markup.get(0)).toString());
 		assertEquals("</div>", ((RawMarkup)markup.get(1)).toString());
 
 		try
 		{
-			parser.parse("<wicket:remove> <wicket:remove> </wicket:remove> </wicket:remove>");
+			new MarkupParser("<wicket:remove> <wicket:remove> </wicket:remove> </wicket:remove>")
+					.parse();
 			assertTrue(
 					"Should have thrown an exception: remove regions must not contain wicket-components",
 					false);
@@ -317,10 +332,18 @@
 			// ignore
 		}
 
-		parser.parse("<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\"/>");
-		parser.parse("<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\">    </wicket:component>");
-		parser.parse("<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\">  <span wicket:id=\"msg\">hello world!</span></wicket:component>");
-		parser.parse("<wicket:panel><div id=\"definitionsContentBox\"><span wicket:id=\"contentPanel\"/></div></wicket:panel>");
+		new MarkupParser(
+				"<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\"/>")
+				.parse();
+		new MarkupParser(
+				"<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\">    </wicket:component>")
+				.parse();
+		new MarkupParser(
+				"<wicket:component name = \"componentName\" class = \"classname\" param1 = \"value1\">  <span wicket:id=\"msg\">hello world!</span></wicket:component>")
+				.parse();
+		new MarkupParser(
+				"<wicket:panel><div id=\"definitionsContentBox\"><span wicket:id=\"contentPanel\"/></div></wicket:panel>")
+				.parse();
 	}
 
 	/**
@@ -333,17 +356,19 @@
 	public final void testDefaultWicketTag() throws ParseException,
 			ResourceStreamNotFoundException, IOException
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		MarkupParser parser = new MarkupParser("<span wcn:id=\"test\"/>");
 		parser.setWicketNamespace("wcn");
 
-		Markup markup = parser.parse("<span wcn:id=\"test\"/>");
+		Markup markup = parser.parse();
 		assertEquals(1, markup.size());
 
-		markup = parser.parse("<span wicket:id=\"test\"/>");
+		markup = new MarkupParser("<span wicket:id=\"test\"/>").parse();
 		assertEquals(1, markup.size());
 
 		WicketTagIdentifier.registerWellKnownTagName("xxx");
-		markup = parser.parse("<wcn:xxx>  </wcn:xxx>");
+		parser = new MarkupParser("<wcn:xxx>  </wcn:xxx>");
+		parser.setWicketNamespace("wcn");
+		markup = parser.parse();
 		assertEquals(3, markup.size());
 	}
 
@@ -357,10 +382,10 @@
 	public final void testScript() throws ParseException, ResourceStreamNotFoundException,
 			IOException
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		final MarkupParser parser = new MarkupParser(
+				"<html wicket:id=\"test\"><script language=\"JavaScript\">... <x a> ...</script></html>");
 
-		Markup markup = parser
-				.parse("<html wicket:id=\"test\"><script language=\"JavaScript\">... <x a> ...</script></html>");
+		Markup markup = parser.parse();
 		assertEquals(3, markup.size());
 		assertEquals("html", ((ComponentTag)markup.get(0)).getName());
 		assertEquals("html", ((ComponentTag)markup.get(2)).getName());
@@ -376,20 +401,20 @@
 	 */
 	public final void testBalancing() throws IOException, ResourceStreamNotFoundException
 	{
-		final MarkupParser parser = new MarkupParser(new XmlPullParser());
+		final MarkupParser parser = new MarkupParser(
+				"<span wicket:id=\"span\"><img wicket:id=\"img\"><span wicket:id=\"span2\"></span></span>");
 
 		// Note: <img> is one of these none-balanced HTML tags
-		Markup markup = parser
-				.parse("<span wicket:id=\"span\"><img wicket:id=\"img\"><span wicket:id=\"span2\"></span></span>");
+		Markup markup = parser.parse();
 
 		ComponentTag t = (ComponentTag)markup.get(0);
 		assertEquals(t.getId(), "span");
 		assertEquals(t.getPath(), null);
-		
+
 		t = (ComponentTag)markup.get(1);
 		assertEquals(t.getId(), "img");
 		assertEquals(t.getPath(), "span");
-		
+
 		t = (ComponentTag)markup.get(2);
 		assertEquals(t.getId(), "span2");
 		assertEquals(t.getPath(), "span");

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java Sat May  5 02:07:07 2007
@@ -51,8 +51,8 @@
 		((MockServletContext)tester.getApplication().getServletContext()).addMimeType("custom",
 				APPLICATION_X_CUSTOM);
 		tester.clickLink(DownloadPage.CUSTOM_DOWNLOAD_LINK);
-		log.debug("Content-Type: " + getContentType());
-		assertTrue(getContentType().startsWith(APPLICATION_X_CUSTOM));
+		log.debug("Content-Type: " + tester.getContentTypeFromResponseHeader());
+		assertTrue(tester.getContentTypeFromResponseHeader().startsWith(APPLICATION_X_CUSTOM));
 	}
 
 	/**
@@ -62,8 +62,8 @@
 	{
 		tester.startPage(DownloadPage.class);
 		tester.clickLink(DownloadPage.PDF_DOWNLOAD_LINK);
-		assertTrue(getContentType().startsWith("application/pdf"));
-		assertEquals(DownloadPage.HELLO_WORLD.length(), getContentLength());
+		assertTrue(tester.getContentTypeFromResponseHeader().startsWith("application/pdf"));
+		assertEquals(DownloadPage.HELLO_WORLD.length(), tester.getContentLengthFromResponseHeader());
 	}
 
 	/**
@@ -73,8 +73,8 @@
 	{
 		tester.startPage(DownloadPage.class);
 		tester.clickLink(DownloadPage.TEXT_DOWNLOAD_LINK);
-		assertTrue(getContentType().startsWith("text/plain"));
-		assertTrue(getContentDisposition().startsWith("attachment; filename="));
-		assertEquals(0, getContentLength());
+		assertTrue(tester.getContentTypeFromResponseHeader().startsWith("text/plain"));
+		assertTrue(tester.getContentDispositionFromResponseHeader().startsWith("attachment; filename="));
+		assertEquals(0, tester.getContentLengthFromResponseHeader());
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java Sat May  5 02:07:07 2007
@@ -25,7 +25,6 @@
 import org.apache.wicket.request.target.resource.ResourceStreamRequestTarget;
 import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.resource.WebExternalResourceStream;
-import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.tester.WicketTester;
 import org.apache.wicket.util.tester.WicketTester.DummyWebApplication;
 
@@ -52,18 +51,26 @@
 		tester.getServletRequest().setPath("/index.html");
 	}
 
+	/**
+	 * 
+	 * @throws Exception
+	 */
 	public void testWebExternalResourceRequestTarget() throws Exception
 	{
 		WebExternalResourceRequestTarget rt = new WebExternalResourceRequestTarget("/index.html");
 		WebRequestCycle cycle = tester.createRequestCycle();
 		cycle.setRequestTarget(rt);
 		tester.processRequestCycle(cycle);
-		assertTrue(getContentType().startsWith("text/html"));
+		assertTrue(tester.getContentTypeFromResponseHeader().startsWith("text/html"));
 		// WebExternalResourceRequestTarget does not set Content-Length
 		// assertEquals(23, getContentLength());
 		tester.assertResultPage(WebExternalResourceTest.class, "index.html");
 	}
 
+	/**
+	 * 
+	 * @throws Exception
+	 */
 	// FIXME WebExternalResourceStream does not implement length()
 	public void testWebExternalResource() throws Exception
 	{
@@ -72,7 +79,7 @@
 		WebRequestCycle cycle = tester.createRequestCycle();
 		cycle.setRequestTarget(rt);
 		tester.processRequestCycle(cycle);
-		assertTrue(getContentType().startsWith("text/html"));
+		assertTrue(tester.getContentTypeFromResponseHeader().startsWith("text/html"));
 		// WebExternalResourceStream does not set Content-Length
 		// assertEquals(23, getContentLength());
 		tester.assertResultPage(WebExternalResourceTest.class, "index.html");

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java?view=diff&rev=535482&r1=535481&r2=535482
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/WebResponseExceptionsTest.java Sat May  5 02:07:07 2007
@@ -88,7 +88,7 @@
 		WebRequestCycle cycle = tester.createRequestCycle();
 		cycle.request();
 
-		assertAjaxLocation();
+		tester.assertAjaxLocation();
 	}
 
 	/**
@@ -120,6 +120,6 @@
 		WebRequestCycle cycle = tester.createRequestCycle();
 		cycle.request();
 
-		assertAjaxLocation();
+		tester.assertAjaxLocation();
 	}
 }