You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2015/06/25 10:19:04 UTC

wicket git commit: WICKET-5926 Arquillian Support with Container ServletContext in BaseWicketTester/WicketTester.

Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 2c4133145 -> 899d72777


WICKET-5926 Arquillian Support with Container ServletContext in BaseWicketTester/WicketTester.

Cherry pick the improvements to (Base)WicketTester from 7.x.
The Arquillian test will be only in 7.x.


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

Branch: refs/heads/wicket-6.x
Commit: 899d72777021e05a2610a07f5c2f37c25a19ef3b
Parents: 2c41331
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Jun 25 11:18:08 2015 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Jun 25 11:18:08 2015 +0300

----------------------------------------------------------------------
 .../wicket/util/tester/BaseWicketTester.java    | 79 +++++++++++++++-----
 .../apache/wicket/util/tester/WicketTester.java | 28 +++++++
 2 files changed, 90 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/899d7277/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 8b230b8..2661c87 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -259,20 +259,58 @@ public class BaseWicketTester
 	 */
 	public BaseWicketTester(final WebApplication application, final ServletContext servletCtx)
 	{
+		this(application, servletCtx, true);
+	}
+
+	/**
+	 * Creates a <code>WicketTester</code>.
+	 *
+	 * @param application
+	 *            a <code>WicketTester</code> <code>WebApplication</code> object
+	 * @param init
+	 *            force the application to be initialized (default = true)
+	 */
+	public BaseWicketTester(final WebApplication application, boolean init)
+	{
+		this(application, null, init);
+	}
+
+	/**
+	 * Creates a <code>WicketTester</code>.
+	 *
+	 * @param application
+	 *            a <code>WicketTester</code> <code>WebApplication</code> object
+	 * @param servletCtx
+	 *            the servlet context used as backend
+	 * @param init
+	 *            force the application to be initialized (default = true)
+	 */
+	public BaseWicketTester(final WebApplication application, final ServletContext servletCtx, boolean init)
+	{
+		if (!init)
+		{
+			Args.notNull(application, "application");
+		}
+
 		servletContext = servletCtx != null ? servletCtx
-			: new MockServletContext(application, null);
+				// If it's provided from the container it's not necessary to mock.
+				: !init && application.getServletContext() != null ? application.getServletContext()
+				: new MockServletContext(application, null);
 
-		final FilterConfig filterConfig = new TestFilterConfig();
-		WicketFilter filter = new WicketFilter()
+		// If using Arquillian and it's configured in a web.xml it'll be provided. If not, mock it.
+		if(application.getWicketFilter() == null)
 		{
-			@Override
-			public FilterConfig getFilterConfig()
+			final FilterConfig filterConfig = new TestFilterConfig();
+			WicketFilter filter = new WicketFilter()
 			{
-				return filterConfig;
-			}
-		};
-
-		application.setWicketFilter(filter);
+				@Override
+				public FilterConfig getFilterConfig()
+				{
+					return filterConfig;
+				}
+			};
+			application.setWicketFilter(filter);
+		}
 
 		httpSession = new MockHttpSession(servletContext);
 
@@ -280,15 +318,22 @@ public class BaseWicketTester
 
 		this.application = application;
 
-		// FIXME some tests are leaking applications by not calling destroy on them or overriding
-		// teardown() without calling super, for now we work around by making each name unique
-		application.setName("WicketTesterApplication-" + UUID.randomUUID());
+		// If it's provided from the container it's not necessary to set again.
+		if (init)
+		{
+			// FIXME some tests are leaking applications by not calling destroy on them or overriding
+			// teardown() without calling super, for now we work around by making each name unique
+			application.setName("WicketTesterApplication-" + UUID.randomUUID());
+		}
 		ThreadContext.setApplication(application);
 
-		application.setServletContext(servletContext);
-
-		// initialize the application
-		application.initApplication();
+		// If it's provided from the container it's not necessary to set again and init.
+		if (init)
+		{
+			application.setServletContext(servletContext);
+			// initialize the application
+			application.initApplication();
+		}
 
 		// We don't expect any changes during testing. In addition we avoid creating
 		// ModificationWatcher threads tests.

http://git-wip-us.apache.org/repos/asf/wicket/blob/899d7277/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java
index b6ebcf6..bc61eea 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java
@@ -228,6 +228,34 @@ public class WicketTester extends BaseWicketTester
 	}
 
 	/**
+	 * Creates a <code>WicketTester</code> to help unit testing.
+	 *
+	 * @param application
+	 *            a <code>WicketTester</code> <code>WebApplication</code> object
+	 * @param init
+	 *            force the application to be initialized (default = true)
+	 */
+	public WicketTester(WebApplication application, boolean init)
+	{
+		super(application, init);
+	}
+
+	/**
+	 * Creates a <code>WicketTester</code> to help unit testing.
+	 *
+	 * @param application
+	 *            a <code>WicketTester</code> <code>WebApplication</code> object
+	 * @param servletCtx
+	 *            the servlet context used as backend
+	 * @param init
+	 *            force the application to be initialized (default = true)
+	 */
+	public WicketTester(WebApplication application, ServletContext servletCtx, boolean init)
+	{
+		super(application, servletCtx, init);
+	}
+
+	/**
 	 * Asserts that the Ajax location header is present.
 	 */
 	public void assertAjaxLocation()