diff options
Diffstat (limited to 'uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java b/uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java new file mode 100644 index 0000000000..e039b461d9 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java @@ -0,0 +1,179 @@ +package com.vaadin.tests.elements; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.AbstractTextField; +import com.vaadin.ui.CheckBox; +import com.vaadin.ui.CheckBoxGroup; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.Component; +import com.vaadin.ui.DateField; +import com.vaadin.ui.Label; +import com.vaadin.ui.ListSelect; +import com.vaadin.ui.MultiSelect; +import com.vaadin.ui.NativeSelect; +import com.vaadin.ui.PasswordField; +import com.vaadin.ui.RadioButtonGroup; +import com.vaadin.ui.Slider; +import com.vaadin.ui.TextArea; +import com.vaadin.ui.TextField; +import com.vaadin.ui.TwinColSelect; + +/* + * 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. + */ + +/** + * UI test for getValue() method of components: TextField, TextArea, + * PasswordField, ComboBox, ListSelect, NativeSelect, OptionGroup, CheckBox, + * DateField, TwinColSelect + * + * @since + * @author Vaadin Ltd + */ +public class ComponentElementGetValue extends AbstractTestUI { + + public static final String TEST_STRING_VALUE = "item 2"; + public static final int TEST_SLIDER_VALUE = 42; + public static final float TEST_FLOAT_VALUE = 0.42f; + public static final LocalDate TEST_DATE_VALUE = LocalDate.now(); + DateField df; + final Label valueChangeLabel = new Label("Initial value"); + + // These constants are used to check that change value event was + // called + public static final String[] FIELD_VALUES = { "textFieldValueChange", + "textAreaValueChange", "passwordValueChange" }; + public static final String CHECKBOX_VALUE_CHANGE = "checkboxValueChange"; + public static final String DATEFIELD_VALUE_CHANGE = "dateFieldValueChange"; + public static final String MULTI_SELECT_VALUE_CHANGE = "multiSelectValueChange"; + + private List<String> createTestItems() { + List<String> options = new ArrayList<String>(); + options.add("item 1"); + options.add(TEST_STRING_VALUE); + options.add("item 3"); + return options; + } + + private void addSingleSelectComponents() { + List<String> options = new ArrayList<String>(); + options.add("item 1"); + options.add(TEST_STRING_VALUE); + options.add("item 3"); + + ComboBox<String> cb = new ComboBox<>("", options); + cb.setValue(TEST_STRING_VALUE); + addComponent(cb); + + NativeSelect<String> nativeSelect = new NativeSelect<>("", options); + nativeSelect.setValue(TEST_STRING_VALUE); + addComponent(nativeSelect); + + RadioButtonGroup<String> rbGroup = new RadioButtonGroup<>("", options); + rbGroup.setValue(TEST_STRING_VALUE); + addComponent(rbGroup); + } + + private List<String> createData() { + List<String> options = new ArrayList<String>(); + options.add("item 1"); + options.add(TEST_STRING_VALUE); + options.add("item 3"); + options.add("item 4"); + return options; + } + + private void addMultiSelectComponents() { + + List<MultiSelect<String>> components = new ArrayList<>(); + components.add(new ListSelect("", createData())); + components.add(new CheckBoxGroup("", createData())); + components.add(new TwinColSelect("", createData())); + components.forEach(c -> { + c.select(TEST_STRING_VALUE); + c.addValueChangeListener(event -> { + valueChangeLabel.setValue(MULTI_SELECT_VALUE_CHANGE); + }); + addComponent((Component) c); + }); + } + + @Override + protected void setup(VaadinRequest request) { + + AbstractTextField[] fieldComponents = { new TextField(), new TextArea(), + new PasswordField() }; + addSingleSelectComponents(); + addMultiSelectComponents(); + + for (int i = 0; i < fieldComponents.length; i++) { + AbstractTextField field = fieldComponents[i]; + field.setValue(TEST_STRING_VALUE); + String value = FIELD_VALUES[i]; + field.addValueChangeListener(event -> { + valueChangeLabel.setValue(value); + }); + addComponent(field); + } + + addComponent(createCheckBox()); + addComponent(createSlider()); + addComponent(createDateField()); + valueChangeLabel.setId("valueChangeLabel"); + addComponent(valueChangeLabel); + } + + private DateField createDateField() { + DateField df = new DateField(); + df.setDateFormat("yyyy-MM-dd"); + df.setValue(TEST_DATE_VALUE); + df.addValueChangeListener(event -> { + valueChangeLabel.setValue(DATEFIELD_VALUE_CHANGE); + }); + return df; + } + + private Slider createSlider() { + Slider sl = new Slider(0, 100); + sl.setWidth("100px"); + sl.setValue(new Double(TEST_SLIDER_VALUE)); + return sl; + } + + private CheckBox createCheckBox() { + CheckBox cb = new CheckBox(); + cb.setValue(true); + cb.addValueChangeListener(event -> { + valueChangeLabel.setValue(CHECKBOX_VALUE_CHANGE); + }); + return cb; + } + + @Override + protected String getTestDescription() { + return "Field elements getValue() should return test value"; + } + + @Override + protected Integer getTicketNumber() { + return 13455; + } + +} |