You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by dr...@apache.org on 2011/06/23 12:25:55 UTC

svn commit: r1138816 - in /tapestry/tapestry5/trunk: tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/ tapestry-beanvalidator/src/test/java/org/example/testapp/pages/ tapestry-beanvalidator/src/test/webapp/ tapestry-c...

Author: drobiazko
Date: Thu Jun 23 10:25:55 2011
New Revision: 1138816

URL: http://svn.apache.org/viewvc?rev=1138816&view=rev
Log:
TAP5-1550: Allow Checklist component to be validated by Bean Validation API constraints

Modified:
    tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
    tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/FormValidationDemo.java
    tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/webapp/FormValidationDemo.tml
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java

Modified: tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java?rev=1138816&r1=1138815&r2=1138816&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java (original)
+++ tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/apache/tapestry5/beanvalidator/integration/TapestryBeanValidationIntegrationTests.java Thu Jun 23 10:25:55 2011
@@ -37,6 +37,7 @@ public class TapestryBeanValidationInteg
         assertTextPresent("Secret Password may not be null");
         assertTextPresent("Programming Languages size must be between 2 and 3");
         assertTextPresent("Favorite Colors may not be null");
+        assertTextPresent("More Colors size must be between 3 and 4");
         assertTextPresent("Birth Day may not be null");
         
 
@@ -56,17 +57,23 @@ public class TapestryBeanValidationInteg
     	assertFalse(isTextPresent("Secret Password may not be null"));
     	assertFalse(isTextPresent("Programming Languages size must be between 2 and 3"));
     	assertFalse(isTextPresent("Favorite Colors may not be null"));
+        assertTextPresent("More Colors size must be between 3 and 4");
     	assertTextPresent("Birth Day must be in the past");
         
         //Test Tapestry validator
         
         type("loginName", "igor");
         type("birthDay", "6.04.1978");
+
+        check("//input[@value='White']");
+        check("//input[@value='Yellow']");
+        check("//input[@value='Orange']");
     	
     	clickAndWait(SUBMIT);
     	
     	assertTextPresent("You must provide at least 5 characters for Login Name.");
     	assertFalse(isTextPresent("Birth Day must be in the past"));
+    	assertFalse(isTextPresent("More Colors size must be between 3 and 4"));
         
         type("loginName", "igor123");
     	

Modified: tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/FormValidationDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/FormValidationDemo.java?rev=1138816&r1=1138815&r2=1138816&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/FormValidationDemo.java (original)
+++ tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/java/org/example/testapp/pages/FormValidationDemo.java Thu Jun 23 10:25:55 2011
@@ -26,39 +26,45 @@ import org.apache.tapestry5.beaneditor.V
 import org.apache.tapestry5.internal.services.StringValueEncoder;
 import org.example.testapp.services.Foo;
 
-public class FormValidationDemo 
+public class FormValidationDemo
 {
 	@NotNull(groups=Foo.class)
 	@Validate("minlength=5")
 	@Property
 	@Persist
 	private String userName;
-	
+
 	@NotNull
 	@Property
 	@Persist
 	private String password;
-	
+
 	@NotNull
 	@Size(min=2, max=3)
 	@Property
 	@Persist
 	private Collection<String> languages;
-	
+
 	@NotNull
 	@Property
 	@Persist
-	private String color; 
-	
+	private String color;
+
+    @NotNull
+	@Size(min=3, max=4)
+	@Property
+	@Persist
+	private Collection<String> moreColors;
+
 	@NotNull
 	@Past
 	@Property
 	@Persist
-	private Date date; 
-	
+	private Date date;
+
 	public StringValueEncoder getStringValueEncoder()
 	{
 		return new StringValueEncoder();
 	}
-	
+
 }

Modified: tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/webapp/FormValidationDemo.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/webapp/FormValidationDemo.tml?rev=1138816&r1=1138815&r2=1138816&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/webapp/FormValidationDemo.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-beanvalidator/src/test/webapp/FormValidationDemo.tml Thu Jun 23 10:25:55 2011
@@ -16,6 +16,10 @@
         	
         	<br/>
         	<t:select t:id="favoriteColors" model="literal:Red,Green,Blue" value="color"/>
+
+            <br/>
+            <label t:type="label" for="moreColors"/>
+        	<t:checklist t:id="moreColors" model="literal:White,Yellow,Orange,Pink" selected="moreColors" encoder="stringValueEncoder"/>
         	
         	<br/>
         	<t:datefield t:id="birthDay" value="date" format="dd.MM.yyyy"/>

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java?rev=1138816&r1=1138815&r2=1138816&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java Thu Jun 23 10:25:55 2011
@@ -150,6 +150,8 @@ public class Checklist extends AbstractF
 
         }
 
+        putPropertyNameIntoBeanValidationContext("selected");
+
         try
         {
             this.fieldValidationSupport.validate(selected, this.componentResources, this.validate);
@@ -159,6 +161,8 @@ public class Checklist extends AbstractF
         {
             this.tracker.recordError(this, e.getMessage());
         }
+
+        removePropertyNameFromBeanValidationContext();
     }
 
     Set<Object> getSelected()