]> source.dussan.org Git - vaadin-framework.git/commitdiff
Test case and fix for #2442 - RequiredError not displayed in the tooltip
authorArtur Signell <artur.signell@itmill.com>
Tue, 13 Jan 2009 07:42:22 +0000 (07:42 +0000)
committerArtur Signell <artur.signell@itmill.com>
Tue, 13 Jan 2009 07:42:22 +0000 (07:42 +0000)
svn changeset:6509/svn branch:trunk

src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java [new file with mode: 0644]
src/com/itmill/toolkit/ui/AbstractField.java

diff --git a/src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java b/src/com/itmill/toolkit/tests/validation/RequiredErrorMessage.java
new file mode 100644 (file)
index 0000000..f72ca0a
--- /dev/null
@@ -0,0 +1,47 @@
+package com.itmill.toolkit.tests.validation;
+
+import com.itmill.toolkit.tests.components.TestBase;
+import com.itmill.toolkit.ui.Form;
+import com.itmill.toolkit.ui.TextField;
+import com.itmill.toolkit.ui.VerticalLayout;
+import com.itmill.toolkit.ui.Window;
+
+public class RequiredErrorMessage extends TestBase {
+
+    @Override
+    protected String getDescription() {
+        return "This test verifies that the tooltip for a required field contains the requiredError message if such has been given. The tooltip for the first field should contain a message, the second field has no required error message set";
+    }
+
+    @Override
+    public void setup() {
+
+        final Window main = new Window(getClass().getName());
+        setMainWindow(main);
+
+        final Form form = new Form(new VerticalLayout());
+        final TextField requiredFieldWithError = new TextField(
+                "Field with requiredError");
+        requiredFieldWithError.setRequired(true);
+        requiredFieldWithError
+                .setRequiredError("Error message for required field");
+        form.addField("field1", requiredFieldWithError);
+
+        final TextField requiredFieldNoError = new TextField(
+                "Field without requiredError");
+        requiredFieldNoError.setRequired(true);
+        form.addField("field2", requiredFieldNoError);
+
+        final TextField requiredFieldDescriptionAndError = new TextField(
+                "Field with requiredError and description");
+        requiredFieldDescriptionAndError.setRequired(true);
+        requiredFieldDescriptionAndError
+                .setRequiredError("Error message for required field");
+        requiredFieldDescriptionAndError
+                .setDescription("Description message for the field");
+        form.addField("field3", requiredFieldDescriptionAndError);
+
+        main.addComponent(form);
+    }
+
+}
index c1e266a7b86229873853da91271327d13688a23f..d245a1329c951d40c5475bb18f2b16328e811dcf 100644 (file)
@@ -763,13 +763,14 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     @Override
     public ErrorMessage getErrorMessage() {
 
-        // Check validation errors only if automatic validation is enabled.
-        // As an exception, no validation messages are shown for empty
-        // required fields, as in those cases user is aware of the problem.
-        // Furthermore, non-required empty fields are obviously correct.
+        /*
+         * Check validation errors only if automatic validation is enabled.
+         * Empty, required fields will generate a validation error containing
+         * the requiredError string. For these fields the exclamation mark will
+         * be hidden but the error must still be sent to the client.
+         */
         ErrorMessage validationError = null;
-        if (isValidationVisible() && !(isEmpty() && isRequired())) {
-
+        if (isValidationVisible()) {
             try {
                 validate();
             } catch (Validator.InvalidValueException e) {