[
https://issues.apache.org/jira/browse/WICKET-5926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14598289#comment-14598289
]
ASF GitHub Bot commented on WICKET-5926:
----------------------------------------
Github user martin-g commented on a diff in the pull request:
https://github.com/apache/wicket/pull/129#discussion_r33086404
--- Diff: testing/wicket-arquillian/pom.xml ---
@@ -0,0 +1,316 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket-parent</artifactId>
+ <version>7.0.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>wicket-arquillian-testing</artifactId>
+ <packaging>war</packaging>
+
+ <name>Wicket Arquillian Testing with Wildfly Java EE 6 Managed and
Unpacked :: WAR</name>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <distribution>repo</distribution>
+
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
+ </license>
+ </licenses>
+
+ <description>
+ A sample JAVA EE 6 project demonstrating how to use Arquillian
with Wicket Framework deployed on JBoss WildFly managed downloaded from maven
repository (NEXUS for example) and unpacked with dependency plugin.
+ WAR version (everything in a single .war file).
+ </description>
+
+
+ <properties>
+ <!-- Wildfly dependency versions -->
+
<version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>
+ <version.wildfly_8>8.1.0.Final</version.wildfly_8>
+
+ <!-- Java EE 6 SPEC JBoss -->
+
<version.jboss.spec.javaee.6.0>3.0.3.Final</version.jboss.spec.javaee.6.0>
+
+ <!-- ShrinkWrap Resolvers Maven -->
+
<version.shrinkwrap.resolvers>2.1.1</version.shrinkwrap.resolvers>
+
+ <!-- Arquillian -->
+ <version.arquillian_core>1.0.3.Final</version.arquillian_core>
--- End diff --
1.1.8
> Arquillian Support with Container ServletContext in
> BaseWicketTester/WicketTester.
> ----------------------------------------------------------------------------------
>
> Key: WICKET-5926
> URL: https://issues.apache.org/jira/browse/WICKET-5926
> Project: Wicket
> Issue Type: Improvement
> Components: wicket
> Affects Versions: 6.10.0, 6.11.0, 6.12.0, 6.13.0, 6.14.0, 6.15.0, 6.16.0,
> 7.0.0-M2, 7.0.0-M3, 6.17.0, 6.18.0, 1.5.13, 7.0.0-M4, 7.0.0-M5, 6.19.0, 6.20.0
> Environment: Ubuntu 14.04, JDK 8/7/6
> Reporter: Felipe Campos de Almeida
> Labels: automation, features, patch, test
>
> Hello all,
> I'm wondering if BaseWicketTester could support an ServletContext and
> WicketFilter provided by an web.xml configured and the container reading and
> installing my XTestWebApplication.java instead of using Mock everytime.
> I'm using Arquillian from http://arquillian.org.
> And this improvement is going to help to run my tests with success using
> webapp/WEB-INF/ configuration (like web.xml and so on).
> I've already done the code and I'll commit (after some tests to maintain the
> legacy) to my github: https://github.com/felipecalmeida/wicket
> In my initial tests, the wicket-core tests are passing.
> For this first commit, I kept the mock on Session, request and respond,
> because it's not a problem yet.
> I don't have yet a sample test to help to understand better this
> modification, because I've to create a sample project using Arquillian in my
> github. But I can take some screenshots later and upload here or in my
> github, if it helps.
> I'll post here the full code before commit:
> {code:title=BaseWicketTester.java|borderStyle=solid}
> /**
> * Creates a <code>WicketTester</code>. Constructor to keep the legacy
> code.
> *
> * @param application
> * a <code>WicketTester</code> <code>WebApplication</code>
> object
> * @param servletCtx
> * the servlet context used as backend
> */
> public BaseWicketTester(final WebApplication application, final
> ServletContext servletCtx)
> {
> // Keeping legacy code.
> this(application, servletCtx, true);
> }
>
> /**
> * Creates a <code>WicketTester</code>.
> *
> * @param application
> * a <code>WicketTester</code> <code>WebApplication</code>
> object
> * @param servletCtx
> * the servlet context used as backend
> * @param initializeApplication
> * if don't have an application, initialize it
> */
> public BaseWicketTester(final WebApplication application, final
> ServletContext servletCtx, boolean initializeApplication)
> {
> // Default is to initialize the application.
> if(initializeApplication)
> {
>
> if(servletCtx == null)
> {
> servletContext = new
> MockServletContext(application, null);
> }
> else
> {
> servletContext = servletCtx;
> }
> }
> else
> {
> // Uses the servletContext provided by the container.
> servletContext = application.getServletContext();
> }
>
> // Container that don't provide a WicketFilter.
> if(application.getWicketFilter() == null)
> {
> final FilterConfig filterConfig = new
> TestFilterConfig();
> WicketFilter filter = new WicketFilter()
> {
> @Override
> public FilterConfig getFilterConfig()
> {
> return filterConfig;
> }
> };
>
> application.setWicketFilter(filter);
> }
>
> httpSession = new MockHttpSession(servletContext);
> ThreadContext.detach();
> this.application = application;
> if(initializeApplication)
> {
> // 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);
> if(initializeApplication)
> {
> application.setServletContext(servletContext);
> // initialize the application
> application.initApplication();
> }
> // We don't expect any changes during testing. In addition we
> avoid creating
> // ModificationWatcher threads tests.
>
> application.getResourceSettings().setResourcePollFrequency(getResourcePollFrequency());
> // reconfigure application for the test environment
> application.setPageRendererProvider(new
> LastPageRecordingPageRendererProvider(
> application.getPageRendererProvider()));
> application.setRequestCycleProvider(new
> TestRequestCycleProvider(
> application.getRequestCycleProvider()));
> // set a feedback message filter that will not remove any
> messages
> originalFeedbackMessageCleanupFilter =
> application.getApplicationSettings()
> .getFeedbackMessageCleanupFilter();
>
> application.getApplicationSettings().setFeedbackMessageCleanupFilter(
> IFeedbackMessageFilter.NONE);
> IPageManagerProvider pageManagerProvider =
> newTestPageManagerProvider();
> if (pageManagerProvider != null)
> {
> application.setPageManagerProvider(pageManagerProvider);
> }
> // create a new session when the old one is invalidated
> application.getSessionStore().registerUnboundListener(new
> UnboundListener()
> {
> @Override
> public void sessionUnbound(String sessionId)
> {
> newSession();
> }
> });
> // prepare session
> setupNextRequestCycle();
> }
> {code}
> {code:title=WicketTester.java|borderStyle=solid}
> /**
> * Creates a <code>WicketTester</code> to help unit testing.
> Constructor to keep the legacy code.
> *
> * @param application
> * a <code>WicketTester</code> <code>WebApplication</code>
> object
> * @param servletCtx
> * the servlet context used as backend
> */
> public WicketTester(WebApplication application, ServletContext
> servletCtx)
> {
> super(application, servletCtx);
> }
>
> /**
> * 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 initializeApplication
> * if don't have an application, initialize it
> */
> public WicketTester(WebApplication application, ServletContext
> servletCtx, boolean initializeApplication)
> {
> super(application, servletCtx, initializeApplication);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)