]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add ".v-required" style for required component (#10201).
authorDenis Anisimov <denis@vaadin.com>
Sun, 5 Oct 2014 11:48:49 +0000 (14:48 +0300)
committerVaadin Code Review <review@vaadin.com>
Tue, 7 Oct 2014 12:52:28 +0000 (12:52 +0000)
Change-Id: I889587234acdb79e33e625f993c1918befa6aae3

client/src/com/vaadin/client/ApplicationConnection.java
client/src/com/vaadin/client/ui/AbstractFieldConnector.java
uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java [new file with mode: 0644]
uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java [new file with mode: 0644]

index 3e3ad033a7967d4a96908c0fd3c43a26f8e3eecd..d182706780d24e31ab925214eeeff211e81177e4 100644 (file)
@@ -141,6 +141,8 @@ public class ApplicationConnection implements HasHandlers {
 
     public static final String DISABLED_CLASSNAME = "v-disabled";
 
+    public static final String REQUIRED_CLASSNAME = "v-required";
+
     public static final String REQUIRED_CLASSNAME_EXT = "-required";
 
     public static final String ERROR_CLASSNAME_EXT = "-error";
index a3c3779eb6f4ffbef01c36524ab22fe91fc53026..965e79b6fd9817e85bef24af9f1ad0dc51771dbc 100644 (file)
@@ -57,5 +57,8 @@ public abstract class AbstractFieldConnector extends AbstractComponentConnector
         // add / remove error style name to Fields
         setWidgetStyleNameWithPrefix(getWidget().getStylePrimaryName(),
                 ApplicationConnection.REQUIRED_CLASSNAME_EXT, isRequired());
+
+        getWidget().setStyleName(ApplicationConnection.REQUIRED_CLASSNAME,
+                isRequired());
     }
 }
diff --git a/uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java
new file mode 100644 (file)
index 0000000..79f5a7e
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.textfield;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.TextField;
+
+/**
+ * Test for required text field.
+ * 
+ * @author Vaadin Ltd
+ */
+public class RequiredTextField extends AbstractTestUI {
+
+    @Override
+    protected void setup(VaadinRequest request) {
+        final TextField field = new TextField();
+
+        addComponent(field);
+
+        Button button = new Button("Set/unset required", new ClickListener() {
+
+            @Override
+            public void buttonClick(ClickEvent event) {
+                field.setRequired(!field.isRequired());
+            }
+        });
+        addComponent(button);
+    }
+
+    @Override
+    protected String getTestDescription() {
+        return "Add .v-required style when setRequired() is used";
+    }
+
+    @Override
+    protected Integer getTicketNumber() {
+        return 10201;
+    }
+}
diff --git a/uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java
new file mode 100644 (file)
index 0000000..c6ed6c1
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.components.textfield;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.TextFieldElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+/**
+ * Test for .v-required style
+ * 
+ * @author Vaadin Ltd
+ */
+public class RequiredTextFieldTest extends MultiBrowserTest {
+
+    @Test
+    public void testRequiredStyleName() {
+        openTestURL();
+
+        $(ButtonElement.class).first().click();
+
+        Assert.assertTrue("Text field doesn't contain .v-required style",
+                getStyles().contains("v-required"));
+
+        $(ButtonElement.class).first().click();
+
+        Assert.assertFalse(
+                "Text field contains .v-required style for non-required field",
+                getStyles().contains("v-required"));
+    }
+
+    private String getStyles() {
+        return $(TextFieldElement.class).first().getAttribute("class");
+    }
+
+}