123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- * 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.elements;
-
- import java.time.format.DateTimeFormatter;
-
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Test;
-
- import com.vaadin.testbench.elements.AbstractTextFieldElement;
- import com.vaadin.testbench.elements.CheckBoxElement;
- import com.vaadin.testbench.elements.CheckBoxGroupElement;
- import com.vaadin.testbench.elements.ComboBoxElement;
- import com.vaadin.testbench.elements.DateFieldElement;
- import com.vaadin.testbench.elements.LabelElement;
- import com.vaadin.testbench.elements.ListSelectElement;
- import com.vaadin.testbench.elements.NativeSelectElement;
- import com.vaadin.testbench.elements.PasswordFieldElement;
- import com.vaadin.testbench.elements.RadioButtonGroupElement;
- import com.vaadin.testbench.elements.TextAreaElement;
- import com.vaadin.testbench.elements.TextFieldElement;
- import com.vaadin.testbench.elements.TwinColSelectElement;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- /**
- * Test clear method. Checks that value of the component was changed both on
- * client and server side Testing of the client side done by comparing first
- * with initial value then calling clear and comparing with empty value. Testing
- * of the server side by checking that changeValue even was raised on the server
- * side. Each element has changeValue listener added in the UI class. Compare
- * labelChangeValue value with the value used in the listener of the UI class.
- *
- * @since
- * @author Vaadin Ltd
- */
-
- public class TestBenchElementClearValueTest extends MultiBrowserTest {
- // The label text is changed on element component ValueChange event
- // Used to test that element.clear() method has actually triggered the
- // server side code
- private LabelElement labelChangeValue;
-
- // use same TestUI class as for getValue method
- @Override
- protected Class<?> getUIClass() {
- return ComponentElementGetValue.class;
- }
-
- @Before
- public void init() {
- openTestURL();
- labelChangeValue = $(LabelElement.class).get(1);
- }
-
- @Test
- public void clearTextField() {
- TextFieldElement elem = $(TextFieldElement.class).get(0);
- checkElementValue(elem);
- Assert.assertEquals(ComponentElementGetValue.FIELD_VALUES[0],
- labelChangeValue.getText());
- }
-
- @Test
- public void clearTextArea() {
- TextAreaElement elem = $(TextAreaElement.class).get(0);
- checkElementValue(elem);
- Assert.assertEquals(ComponentElementGetValue.FIELD_VALUES[1],
- labelChangeValue.getText());
- }
-
- @Test
- public void clearPasswordField() {
- PasswordFieldElement elem = $(PasswordFieldElement.class).get(0);
- checkElementValue(elem);
- Assert.assertEquals(ComponentElementGetValue.FIELD_VALUES[2],
- labelChangeValue.getText());
- }
-
- @Test
- public void clearDateField() {
- DateFieldElement df = $(DateFieldElement.class).get(0);
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- String expected = formatter
- .format(ComponentElementGetValue.TEST_DATE_VALUE);
- String initial = df.getValue();
- Assert.assertEquals(expected, initial);
- df.clear();
- Assert.assertEquals("", df.getValue());
- Assert.assertEquals(ComponentElementGetValue.DATEFIELD_VALUE_CHANGE,
- labelChangeValue.getText());
- }
-
- // Clear method should do not raise exception
- public void clearComboBox() {
- ComboBoxElement elem = $(ComboBoxElement.class).get(0);
- elem.clear();
- }
-
- public void clearNativeSelect() {
- NativeSelectElement elem = $(NativeSelectElement.class).get(0);
- elem.clear();
- }
-
- public void clearListSelect() {
- ListSelectElement elem = $(ListSelectElement.class).get(0);
- elem.clear();
- }
-
- public void clearCheckBoxGroup() {
- CheckBoxGroupElement elem = $(CheckBoxGroupElement.class).get(0);
- elem.clear();
- }
-
- public void clearRadioButtonGroup() {
- RadioButtonGroupElement elem = $(RadioButtonGroupElement.class).get(0);
- elem.clear();
- }
-
- @Test
- public void clearCheckBox() {
- CheckBoxElement elem = $(CheckBoxElement.class).get(0);
- elem.clear();
- Assert.assertTrue(elem.getValue().equals("unchecked"));
- Assert.assertEquals(ComponentElementGetValue.CHECKBOX_VALUE_CHANGE,
- labelChangeValue.getText());
- }
-
- @Test
- public void clearTwinCol() {
- TwinColSelectElement elem = $(TwinColSelectElement.class).get(0);
- elem.clear();
- Assert.assertEquals("", elem.getValue());
- Assert.assertEquals(ComponentElementGetValue.MULTI_SELECT_VALUE_CHANGE,
- labelChangeValue.getText());
- }
-
- // helper functions
- private void checkElementValue(AbstractTextFieldElement elem) {
- String initial = ComponentElementGetValue.TEST_STRING_VALUE;
- checkElementValue(elem, initial);
- }
-
- private void checkElementValue(AbstractTextFieldElement elem,
- String expected) {
- // check initial element value
- String actual = elem.getValue();
- Assert.assertEquals(expected, actual);
- // check cleared element value
- elem.clear();
- expected = "";
- actual = elem.getValue();
- Assert.assertEquals(expected, actual);
- }
- }
|