Author: lukaszlenart
Date: Tue Apr 10 19:29:09 2012
New Revision: 1311945
URL: http://svn.apache.org/viewvc?rev=1311945&view=rev
Log:
WW-3432 pushes messages variables to allow customize validation messages
Modified:
struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/SimpleFieldI18n.java
struts/struts2/trunk/plugins/oval/src/test/resources/org/apache/struts2/oval/interceptor/SimpleFieldI18n.properties
struts/struts2/trunk/plugins/oval/src/test/resources/oval-test.xml
Modified:
struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java?rev=1311945&r1=1311944&r2=1311945&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java
(original)
+++
struts/struts2/trunk/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java
Tue Apr 10 19:29:09 2012
@@ -180,13 +180,16 @@ public class OValValidationInterceptor e
//translate message
String key = violation.getMessage();
+ String message = key;
+ // push context variable into stack, to allow use ${max},
${min} etc in error messages
+ valueStack.push(violation.getMessageVariables());
//push the validator into the stack
valueStack.push(violation.getContext());
- String message = key;
try {
message = validatorContext.getText(key);
} finally {
valueStack.pop();
+ valueStack.pop();
}
if (isActionError(violation)) {
Modified:
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java?rev=1311945&r1=1311944&r2=1311945&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
(original)
+++
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
Tue Apr 10 19:29:09 2012
@@ -24,14 +24,12 @@ import com.opensymphony.xwork2.ActionPro
import com.opensymphony.xwork2.ValidationAware;
import com.opensymphony.xwork2.XWorkTestCase;
import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import net.sf.oval.configuration.Configurer;
import java.util.Arrays;
import java.util.List;
-import java.util.Map;
import java.util.Locale;
-
-import net.sf.oval.configuration.Configurer;
-import org.apache.struts2.oval.interceptor.OValValidationManager;
+import java.util.Map;
public class OValValidationInterceptorTest extends XWorkTestCase {
public void testSimpleFieldsXML() throws Exception {
@@ -126,6 +124,20 @@ public class OValValidationInterceptorTe
assertEquals(0, fieldErrors.size());
}
+ public void testSimpleFieldTooLong() throws Exception {
+ ActionProxy baseActionProxy =
actionProxyFactory.createActionProxy("oval", "simpleFieldTooLong", null, null);
+ SimpleField action = (SimpleField) baseActionProxy.getAction();
+ action.setName("12367");
+ baseActionProxy.execute();
+
+ Map<String, List<String>> fieldErrors = action.getFieldErrors();
+
+ assertNotNull(fieldErrors);
+ assertEquals(1, fieldErrors.size());
+ assertValue(fieldErrors, "name", Arrays.asList("name is not between 0
and 3 characters long"));
+ assertValue(fieldErrors, "name", Arrays.asList("name is not between 0
and 3 characters long"));
+ }
+
public void testSimpleFieldMultipleValidators() throws Exception {
ActionProxy baseActionProxy =
actionProxyFactory.createActionProxy("oval", "simpleField", null, null);
SimpleField action = (SimpleField) baseActionProxy.getAction();
@@ -195,6 +207,19 @@ public class OValValidationInterceptorTe
assertValue(fieldErrors, "name", Arrays.asList("name cannot be null"));
}
+ public void testSimpleFieldI18n2() throws Exception {
+ ActionProxy baseActionProxy =
actionProxyFactory.createActionProxy("oval", "simpleFieldI18n", null, null);
+ SimpleFieldI18n action = (SimpleFieldI18n) baseActionProxy.getAction();
+ action.setName("123123");
+ baseActionProxy.execute();
+
+ Map<String, List<String>> fieldErrors = action.getFieldErrors();
+
+ assertNotNull(fieldErrors);
+ assertEquals(1, fieldErrors.size());
+ assertValue(fieldErrors, "name", Arrays.asList("name value is too
long, allowed length is 3"));
+ }
+
public void testSimpleFieldI18nDefaultKey() throws Exception {
ActionProxy baseActionProxy =
actionProxyFactory.createActionProxy("oval", "simpleFieldI18nDefaultKey", null,
null);
SimpleFieldI18nDefaultKey action = (SimpleFieldI18nDefaultKey)
baseActionProxy.getAction();
Modified:
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/SimpleFieldI18n.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/SimpleFieldI18n.java?rev=1311945&r1=1311944&r2=1311945&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/SimpleFieldI18n.java
(original)
+++
struts/struts2/trunk/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/SimpleFieldI18n.java
Tue Apr 10 19:29:09 2012
@@ -21,12 +21,12 @@
package org.apache.struts2.oval.interceptor;
import com.opensymphony.xwork2.ActionSupport;
-import net.sf.oval.constraint.NotNull;
-import net.sf.oval.constraint.NotEmpty;
import net.sf.oval.constraint.Length;
+import net.sf.oval.constraint.NotNull;
public class SimpleFieldI18n extends ActionSupport {
@NotNull(message = "notnull.field")
+ @Length(max = 3, message = "field.too.long")
private String name;
public String getName() {
Modified:
struts/struts2/trunk/plugins/oval/src/test/resources/org/apache/struts2/oval/interceptor/SimpleFieldI18n.properties
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/test/resources/org/apache/struts2/oval/interceptor/SimpleFieldI18n.properties?rev=1311945&r1=1311944&r2=1311945&view=diff
==============================================================================
---
struts/struts2/trunk/plugins/oval/src/test/resources/org/apache/struts2/oval/interceptor/SimpleFieldI18n.properties
(original)
+++
struts/struts2/trunk/plugins/oval/src/test/resources/org/apache/struts2/oval/interceptor/SimpleFieldI18n.properties
Tue Apr 10 19:29:09 2012
@@ -1 +1,2 @@
-notnull.field=${field.name} cannot be null
\ No newline at end of file
+notnull.field=${field.name} cannot be null
+field.too.long=${field.name} value is too long, allowed length is ${max}
\ No newline at end of file
Modified: struts/struts2/trunk/plugins/oval/src/test/resources/oval-test.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/oval/src/test/resources/oval-test.xml?rev=1311945&r1=1311944&r2=1311945&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/oval/src/test/resources/oval-test.xml
(original)
+++ struts/struts2/trunk/plugins/oval/src/test/resources/oval-test.xml Tue Apr
10 19:29:09 2012
@@ -46,6 +46,10 @@
<interceptor-ref name="ovalValidation"/>
<result type="void"></result>
</action>
+ <action name="simpleFieldTooLong"
class="org.apache.struts2.oval.interceptor.SimpleField">
+ <interceptor-ref name="ovalValidation"/>
+ <result type="void"></result>
+ </action>
<action name="simpleMethod"
class="org.apache.struts2.oval.interceptor.SimpleMethod">
<interceptor-ref name="ovalValidation"/>
<result type="void"></result>