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()