You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/12/08 18:12:02 UTC
svn commit: r1549067 - in /struts/struts2/trunk:
core/src/main/java/org/apache/struts2/dispatcher/
core/src/main/java/org/apache/struts2/util/
core/src/main/java/org/apache/struts2/views/jsp/
core/src/test/java/org/apache/struts2/ core/src/test/java/or...
Author: lukaszlenart
Date: Sun Dec 8 17:12:01 2013
New Revision: 1549067
URL: http://svn.apache.org/r1549067
Log:
WW-4252 Uses TagUtils instead directly calling Dispatcher.getInstance()
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ComponentTagSupport.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/PlainTextResultTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-13.txt
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-22.txt
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-24.txt
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Sun Dec 8 17:12:01 2013
@@ -442,14 +442,11 @@ public class Dispatcher {
}
private Container init_PreloadConfiguration() {
- Configuration config = configurationManager.getConfiguration();
- Container container = config.getContainer();
+ Container container = getContainer();
boolean reloadi18n = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_I18N_RELOAD));
LocalizedTextUtil.setReloadBundles(reloadi18n);
- ContainerHolder.store(container);
-
return container;
}
@@ -548,8 +545,7 @@ public class Dispatcher {
String name = mapping.getName();
String method = mapping.getMethod();
- Configuration config = configurationManager.getConfiguration();
- ActionProxy proxy = config.getContainer().getInstance(ActionProxyFactory.class).createActionProxy(
+ ActionProxy proxy = getContainer().getInstance(ActionProxyFactory.class).createActionProxy(
namespace, name, method, extraContext, true, false);
request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, proxy.getInvocation().getStack());
@@ -664,7 +660,6 @@ public class Dispatcher {
}
extraContext.put(ActionContext.LOCALE, locale);
- //extraContext.put(ActionContext.DEV_MODE, Boolean.valueOf(devMode));
extraContext.put(StrutsStatics.HTTP_REQUEST, request);
extraContext.put(StrutsStatics.HTTP_RESPONSE, response);
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java Sun Dec 8 17:12:01 2013
@@ -24,6 +24,7 @@ package org.apache.struts2.util;
import java.util.HashMap;
import java.util.Map;
+import com.opensymphony.xwork2.inject.Container;
import org.apache.struts2.dispatcher.Dispatcher;
import com.opensymphony.xwork2.ActionContext;
@@ -53,10 +54,11 @@ public class StrutsTestCaseHelper {
Dispatcher du = new Dispatcher(ctx, params);
du.init();
Dispatcher.setInstance(du);
-
+
// Reset the value stack
- ValueStack stack = du.getContainer().getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().put(ActionContext.CONTAINER, du.getContainer());
+ Container container = du.getContainer();
+ ValueStack stack = container.getInstance(ValueStackFactory.class).createValueStack();
+ stack.getContext().put(ActionContext.CONTAINER, container);
ActionContext.setContext(new ActionContext(stack.getContext()));
return du;
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ComponentTagSupport.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ComponentTagSupport.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ComponentTagSupport.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ComponentTagSupport.java Sun Dec 8 17:12:01 2013
@@ -25,8 +25,8 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
+import com.opensymphony.xwork2.ActionContext;
import org.apache.struts2.components.Component;
-import org.apache.struts2.dispatcher.Dispatcher;
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.util.ValueStack;
@@ -45,8 +45,9 @@ public abstract class ComponentTagSuppor
}
public int doStartTag() throws JspException {
- component = getBean(getStack(), (HttpServletRequest) pageContext.getRequest(), (HttpServletResponse) pageContext.getResponse());
- Container container = Dispatcher.getInstance().getContainer();
+ ValueStack stack = getStack();
+ component = getBean(stack, (HttpServletRequest) pageContext.getRequest(), (HttpServletResponse) pageContext.getResponse());
+ Container container = (Container) stack.getContext().get(ActionContext.CONTAINER);
container.inject(component);
populateParams();
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/ClassInstantiationTest.java Sun Dec 8 17:12:01 2013
@@ -13,11 +13,10 @@ public class ClassInstantiationTest exte
public void testCompositeActionMapperInstantiationWithList() throws Exception {
// given
- Dispatcher du = initDispatcher(new HashMap<String, String>() {{
+ initDispatcher(new HashMap<String, String>() {{
put(StrutsConstants.STRUTS_I18N_ENCODING, "utf-8");
put(StrutsConstants.STRUTS_MAPPER_COMPOSITE, "struts,restful");
}});
- Container container = du.getContainer();
// when
ActionMapper instance = container.getInstance(ActionMapper.class, "composite");
@@ -28,10 +27,9 @@ public class ClassInstantiationTest exte
public void testCompositeActionMapperInstantiationWithoutList() throws Exception {
// given
- Dispatcher du = initDispatcher(new HashMap<String, String>() {{
+ initDispatcher(new HashMap<String, String>() {{
put(StrutsConstants.STRUTS_I18N_ENCODING, "utf-8");
}});
- Container container = du.getContainer();
// when
try {
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/StrutsInternalTestCase.java Sun Dec 8 17:12:01 2013
@@ -21,7 +21,10 @@
package org.apache.struts2;
+import com.opensymphony.xwork2.ActionProxyFactory;
import com.opensymphony.xwork2.XWorkTestCase;
+import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.util.XWorkTestCaseHelper;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
import org.apache.struts2.dispatcher.Dispatcher;
@@ -71,7 +74,9 @@ public abstract class StrutsInternalTest
logger.setLevel(Level.WARNING);
LoggerFactory.setLoggerFactory(new JdkLoggerFactory());
}
-
+
+ protected Dispatcher dispatcher;
+
/**
* Sets up the configuration settings, XWork configuration, and
* message resources
@@ -82,11 +87,12 @@ public abstract class StrutsInternalTest
}
protected Dispatcher initDispatcher(Map<String,String> params) {
- Dispatcher du = StrutsTestCaseHelper.initDispatcher(new MockServletContext(), params);
- configurationManager = du.getConfigurationManager();
+ dispatcher = StrutsTestCaseHelper.initDispatcher(new MockServletContext(), params);
+ configurationManager = dispatcher.getConfigurationManager();
configuration = configurationManager.getConfiguration();
container = configuration.getContainer();
- return du;
+ container.inject(dispatcher);
+ return dispatcher;
}
/**
@@ -104,6 +110,11 @@ public abstract class StrutsInternalTest
protected void tearDown() throws Exception {
super.tearDown();
+ // maybe someone else already destroyed Dispatcher
+ if (dispatcher != null && dispatcher.getConfigurationManager() != null) {
+ dispatcher.cleanup();
+ dispatcher = null;
+ }
StrutsTestCaseHelper.tearDown();
}
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java Sun Dec 8 17:12:01 2013
@@ -21,18 +21,7 @@
package org.apache.struts2;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.struts2.dispatcher.ServletDispatcherResult;
-import org.apache.struts2.interceptor.TokenInterceptor;
-import org.apache.struts2.interceptor.TokenSessionStoreInterceptor;
-
import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionChainResult;
import com.opensymphony.xwork2.ActionProxyFactory;
import com.opensymphony.xwork2.DefaultActionProxyFactory;
import com.opensymphony.xwork2.ObjectFactory;
@@ -47,6 +36,13 @@ import com.opensymphony.xwork2.inject.Co
import com.opensymphony.xwork2.interceptor.ParametersInterceptor;
import com.opensymphony.xwork2.mock.MockResult;
import com.opensymphony.xwork2.util.location.LocatableProperties;
+import com.opensymphony.xwork2.validator.ValidationInterceptor;
+import org.apache.struts2.dispatcher.ServletDispatcherResult;
+import org.apache.struts2.interceptor.TokenInterceptor;
+import org.apache.struts2.interceptor.TokenSessionStoreInterceptor;
+import org.apache.struts2.views.jsp.ui.DoubleValidationAction;
+
+import java.util.HashMap;
/**
@@ -89,6 +85,15 @@ public class TestConfigurationProvider i
.build())
.build();
+ ValidationInterceptor validationInterceptor = new ValidationInterceptor();
+ validationInterceptor.setIncludeMethods("*");
+
+ ActionConfig doubleValidationActionConfig = new ActionConfig.Builder("", "doubleValidationAction", DoubleValidationAction.class.getName())
+ .addResultConfig(new ResultConfig.Builder(Action.SUCCESS, ServletDispatcherResult.class.getName())
+ .addParam("location", "success.jsp")
+ .build())
+ .addInterceptor(new InterceptorMapping("validation", validationInterceptor))
+ .build();
ActionConfig testActionConfig = new ActionConfig.Builder("", "", TestAction.class.getName())
.addResultConfig(new ResultConfig.Builder(Action.SUCCESS, ServletDispatcherResult.class.getName())
@@ -97,7 +102,6 @@ public class TestConfigurationProvider i
.addInterceptor(new InterceptorMapping("params", new ParametersInterceptor()))
.build();
-
ActionConfig tokenActionConfig = new ActionConfig.Builder("", "", TestAction.class.getName())
.addInterceptor(new InterceptorMapping("token", new TokenInterceptor()))
.addResultConfig(new ResultConfig.Builder("invalid.token", MockResult.class.getName()).build())
@@ -115,6 +119,7 @@ public class TestConfigurationProvider i
PackageConfig defaultPackageConfig = new PackageConfig.Builder("")
.addActionConfig(EXECUTION_COUNT_ACTION_NAME, executionCountActionConfig)
.addActionConfig(TEST_ACTION_NAME, testActionConfig)
+ .addActionConfig("doubleValidationAction", doubleValidationActionConfig)
.addActionConfig(TOKEN_ACTION_NAME, tokenActionConfig)
.addActionConfig(TOKEN_SESSION_ACTION_NAME, tokenSessionActionConfig)
.addActionConfig("testActionTagAction", new ActionConfig.Builder("", "", TestAction.class.getName())
@@ -132,6 +137,15 @@ public class TestConfigurationProvider i
.build();
configuration.addPackageConfig("namespacePackage", namespacePackageConfig);
+
+ PackageConfig testActionWithNamespacePackageConfig = new PackageConfig.Builder("testActionNamespacePackages")
+ .namespace(TEST_NAMESPACE)
+ .addParent(defaultPackageConfig)
+ .addActionConfig(TEST_ACTION_NAME, new ActionConfig.Builder("", "", TestAction.class.getName()).build())
+ .build();
+
+ configuration.addPackageConfig("testActionNamespacePackages", testActionWithNamespacePackageConfig);
+
}
/**
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java Sun Dec 8 17:12:01 2013
@@ -172,7 +172,7 @@ public class DispatcherTest extends Stru
assertTrue(state.isInitialized);
du.cleanup();
-
+
assertTrue(state.isDestroyed);
}
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/PlainTextResultTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/PlainTextResultTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/PlainTextResultTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/PlainTextResultTest.java Sun Dec 8 17:12:01 2013
@@ -165,7 +165,6 @@ public class PlainTextResultTest extends
protected void tearDown() throws Exception {
- super.tearDown();
stack = null;
invocation = null;
context = null;
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java Sun Dec 8 17:12:01 2013
@@ -81,9 +81,7 @@ public class FreeMarkerResultTest extend
request.setRequestURI("/tutorial/test2.action");
- Dispatcher dispatcher = Dispatcher.getInstance();
- ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(
- request, dispatcher.getConfigurationManager());
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
dispatcher.serviceAction(request, response, servletContext, mapping);
assertEquals("beforenestedafter", stringWriter.toString());
}
@@ -107,9 +105,7 @@ public class FreeMarkerResultTest extend
request.setRequestURI("/tutorial/test5.action");
- Dispatcher dispatcher = Dispatcher.getInstance();
- ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(
- request, dispatcher.getConfigurationManager());
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
dispatcher.serviceAction(request, response, servletContext, mapping);
assertEquals("beforenestedafter", stringWriter.toString());
}
@@ -218,8 +214,7 @@ public class FreeMarkerResultTest extend
request.setRequestURI("/tutorial/test6.action");
- Dispatcher dispatcher = Dispatcher.getInstance();
- ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(request, dispatcher.getConfigurationManager());
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
dispatcher.serviceAction(request, response, servletContext, mapping);
// TODO lukaszlenart: remove expectedJDK15 and if() after switching to Java 1.6
@@ -279,8 +274,7 @@ public class FreeMarkerResultTest extend
request.setRequestURI("/tutorial/test7.action");
- Dispatcher dispatcher = Dispatcher.getInstance();
- ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(request, dispatcher.getConfigurationManager());
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
dispatcher.serviceAction(request, response, servletContext, mapping);
String expected = "<input type=\"radio\" name=\"client\" id=\"client_foo\" value=\"foo\"/><label for=\"client_foo\">foo</label>\n"
+ "<input type=\"radio\" name=\"client\" id=\"client_bar\" value=\"bar\"/><label for=\"client_bar\">bar</label>\n"
@@ -310,8 +304,7 @@ public class FreeMarkerResultTest extend
ServletActionContext.setServletContext(servletContext);
request.setRequestURI("/tutorial/test8.action");
- Dispatcher dispatcher = Dispatcher.getInstance();
- ActionMapping mapping = dispatcher.getContainer().getInstance(ActionMapper.class).getMapping(request, dispatcher.getConfigurationManager());
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
dispatcher.serviceAction(request, response, servletContext, mapping);
String expected = "<input type=\"text\"autofocus=\"autofocus\"/>";
assertEquals(expected, stringWriter.toString());
@@ -321,12 +314,15 @@ public class FreeMarkerResultTest extend
super.setUp();
mgr = new FreemarkerManager();
mgr.setEncoding("UTF-8");
+
DefaultFileManagerFactory factory = new DefaultFileManagerFactory();
container.inject(factory);
mgr.setFileManagerFactory(factory);
+
FreemarkerThemeTemplateLoader themeLoader = new FreemarkerThemeTemplateLoader();
container.inject(themeLoader);
mgr.setThemeTemplateLoader(themeLoader);
+
stringWriter = new StringWriter();
writer = new PrintWriter(stringWriter);
response = new StrutsMockHttpServletResponse();
@@ -334,14 +330,17 @@ public class FreeMarkerResultTest extend
request = new MockHttpServletRequest();
servletContext = new StrutsMockServletContext();
stack = ActionContext.getContext().getValueStack();
+
context = new ActionContext(stack.getContext());
context.put(StrutsStatics.HTTP_RESPONSE, response);
context.put(StrutsStatics.HTTP_REQUEST, request);
context.put(StrutsStatics.SERVLET_CONTEXT, servletContext);
+
ServletActionContext.setServletContext(servletContext);
ServletActionContext.setRequest(request);
ServletActionContext.setResponse(response);
servletContext.setAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY, null);
+
invocation = new MockActionInvocation();
invocation.setStack(stack);
invocation.setInvocationContext(context);
@@ -360,4 +359,5 @@ public class FreeMarkerResultTest extend
super.tearDown();
}
+
}
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java Sun Dec 8 17:12:01 2013
@@ -77,10 +77,13 @@ public abstract class AbstractTagTest ex
protected void setUp() throws Exception {
super.setUp();
-
/**
* create our standard mock objects
*/
+ createMocks();
+ }
+
+ protected void createMocks() {
action = this.getAction();
stack = ActionContext.getContext().getValueStack();
context = stack.getContext();
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java Sun Dec 8 17:12:01 2013
@@ -300,12 +300,8 @@ public class ActionTagTest extends Abstr
protected void setUp() throws Exception {
super.setUp();
-
- initDispatcher(new HashMap() {{ put("configProviders", TestConfigurationProvider.class.getName()); }});
-
- ActionContext actionContext = new ActionContext(context);
- actionContext.setValueStack(stack);
- ActionContext.setContext(actionContext);
+ initDispatcher(new HashMap<String, String>() {{ put("configProviders", TestConfigurationProvider.class.getName()); }});
+ createMocks();
}
protected void tearDown() throws Exception {
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java Sun Dec 8 17:12:01 2013
@@ -21,12 +21,7 @@
package org.apache.struts2.views.jsp.ui;
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ActionSupport;
-import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.config.RuntimeConfiguration;
import com.opensymphony.xwork2.config.entities.ActionConfig;
import com.opensymphony.xwork2.config.entities.InterceptorMapping;
@@ -89,7 +84,7 @@ public class FormTagTest extends Abstrac
}
public void testFormWithContext() throws Exception {
- request.setupGetContext("/somecontext");
+ request.setupGetContext("/testNamespace");
FormTag tag = new FormTag();
tag.setTheme("xhtml");
@@ -205,63 +200,13 @@ public class FormTagTest extends Abstrac
*/
public void testFormWithCustomOnsubmitEnabledWithValidateEnabled1() throws Exception {
- final Container cont = container;
- // used to determined if the form action needs js validation
- configurationManager.setConfiguration(new com.opensymphony.xwork2.config.impl.DefaultConfiguration() {
- private DefaultConfiguration self = this;
- public Container getContainer() {
- return new Container() {
- public <T> T inject(Class<T> implementation) {return null;}
- public void removeScopeStrategy() {}
- public void setScopeStrategy(Strategy scopeStrategy) {}
- public <T> T getInstance(Class<T> type, String name) {return null;}
- public <T> T getInstance(Class<T> type) {return cont.getInstance(type);}
- public Set<String> getInstanceNames(Class<?> type) {return null;}
-
- public void inject(Object o) {
- cont.inject(o);
- if (o instanceof Form) {
- ((Form)o).setConfiguration(self);
- }
- }
- };
- }
- public RuntimeConfiguration getRuntimeConfiguration() {
- return new RuntimeConfiguration() {
- public ActionConfig getActionConfig(String namespace, String name) {
- ActionConfig actionConfig = new ActionConfig("", name, "") {
- public List getInterceptors() {
- List interceptors = new ArrayList();
-
- ValidationInterceptor validationInterceptor = new ValidationInterceptor();
- validationInterceptor.setIncludeMethods("*");
-
- InterceptorMapping interceptorMapping = new InterceptorMapping("validation", validationInterceptor);
- interceptors.add(interceptorMapping);
-
- return interceptors;
- }
- public String getClassName() {
- return ActionSupport.class.getName();
- }
- };
- return actionConfig;
- }
-
- public Map getActionConfigs() {
- return null;
- }
- };
- }
- });
-
- Dispatcher.getInstance().setConfigurationManager(configurationManager);
+ prepareMockInvocation();
FormTag tag = new FormTag();
tag.setPageContext(pageContext);
tag.setName("myForm");
tag.setMethod("post");
- tag.setAction("myAction");
+ tag.setAction("doubleValidationAction");
tag.setAcceptcharset("UTF-8");
tag.setEnctype("myEncType");
tag.setTitle("mytitle");
@@ -289,90 +234,31 @@ public class FormTagTest extends Abstrac
* "excludes" all methods.
*/
public void testFormWithCustomOnsubmitEnabledWithValidateEnabled2() throws Exception {
+ prepareMockInvocation();
- com.opensymphony.xwork2.config.Configuration originalConfiguration = configurationManager.getConfiguration();
- ObjectFactory originalObjectFactory = ObjectFactory.getObjectFactory();
+ FormTag tag = new FormTag();
+ tag.setPageContext(pageContext);
+ tag.setName("myForm");
+ tag.setMethod("post");
+ tag.setAction("testAction");
+ tag.setAcceptcharset("UTF-8");
+ tag.setEnctype("myEncType");
+ tag.setTitle("mytitle");
+ tag.setOnsubmit("submitMe()");
+ tag.setValidate("true");
+ tag.setNamespace("");
- final Container cont = container;
- try {
- // used to determined if the form action needs js validation
- configurationManager.setConfiguration(new DefaultConfiguration() {
- private DefaultConfiguration self = this;
- public Container getContainer() {
- return new Container() {
- public <T> T inject(Class<T> implementation) {return null;}
- public void removeScopeStrategy() {}
- public void setScopeStrategy(Strategy scopeStrategy) {}
- public <T> T getInstance(Class<T> type, String name) {return null;}
- public <T> T getInstance(Class<T> type) {return cont.getInstance(type);}
- public Set<String> getInstanceNames(Class<?> type) {return null;}
-
- public void inject(Object o) {
- cont.inject(o);
- if (o instanceof Form) {
- ((Form)o).setConfiguration(self);
- }
- }
- };
- }
- public RuntimeConfiguration getRuntimeConfiguration() {
- return new RuntimeConfiguration() {
- public ActionConfig getActionConfig(String namespace, String name) {
- ActionConfig actionConfig = new ActionConfig("", name, "") {
- public List getInterceptors() {
- List interceptors = new ArrayList();
-
- ValidationInterceptor validationInterceptor = new ValidationInterceptor();
- validationInterceptor.setExcludeMethods("*");
-
- InterceptorMapping interceptorMapping = new InterceptorMapping("validation", validationInterceptor);
- interceptors.add(interceptorMapping);
-
- return interceptors;
- }
- public String getClassName() {
- return ActionSupport.class.getName();
- }
- };
- return actionConfig;
- }
-
- public Map getActionConfigs() {
- return null;
- }
- };
- }
- });
-
- Dispatcher.getInstance().setConfigurationManager(configurationManager);
-
- FormTag tag = new FormTag();
- tag.setPageContext(pageContext);
- tag.setName("myForm");
- tag.setMethod("post");
- tag.setAction("myAction");
- tag.setAcceptcharset("UTF-8");
- tag.setEnctype("myEncType");
- tag.setTitle("mytitle");
- tag.setOnsubmit("submitMe()");
- tag.setValidate("true");
- tag.setNamespace("");
-
- UpDownSelectTag t = new UpDownSelectTag();
- t.setPageContext(pageContext);
- t.setName("myUpDownSelectTag");
- t.setList("{}");
-
- tag.doStartTag();
- t.doStartTag();
- t.doEndTag();
- tag.doEndTag();
-
- verify(FormTag.class.getResource("Formtag-11.txt"));
- }
- finally {
- configurationManager.setConfiguration(originalConfiguration);
- }
+ UpDownSelectTag t = new UpDownSelectTag();
+ t.setPageContext(pageContext);
+ t.setName("myUpDownSelectTag");
+ t.setList("{}");
+
+ tag.doStartTag();
+ t.doStartTag();
+ t.doEndTag();
+ tag.doEndTag();
+
+ verify(FormTag.class.getResource("Formtag-11.txt"));
}
/**
@@ -380,63 +266,12 @@ public class FormTagTest extends Abstrac
*/
public void testFormWithCustomOnsubmitEnabledWithValidateEnabled3() throws Exception {
- final Container cont = container;
- // used to determined if the form action needs js validation
- configurationManager.setConfiguration(new com.opensymphony.xwork2.config.impl.DefaultConfiguration() {
- private DefaultConfiguration self = this;
- public Container getContainer() {
- return new Container() {
- public <T> T inject(Class<T> implementation) {return null;}
- public void removeScopeStrategy() {}
- public void setScopeStrategy(Strategy scopeStrategy) {}
- public <T> T getInstance(Class<T> type, String name) {return null;}
- public <T> T getInstance(Class<T> type) {return cont.getInstance(type);}
- public Set<String> getInstanceNames(Class<?> type) {return null;}
-
- public void inject(Object o) {
- cont.inject(o);
- if (o instanceof Form) {
- ((Form)o).setConfiguration(self);
- }
- }
- };
- }
- public RuntimeConfiguration getRuntimeConfiguration() {
- return new RuntimeConfiguration() {
- public ActionConfig getActionConfig(String namespace, String name) {
- ActionConfig actionConfig = new ActionConfig("", name, IntValidationAction.class.getName()) {
- public List getInterceptors() {
- List interceptors = new ArrayList();
-
- ValidationInterceptor validationInterceptor = new ValidationInterceptor();
- validationInterceptor.setIncludeMethods("*");
-
- InterceptorMapping interceptorMapping = new InterceptorMapping("validation", validationInterceptor);
- interceptors.add(interceptorMapping);
-
- return interceptors;
- }
- public String getClassName() {
- return IntValidationAction.class.getName();
- }
- };
- return actionConfig;
- }
-
- public Map getActionConfigs() {
- return null;
- }
- };
- }
- });
-
- Dispatcher.getInstance().setConfigurationManager(configurationManager);
-
+ prepareMockInvocation();
FormTag tag = new FormTag();
tag.setPageContext(pageContext);
tag.setName("myForm");
tag.setMethod("post");
- tag.setAction("myAction");
+ tag.setAction("doubleValidationAction");
tag.setAcceptcharset("UTF-8");
tag.setEnctype("myEncType");
tag.setTitle("mytitle");
@@ -462,64 +297,13 @@ public class FormTagTest extends Abstrac
* Tests the numbers are formatted correctly to not break the javascript, using doubles
*/
public void testFormWithCustomOnsubmitEnabledWithValidateEnabled4() throws Exception {
-
- final Container cont = container;
- // used to determined if the form action needs js validation
- configurationManager.setConfiguration(new com.opensymphony.xwork2.config.impl.DefaultConfiguration() {
- private DefaultConfiguration self = this;
- public Container getContainer() {
- return new Container() {
- public <T> T inject(Class<T> implementation) {return null;}
- public void removeScopeStrategy() {}
- public void setScopeStrategy(Strategy scopeStrategy) {}
- public <T> T getInstance(Class<T> type, String name) {return null;}
- public <T> T getInstance(Class<T> type) {return cont.getInstance(type);}
- public Set<String> getInstanceNames(Class<?> type) {return null;}
-
- public void inject(Object o) {
- cont.inject(o);
- if (o instanceof Form) {
- ((Form)o).setConfiguration(self);
- }
- }
- };
- }
- public RuntimeConfiguration getRuntimeConfiguration() {
- return new RuntimeConfiguration() {
- public ActionConfig getActionConfig(String namespace, String name) {
- ActionConfig actionConfig = new ActionConfig("", name, DoubleValidationAction.class.getName()) {
- public List getInterceptors() {
- List interceptors = new ArrayList();
-
- ValidationInterceptor validationInterceptor = new ValidationInterceptor();
- validationInterceptor.setIncludeMethods("*");
-
- InterceptorMapping interceptorMapping = new InterceptorMapping("validation", validationInterceptor);
- interceptors.add(interceptorMapping);
-
- return interceptors;
- }
- public String getClassName() {
- return DoubleValidationAction.class.getName();
- }
- };
- return actionConfig;
- }
-
- public Map getActionConfigs() {
- return null;
- }
- };
- }
- });
-
- Dispatcher.getInstance().setConfigurationManager(configurationManager);
+ prepareMockInvocation();
FormTag tag = new FormTag();
tag.setPageContext(pageContext);
tag.setName("myForm");
tag.setMethod("post");
- tag.setAction("myAction");
+ tag.setAction("doubleValidationAction");
tag.setAcceptcharset("UTF-8");
tag.setEnctype("myEncType");
tag.setTitle("mytitle");
@@ -541,6 +325,24 @@ public class FormTagTest extends Abstrac
verify(FormTag.class.getResource("Formtag-24.txt"));
}
+ private void prepareMockInvocation() throws Exception {
+ ActionContext.getContext().setValueStack(stack);
+
+ ActionConfig config = new ActionConfig.Builder("", "name", "").build();
+ ActionInvocation invocation = EasyMock.createNiceMock(ActionInvocation.class);
+ ActionProxy proxy = EasyMock.createNiceMock(ActionProxy.class);
+
+ EasyMock.expect(invocation.getProxy()).andReturn(proxy).anyTimes();
+ EasyMock.expect(invocation.getAction()).andReturn(null).anyTimes();
+ EasyMock.expect(invocation.invoke()).andReturn(Action.SUCCESS).anyTimes();
+ EasyMock.expect(proxy.getMethod()).andReturn("execute").anyTimes();
+ EasyMock.expect(proxy.getConfig()).andReturn(config).anyTimes();
+
+ EasyMock.replay(invocation);
+ EasyMock.replay(proxy);
+
+ ActionContext.getContext().setActionInvocation(invocation);
+ }
/**
* This test with form tag validation disabled.
@@ -582,6 +384,7 @@ public class FormTagTest extends Abstrac
put(StrutsConstants.STRUTS_ACTION_EXTENSION, "jspa");
put("configProviders", TestConfigurationProvider.class.getName());
}});
+ createMocks();
request.setupGetServletPath("/testNamespace/testNamespaceAction");
FormTag tag = new FormTag();
@@ -637,7 +440,7 @@ public class FormTagTest extends Abstrac
}
public void testFormTagForStackOverflowException1() throws Exception {
- request.setRequestURI("/requestUri");
+ request.setRequestURI("/testAction");
FormTag form1 = new FormTag();
form1.setPageContext(pageContext);
@@ -804,25 +607,9 @@ public class FormTagTest extends Abstrac
@Override
protected void setUp() throws Exception {
super.setUp();
- initDispatcher(new HashMap<String,String>(){{
+ initDispatcher(new HashMap<String, String>() {{
put("configProviders", TestConfigurationProvider.class.getName());
}});
- ActionContext.getContext().setValueStack(stack);
-
- ActionConfig config = new ActionConfig.Builder("", "name", "").build();
- ActionInvocation invocation = EasyMock.createNiceMock(ActionInvocation.class);
- ActionProxy proxy = EasyMock.createNiceMock(ActionProxy.class);
-
- EasyMock.expect(invocation.getProxy()).andReturn(proxy).anyTimes();
- EasyMock.expect(invocation.getAction()).andReturn(null).anyTimes();
- EasyMock.expect(invocation.invoke()).andReturn(Action.SUCCESS).anyTimes();
- EasyMock.expect(proxy.getMethod()).andReturn("execute").anyTimes();
- EasyMock.expect(proxy.getConfig()).andReturn(config).anyTimes();
-
-
- EasyMock.replay(invocation);
- EasyMock.replay(proxy);
-
- ActionContext.getContext().setActionInvocation(invocation);
+ createMocks();
}
}
Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/TooltipTest.java Sun Dec 8 17:12:01 2013
@@ -379,5 +379,6 @@ public class TooltipTest extends Abstrac
initDispatcher(new HashMap<String,String>(){{
put("configProviders", TestConfigurationProvider.class.getName());
}});
+ createMocks();
}
}
Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt Sun Dec 8 17:12:01 2013
@@ -1,19 +1,19 @@
<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
<script type="text/javascript" src="/struts/utils.js"></script>
-<form id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
+<form id="testAction" name="myForm" onsubmit="submitMe(); return validateForm_testAction();" action="/testAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
<table class="wwFormTable"> <tr>
<td class="tdLabel"></td>
<td> <script type="text/javascript" src="/struts/optiontransferselect.js"></script>
<table>
<tr><td>
-<select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
+<select name="myUpDownSelectTag" size="5" id="testAction_myUpDownSelectTag" multiple="multiple">
</select>
-<input type="hidden" id="__multiselect_myAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
+<input type="hidden" id="__multiselect_testAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
</td></tr>
<tr><td>
- <input type="button" value="^" onclick="moveOptionUp(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="v" onclick="moveOptionDown(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="*" onclick="selectAllOptions(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="^" onclick="moveOptionUp(document.getElementById('testAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="v" onclick="moveOptionDown(document.getElementById('testAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="*" onclick="selectAllOptions(document.getElementById('testAction_myUpDownSelectTag'), 'key', '');" />
</td></tr>
</table>
</td>
@@ -23,10 +23,10 @@
<script type="text/javascript">
- var containingForm = document.getElementById("myAction");
+ var containingForm = document.getElementById("testAction");
StrutsUtils.addEventListener(containingForm, "submit",
function(evt) {
- var updownselectObj = document.getElementById("myAction_myUpDownSelectTag");
+ var updownselectObj = document.getElementById("testAction_myUpDownSelectTag");
selectAllOptionsExceptSome(updownselectObj, "key", "");
}, true);
</script>
Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-13.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-13.txt?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-13.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-13.txt Sun Dec 8 17:12:01 2013
@@ -1,4 +1,4 @@
-<form id="testAction" name="testAction" action="/somecontext/testAction.action" method="post">
+<form id="testAction" name="testAction" action="/testNamespace/testAction.action" method="post">
<table class="wwFormTable">
</table>
</form>
\ No newline at end of file
Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt Sun Dec 8 17:12:01 2013
@@ -1,19 +1,19 @@
<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
<script type="text/javascript "src="/struts/utils.js"></script>
-<form id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
+<form id="doubleValidationAction" name="myForm" onsubmit="submitMe(); return validateForm_doubleValidationAction();" action="/doubleValidationAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
<table class="wwFormTable"> <tr>
<td class="tdLabel"></td>
<td> <script type="text/javascript" src="/struts/optiontransferselect.js"></script>
<table>
<tr><td>
-<select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
+<select name="myUpDownSelectTag" size="5" id="doubleValidationAction_myUpDownSelectTag" multiple="multiple">
</select>
-<input type="hidden" id="__multiselect_myAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
+<input type="hidden" id="__multiselect_doubleValidationAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
</td></tr>
<tr><td>
- <input type="button" value="^" onclick="moveOptionUp(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="v" onclick="moveOptionDown(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="*" onclick="selectAllOptions(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="^" onclick="moveOptionUp(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="v" onclick="moveOptionDown(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="*" onclick="selectAllOptions(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
</td></tr>
</table>
</td>
@@ -23,17 +23,17 @@
<script type="text/javascript">
- var containingForm = document.getElementById("myAction");
+ var containingForm = document.getElementById("doubleValidationAction");
StrutsUtils.addEventListener(containingForm, "submit",
function(evt) {
- var updownselectObj = document.getElementById("myAction_myUpDownSelectTag");
+ var updownselectObj = document.getElementById("doubleValidationAction_myUpDownSelectTag");
selectAllOptionsExceptSome(updownselectObj, "key", "");
}, true);
</script>
<script type="text/javascript">
- function validateForm_myAction() {
+ function validateForm_doubleValidationAction() {
var getFieldValue = function(field) {
var type = field.type ? field.type : field[0].type;
if(type == 'select-one' || type == 'select-multiple') {
@@ -51,11 +51,25 @@
}
return field.value;
}
- form = document.getElementById("myAction");
+ form = document.getElementById("doubleValidationAction");
clearErrorMessages(form);
clearErrorLabels(form);
var errors = false;
var continueValidation=true;
+ //field name: myUpDownSelectTag
+ //validator name: double
+ if(form.elements['myUpDownSelectTag']) {
+ field = form.elements['myUpDownSelectTag'];
+ var error = "bar must be between 6000.1 and 10000.1.";
+ var fieldValue=getFieldValue(field);
+ if(continueValidation && fieldValue != null) {
+ var value = parseFloat(fieldValue);
+ if(value < 6000.1 || value>10000.1 || false || false){
+ addError(field, error);
+ errors=true;
+ }
+ }
+ }
return !errors;
}
Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-22.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-22.txt?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-22.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-22.txt Sun Dec 8 17:12:01 2013
@@ -1,19 +1,19 @@
<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
<script type="text/javascript "src="/struts/utils.js"></script>
-<form id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
+<form id="doubleValidationAction" name="myForm" onsubmit="submitMe(); return validateForm_doubleValidationAction();" action="/doubleValidationAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
<table class="wwFormTable"> <tr>
<td class="tdLabel"></td>
<td> <script type="text/javascript" src="/struts/optiontransferselect.js"></script>
<table>
<tr><td>
-<select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
+<select name="myUpDownSelectTag" size="5" id="doubleValidationAction_myUpDownSelectTag" multiple="multiple">
</select>
-<input type="hidden" id="__multiselect_myAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
+<input type="hidden" id="__multiselect_doubleValidationAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
</td></tr>
<tr><td>
- <input type="button" value="^" onclick="moveOptionUp(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="v" onclick="moveOptionDown(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="*" onclick="selectAllOptions(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="^" onclick="moveOptionUp(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="v" onclick="moveOptionDown(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="*" onclick="selectAllOptions(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
</td></tr>
</table>
</td>
@@ -23,16 +23,16 @@
<script type="text/javascript">
- var containingForm = document.getElementById("myAction");
+ var containingForm = document.getElementById("doubleValidationAction");
StrutsUtils.addEventListener(containingForm, "submit",
function(evt) {
- var updownselectObj = document.getElementById("myAction_myUpDownSelectTag");
+ var updownselectObj = document.getElementById("doubleValidationAction_myUpDownSelectTag");
selectAllOptionsExceptSome(updownselectObj, "key", "");
}, true);
</script>
<script type="text/javascript">
- function validateForm_myAction() {
+ function validateForm_doubleValidationAction() {
var getFieldValue = function(field) {
var type = field.type ? field.type : field[0].type;
if(type == 'select-one' || type == 'select-multiple') {
@@ -50,21 +50,22 @@
}
return field.value;
}
- form = document.getElementById("myAction");
+ form = document.getElementById("doubleValidationAction");
clearErrorMessages(form);
clearErrorLabels(form);
var errors = false;
var continueValidation = true;
- //fieldname:myUpDownSelectTag
- //validatorname:int
+ //field name: myUpDownSelectTag
+ //validator name: double
if(form.elements['myUpDownSelectTag']) {
field = form.elements['myUpDownSelectTag'];
- var error = "bar must be between 6000 and 10000.";
- var fieldValue = getFieldValue(field);
+ var error = "bar must be between 6000.1 and 10000.1.";
+ var fieldValue=getFieldValue(field);
if(continueValidation && fieldValue != null) {
- if(parseInt(fieldValue) < 6000 || parseInt(fieldValue) > 10000) {
+ var value = parseFloat(fieldValue);
+ if(value < 6000.1 || value>10000.1 || false || false){
addError(field, error);
- errors = true;
+ errors=true;
}
}
}
Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-24.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-24.txt?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-24.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-24.txt Sun Dec 8 17:12:01 2013
@@ -1,19 +1,19 @@
<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
<script type="text/javascript "src="/struts/utils.js"></script>
-<form id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
+<form id="doubleValidationAction" name="myForm" onsubmit="submitMe(); return validateForm_doubleValidationAction();" action="/doubleValidationAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8" onreset="clearErrorMessages(this);clearErrorLabels(this);">
<table class="wwFormTable"> <tr>
<td class="tdLabel"></td>
<td> <script type="text/javascript" src="/struts/optiontransferselect.js"></script>
<table>
<tr><td>
-<select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
+<select name="myUpDownSelectTag" size="5" id="doubleValidationAction_myUpDownSelectTag" multiple="multiple">
</select>
-<input type="hidden" id="__multiselect_myAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
+<input type="hidden" id="__multiselect_doubleValidationAction_myUpDownSelectTag" name="__multiselect_myUpDownSelectTag"value=""/>
</td></tr>
<tr><td>
- <input type="button" value="^" onclick="moveOptionUp(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="v" onclick="moveOptionDown(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
- <input type="button" value="*" onclick="selectAllOptions(document.getElementById('myAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="^" onclick="moveOptionUp(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="v" onclick="moveOptionDown(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
+ <input type="button" value="*" onclick="selectAllOptions(document.getElementById('doubleValidationAction_myUpDownSelectTag'), 'key', '');" />
</td></tr>
</table>
</td>
@@ -23,16 +23,16 @@
<script type="text/javascript">
- var containingForm = document.getElementById("myAction");
+ var containingForm = document.getElementById("doubleValidationAction");
StrutsUtils.addEventListener(containingForm, "submit",
function(evt) {
- var updownselectObj = document.getElementById("myAction_myUpDownSelectTag");
+ var updownselectObj = document.getElementById("doubleValidationAction_myUpDownSelectTag");
selectAllOptionsExceptSome(updownselectObj, "key", "");
}, true);
</script>
<script type="text/javascript">
- function validateForm_myAction() {
+ function validateForm_doubleValidationAction() {
var getFieldValue = function(field) {
var type = field.type ? field.type : field[0].type;
if(type == 'select-one' || type == 'select-multiple') {
@@ -50,13 +50,13 @@
}
return field.value;
}
- form = document.getElementById("myAction");
+ form = document.getElementById("doubleValidationAction");
clearErrorMessages(form);
clearErrorLabels(form);
var errors = false;
var continueValidation = true;
- //fieldname:myUpDownSelectTag
- //validatorname:double
+ //field name: myUpDownSelectTag
+ //validator name: double
if(form.elements['myUpDownSelectTag']) {
field = form.elements['myUpDownSelectTag'];
var error = "bar must be between 6000.1 and 10000.1.";
Modified: struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java (original)
+++ struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java Sun Dec 8 17:12:01 2013
@@ -62,11 +62,13 @@ import static org.junit.Assert.assertNot
public abstract class StrutsJUnit4TestCase<T> extends XWorkJUnit4TestCase {
+
protected MockHttpServletResponse response;
protected MockHttpServletRequest request;
protected MockPageContext pageContext;
protected MockServletContext servletContext;
protected Map<String, String> dispatcherInitParams;
+ protected Dispatcher dispatcher;
protected DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
@@ -178,8 +180,7 @@ public abstract class StrutsJUnit4TestCa
* Finds an ActionMapping for a given request
*/
protected ActionMapping getActionMapping(HttpServletRequest request) {
- return Dispatcher.getInstance().getContainer().getInstance(ActionMapper.class).getMapping(request,
- Dispatcher.getInstance().getConfigurationManager());
+ return container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
}
/**
@@ -195,10 +196,9 @@ public abstract class StrutsJUnit4TestCa
* Injects dependencies on an Object using Struts internal IoC container
*/
protected void injectStrutsDependencies(Object object) {
- Dispatcher.getInstance().getContainer().inject(object);
+ container.inject(object);
}
-
protected void setupBeforeInitDispatcher() throws Exception {
}
@@ -232,7 +232,6 @@ public abstract class StrutsJUnit4TestCa
*/
@Before
public void setUp() throws Exception {
-
super.setUp();
initServletMockObjects();
setupBeforeInitDispatcher();
@@ -248,11 +247,12 @@ public abstract class StrutsJUnit4TestCa
}
protected Dispatcher initDispatcher(Map<String, String> params) {
- Dispatcher du = StrutsTestCaseHelper.initDispatcher(servletContext, params);
- configurationManager = du.getConfigurationManager();
+ dispatcher = StrutsTestCaseHelper.initDispatcher(servletContext, params);
+ configurationManager = dispatcher.getConfigurationManager();
configuration = configurationManager.getConfiguration();
container = configuration.getContainer();
- return du;
+ container.inject(dispatcher);
+ return dispatcher;
}
/**
@@ -267,8 +267,11 @@ public abstract class StrutsJUnit4TestCa
@After
public void tearDown() throws Exception {
-
super.tearDown();
+ if (dispatcher != null && dispatcher.getConfigurationManager() != null) {
+ dispatcher.cleanup();
+ dispatcher = null;
+ }
StrutsTestCaseHelper.tearDown();
}
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=1549067&r1=1549066&r2=1549067&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 Dec 8 17:12:01 2013
@@ -62,6 +62,7 @@ public abstract class StrutsTestCase ext
protected MockPageContext pageContext;
protected MockServletContext servletContext;
protected Map<String, String> dispatcherInitParams;
+ protected Dispatcher dispatcher;
protected DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
@@ -177,8 +178,7 @@ public abstract class StrutsTestCase ext
* Finds an ActionMapping for a given request
*/
protected ActionMapping getActionMapping(HttpServletRequest request) {
- return Dispatcher.getInstance().getContainer().getInstance(ActionMapper.class).getMapping(request,
- Dispatcher.getInstance().getConfigurationManager());
+ return container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
}
/**
@@ -194,10 +194,9 @@ public abstract class StrutsTestCase ext
* Injects dependencies on an Object using Struts internal IoC container
*/
protected void injectStrutsDependencies(Object object) {
- Dispatcher.getInstance().getContainer().inject(object);
+ container.inject(object);
}
-
/**
* Sets up the configuration settings, XWork configuration, and
* message resources
@@ -206,7 +205,7 @@ public abstract class StrutsTestCase ext
super.setUp();
initServletMockObjects();
setupBeforeInitDispatcher();
- Dispatcher dispatcher = initDispatcher(dispatcherInitParams);
+ dispatcher = initDispatcher(dispatcherInitParams);
setupAfterInitDispatcher(dispatcher);
}
@@ -235,6 +234,11 @@ public abstract class StrutsTestCase ext
protected void tearDown() throws Exception {
super.tearDown();
+ // maybe someone else already destroyed Dispatcher
+ if (dispatcher != null && dispatcher.getConfigurationManager() != null) {
+ dispatcher.cleanup();
+ dispatcher = null;
+ }
StrutsTestCaseHelper.tearDown();
}
Modified: struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java (original)
+++ struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java Sun Dec 8 17:12:01 2013
@@ -206,7 +206,7 @@ public class Jsr168Dispatcher extends Ge
// For testability
if (factory == null) {
- factory = dispatcherUtils.getConfigurationManager().getConfiguration().getContainer().getInstance(ActionProxyFactory.class);
+ factory = dispatcherUtils.getContainer().getInstance(ActionProxyFactory.class);
}
portletNamespace = cfg.getInitParameter("portletNamespace");
if (LOG.isDebugEnabled()) {
@@ -374,7 +374,7 @@ public class Jsr168Dispatcher extends Ge
extraContext.put(ActionContext.SESSION, sessionMap);
extraContext.put(ActionContext.APPLICATION, applicationMap);
- String defaultLocale = dispatcherUtils.getContainer().getInstance(String.class, StrutsConstants.STRUTS_LOCALE);
+ String defaultLocale = container.getInstance(String.class, StrutsConstants.STRUTS_LOCALE);
Locale locale;
if (defaultLocale != null) {
locale = LocalizedTextUtil.localeFromString(defaultLocale, request.getLocale());
Modified: struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java?rev=1549067&r1=1549066&r2=1549067&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java (original)
+++ struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/views/jsp/PortletUrlTagTest.java Sun Dec 8 17:12:01 2013
@@ -82,6 +82,8 @@ public class PortletUrlTagTest extends M
Mock mockActionInvocation = null;
+ private Dispatcher dispatcher;
+
public static void main(String[] args) {
TestRunner.run(PortletUrlTagTest.class);
}
@@ -90,12 +92,12 @@ public class PortletUrlTagTest extends M
public void setUp() throws Exception {
super.setUp();
- Dispatcher du = new Dispatcher(null, new HashMap());
- du.init();
- Dispatcher.setInstance(du);
+ dispatcher = new Dispatcher(null, new HashMap());
+ dispatcher.init();
+ Dispatcher.setInstance(dispatcher);
- stack = du.getContainer().getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().put(ActionContext.CONTAINER, du.getContainer());
+ stack = dispatcher.getContainer().getInstance(ValueStackFactory.class).createValueStack();
+ stack.getContext().put(ActionContext.CONTAINER, dispatcher.getContainer());
ActionContext context = new ActionContext(stack.getContext());
ActionContext.setContext(context);
@@ -166,6 +168,14 @@ public class PortletUrlTagTest extends M
}
+ public void tearDown() throws Exception {
+ super.tearDown();
+ if (dispatcher != null && dispatcher.getConfigurationManager() != null) {
+ dispatcher.cleanup();
+ dispatcher = null;
+ }
+ }
+
public void testEnsureParamsAreStringArrays() {
Map params = new HashMap();
params.put("param1", "Test1");