You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Maurizio Cucchiara <ma...@gmail.com> on 2012/01/01 19:26:21 UTC
Re: svn commit: r1226265 - in /struts/struts2/trunk:
plugins/junit/pom.xml plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
plugins/portlet/pom.xml pom.xml
Are there any reason to mantain junit 3 stuff?
Sent from my mobile device, so please excuse typos and brevity.
Maurizio Cucchiara
Il giorno 01/gen/2012 18.29, <lu...@apache.org> ha scritto:
> Author: lukaszlenart
> Date: Sun Jan 1 17:29:25 2012
> New Revision: 1226265
>
> URL: http://svn.apache.org/viewvc?rev=1226265&view=rev
> Log:
> WW-3733 - adds missing PortletContext to ActionContext to avoid NPE during
> PortletResult initialisation
>
> Modified:
> struts/struts2/trunk/plugins/junit/pom.xml
>
> struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
>
> struts/struts2/trunk/plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
> struts/struts2/trunk/plugins/portlet/pom.xml
> struts/struts2/trunk/pom.xml
>
> Modified: struts/struts2/trunk/plugins/junit/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/pom.xml?rev=1226265&r1=1226264&r2=1226265&view=diff
>
> ==============================================================================
> --- struts/struts2/trunk/plugins/junit/pom.xml (original)
> +++ struts/struts2/trunk/plugins/junit/pom.xml Sun Jan 1 17:29:25 2012
> @@ -55,7 +55,6 @@
> <dependency>
> <groupId>org.apache.struts</groupId>
> <artifactId>struts2-spring-plugin</artifactId>
> - <version>${project.version}</version>
> <optional>true</optional>
> </dependency>
> <dependency>
> @@ -67,5 +66,11 @@
> <groupId>junit</groupId>
> <artifactId>junit</artifactId>
> </dependency>
> + <!-- Portlet -->
> + <dependency>
> + <groupId>javax.portlet</groupId>
> + <artifactId>portlet-api</artifactId>
> + <scope>test</scope>
> + </dependency>
> </dependencies>
> </project>
>
> Modified:
> struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
> URL:
> http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java?rev=1226265&r1=1226264&r2=1226265&view=diff
>
> ==============================================================================
> ---
> struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
> (original)
> +++
> struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
> Sun Jan 1 17:29:25 2012
> @@ -37,6 +37,7 @@ import org.springframework.mock.web.Mock
> import org.springframework.mock.web.MockHttpServletResponse;
> import org.springframework.mock.web.MockPageContext;
> import org.springframework.mock.web.MockServletContext;
> +import org.springframework.mock.web.portlet.MockPortletContext;
>
> import javax.servlet.ServletException;
> import javax.servlet.http.HttpServletRequest;
> @@ -46,7 +47,11 @@ import java.text.SimpleDateFormat;
> import java.util.Date;
> import java.util.HashMap;
> import java.util.Map;
> -import java.util.logging.*;
> +import java.util.logging.ConsoleHandler;
> +import java.util.logging.Formatter;
> +import java.util.logging.Level;
> +import java.util.logging.LogRecord;
> +import java.util.logging.Logger;
>
> /**
> * Base test case for JUnit testing Struts.
> @@ -57,7 +62,7 @@ public abstract class StrutsTestCase ext
> protected MockPageContext pageContext;
> protected MockServletContext servletContext;
> protected Map<String, String> dispatcherInitParams;
> -
> +
> protected DefaultResourceLoader resourceLoader = new
> DefaultResourceLoader();
>
> static {
> @@ -109,10 +114,9 @@ public abstract class StrutsTestCase ext
> assertNotNull(mapping);
> Dispatcher.getInstance().serviceAction(request, response,
> servletContext, mapping);
>
> - if (response.getStatus() != HttpServletResponse.SC_OK)
> - throw new ServletException("Error code [" +
> response.getStatus() + "], Error: ["
> - + response.getErrorMessage() + "]");
> -
> + if (response.getStatus() != HttpServletResponse.SC_OK) {
> + throw new ServletException("Error code [" +
> response.getStatus() + "], Error: [" + response.getErrorMessage() + "]");
> + }
> return response.getContentAsString();
> }
>
> @@ -131,12 +135,9 @@ public abstract class StrutsTestCase ext
> ActionProxy proxy =
> config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(
> namespace, name, method, new HashMap<String, Object>(),
> true, false);
>
> - ActionContext invocationContext =
> proxy.getInvocation().getInvocationContext();
> - invocationContext.setParameters(new
> HashMap(request.getParameterMap()));
> - // set the action context to the one used by the proxy
> - ActionContext.setContext(invocationContext);
> + initActionContext(proxy.getInvocation().getInvocationContext());
>
> - // this is normaly done in onSetUp(), but we are using Struts
> internal
> + // this is normally done in onSetUp(), but we are using Struts
> internal
> // objects (proxy and action invocation)
> // so we have to hack around so it works
> ServletActionContext.setServletContext(servletContext);
> @@ -146,6 +147,29 @@ public abstract class StrutsTestCase ext
> return proxy;
> }
>
> + private void initActionContext(ActionContext actionContext) {
> + actionContext.setParameters(new
> HashMap(request.getParameterMap()));
> +
> + initMockPortletContext(actionContext);
> + applyAdditionalParams(actionContext);
> +
> + // set the action context to the one used by the proxy
> + ActionContext.setContext(actionContext);
> + }
> +
> + private void initMockPortletContext(ActionContext actionContext) {
> + actionContext.put(StrutsStatics.STRUTS_PORTLET_CONTEXT, new
> MockPortletContext());
> + }
> +
> + /**
> + * Can be overwritten in subclass to provide additional context's
> params and settings used during action invocation
> + *
> + * @param context current {@link ActionContext}
> + */
> + protected void applyAdditionalParams(ActionContext context) {
> + // empty be default
> + }
> +
> /**
> * Finds an ActionMapping for a given request
> */
> @@ -179,10 +203,16 @@ public abstract class StrutsTestCase ext
> super.setUp();
> initServletMockObjects();
> setupBeforeInitDispatcher();
> - initDispatcher(dispatcherInitParams);
> + Dispatcher dispatcher = initDispatcher(dispatcherInitParams);
> + setupAfterInitDispatcher(dispatcher);
> }
>
> protected void setupBeforeInitDispatcher() throws Exception {
> + // empty by default
> + }
> +
> + protected void setupAfterInitDispatcher(Dispatcher dispatcher) {
> + // empty by default
> }
>
> protected void initServletMockObjects() {
>
> Modified:
> struts/struts2/trunk/plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
> URL:
> http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java?rev=1226265&r1=1226264&r2=1226265&view=diff
>
> ==============================================================================
> ---
> struts/struts2/trunk/plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
> (original)
> +++
> struts/struts2/trunk/plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
> Sun Jan 1 17:29:25 2012
> @@ -21,13 +21,17 @@
> package org.apache.struts2;
>
> import com.opensymphony.xwork2.Action;
> +import com.opensymphony.xwork2.ActionContext;
> import com.opensymphony.xwork2.ActionProxy;
> import org.apache.struts2.dispatcher.mapper.ActionMapping;
> +import org.junit.Test;
>
> +import javax.portlet.PortletContext;
> import javax.servlet.ServletException;
> import java.io.UnsupportedEncodingException;
>
> public class StrutsTestCaseTest extends StrutsSpringTestCase {
> +
> public void testGetActionMapping() {
> ActionMapping mapping =
> getActionMapping("/test/testAction.action");
> assertNotNull(mapping);
> @@ -61,4 +65,38 @@ public class StrutsTestCaseTest extends
> String name = (String) findValueAfterExecute("name");
> assertEquals("FD", name);
> }
> +
> + @Test
> + public void shouldPortletContextBeAvailable() throws Exception {
> + // given
> +
> assertNull(ActionContext.getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT));
> +
> + // when
> + String output = executeAction("/test/testAction.action");
> + assertEquals("Hello", output);
> +
> + // then
> + Object portletContext =
> ActionContext.getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT);
> + assertNotNull(portletContext);
> + assertTrue(portletContext instanceof PortletContext);
> + }
> +
> + @Test
> + public void shouldAdditionalContextParamsBeAvailable() throws
> Exception {
> + // given
> + String key = "my-param";
> + assertNull(ActionContext.getContext().get(key));
> +
> + // when
> + String output = executeAction("/test/testAction.action");
> + assertEquals("Hello", output);
> +
> + // then
> + assertNotNull(ActionContext.getContext().get(key));
> + }
> +
> + @Override
> + protected void applyAdditionalParams(ActionContext context) {
> + context.put("my-param", new Object());
> + }
> }
>
> Modified: struts/struts2/trunk/plugins/portlet/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/pom.xml?rev=1226265&r1=1226264&r2=1226265&view=diff
>
> ==============================================================================
> --- struts/struts2/trunk/plugins/portlet/pom.xml (original)
> +++ struts/struts2/trunk/plugins/portlet/pom.xml Sun Jan 1 17:29:25 2012
> @@ -18,9 +18,8 @@
>
> <dependencies>
> <dependency>
> - <groupId>${project.groupId}</groupId>
> + <groupId>org.apache.struts</groupId>
> <artifactId>struts2-junit-plugin</artifactId>
> - <version>${project.version}</version>
> <scope>test</scope>
> </dependency>
>
>
> Modified: struts/struts2/trunk/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/struts2/trunk/pom.xml?rev=1226265&r1=1226264&r2=1226265&view=diff
>
> ==============================================================================
> --- struts/struts2/trunk/pom.xml (original)
> +++ struts/struts2/trunk/pom.xml Sun Jan 1 17:29:25 2012
> @@ -352,6 +352,11 @@
> <artifactId>struts2-dwr-plugin</artifactId>
> <version>${project.version}</version>
> </dependency>
> + <dependency>
> + <groupId>org.apache.struts</groupId>
> + <artifactId>struts2-junit-plugin</artifactId>
> + <version>${project.version}</version>
> + </dependency>
>
> <dependency>
> <groupId>org.freemarker</groupId>
>
>
>
Re: svn commit: r1226265 - in /struts/struts2/trunk:
plugins/junit/pom.xml plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
plugins/junit/src/test/java/org/apache/struts2/StrutsTestCaseTest.java
plugins/portlet/pom.xml pom.xml
Posted by Łukasz Lenart <lu...@googlemail.com>.
2012/1/1 Maurizio Cucchiara <ma...@gmail.com>:
> Are there any reason to mantain junit 3 stuff?
Just to keep backward compatibility, we can drop support for JUnit 3
in Struts 2.5 / 3
Regards
--
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/
Warszawa JUG conference - Confitura http://confitura.pl/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org