]> source.dussan.org Git - vaadin-framework.git/commitdiff
#5785 AbstractStringValidator should convert non-string values
authorHenri Sara <henri.sara@itmill.com>
Fri, 15 Oct 2010 12:28:55 +0000 (12:28 +0000)
committerHenri Sara <henri.sara@itmill.com>
Fri, 15 Oct 2010 12:28:55 +0000 (12:28 +0000)
svn changeset:15564/svn branch:6.4

src/com/vaadin/data/validator/AbstractStringValidator.java
tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java [new file with mode: 0644]

index 359d83ef1091683e8228c1d5dc6620ef4b2d50a3..90778e16b1811ee48313aa7ac844a16e78298942 100644 (file)
@@ -42,20 +42,21 @@ public abstract class AbstractStringValidator extends AbstractValidator {
      * Tests if the given value is a valid string.
      * <p>
      * Null values are always accepted. Values that are not {@link String}s are
-     * always rejected. Uses {@link #isValidString(String)} to validate the
-     * value.
+     * converted using {@link #toString()}. Then {@link #isValidString(String)}
+     * is used to validate the value.
      * </p>
      * 
      * @param value
      *            the value to check
-     * @return true if the value is a valid string, false otherwise
+     * @return true if the value (or its toString()) is a valid string, false
+     *         otherwise
      */
     public boolean isValid(Object value) {
         if (value == null) {
             return true;
         }
         if (!(value instanceof String)) {
-            return false;
+            value = String.valueOf(value);
         }
         return isValidString((String) value);
     }
diff --git a/tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java b/tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java
new file mode 100644 (file)
index 0000000..2765bf6
--- /dev/null
@@ -0,0 +1,17 @@
+package com.vaadin.tests.validation;\r
+\r
+import org.junit.Test;\r
+\r
+import com.vaadin.data.validator.IntegerValidator;\r
+import com.vaadin.ui.TextField;\r
+\r
+public class TestReadOnlyValidation {\r
+\r
+    @Test\r
+    public void testIntegerValidation() {\r
+        TextField field = new TextField();\r
+        field.addValidator(new IntegerValidator("Enter a Valid Number"));\r
+        field.setValue(Integer.valueOf(10));\r
+        field.validate();\r
+    }\r
+}\r