diff options
Diffstat (limited to 'uitest')
4 files changed, 131 insertions, 6 deletions
diff --git a/uitest/src/com/vaadin/tests/fieldgroup/AbstractBasicCrud.java b/uitest/src/com/vaadin/tests/fieldgroup/AbstractBasicCrud.java index c88047e414..0405ea2e10 100644 --- a/uitest/src/com/vaadin/tests/fieldgroup/AbstractBasicCrud.java +++ b/uitest/src/com/vaadin/tests/fieldgroup/AbstractBasicCrud.java @@ -128,6 +128,19 @@ public abstract class AbstractBasicCrud extends AbstractTestUIWithLog { gender.setNullRepresentation(""); age.setNullRepresentation(""); address_country.setNullRepresentation(""); + + // Last name editing is disabled through property readonly. + // Postal code editing is disabled through disabling field. + /* + * Currently only sets the initial state because of + * https://dev.vaadin.com/ticket/17847 + * + * Must set lastName state initially as BeanFieldGroup can't tell it + * should be read-only before setting an item data source + */ + lastName.setReadOnly(true); + address_postalCode.setEnabled(false); + birthDate.setNullRepresentation(""); age.addValidator(new IntegerRangeValidator( @@ -184,7 +197,21 @@ public abstract class AbstractBasicCrud extends AbstractTestUIWithLog { protected Button cancel = new Button("Cancel"); protected BeanFieldGroup<ComplexPerson> fieldGroup = new BeanFieldGroup<ComplexPerson>( - ComplexPerson.class); + ComplexPerson.class) { + @Override + protected void configureField(com.vaadin.ui.Field<?> field) { + super.configureField(field); + if (field.getCaption().equals("Postal code")) { + // Last name editing is disabled through property. + // Postal code editing is disabled through field. + /* + * This is needed because of + * https://dev.vaadin.com/ticket/17847 + */ + field.setEnabled(false); + } + }; + }; public AbstractForm() { super(5, 1); diff --git a/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java new file mode 100644 index 0000000000..12bccdd065 --- /dev/null +++ b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java @@ -0,0 +1,69 @@ +/* + * 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.fieldgroup; + +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.testbench.AbstractHasTestBenchCommandExecutor; +import com.vaadin.testbench.elements.AbstractComponentElement; +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.testbench.elements.TextFieldElement; +import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2; + +public class BasicCrudGridTest extends SingleBrowserTestPhantomJS2 { + + @Test + public void fieldsInitiallyEmpty() { + openTestURL(); + List<TextFieldElement> textFields = getFieldsLayout().$( + TextFieldElement.class).all(); + + for (TextFieldElement e : textFields) { + Assert.assertEquals("TextField should be empty", "", e.getValue()); + } + } + + private AbstractHasTestBenchCommandExecutor getFieldsLayout() { + return $(AbstractComponentElement.class).id("form"); + } + + @Test + public void fieldsClearedOnDeselect() { + openTestURL(); + + // Select row + $(GridElement.class).first().getCell(2, 2).click(); + + List<TextFieldElement> textFields = getFieldsLayout().$( + TextFieldElement.class).all(); + + for (TextFieldElement e : textFields) { + Assert.assertNotEquals("TextField should not be empty", "", + e.getValue()); + } + + // Deselect row + $(GridElement.class).first().getCell(2, 2).click(); + + for (TextFieldElement e : textFields) { + Assert.assertEquals("TextField should be empty", "", e.getValue()); + } + + } +} diff --git a/uitest/src/com/vaadin/tests/fieldgroup/ComplexPerson.java b/uitest/src/com/vaadin/tests/fieldgroup/ComplexPerson.java index 2fb7c2ac04..bb4fe89575 100644 --- a/uitest/src/com/vaadin/tests/fieldgroup/ComplexPerson.java +++ b/uitest/src/com/vaadin/tests/fieldgroup/ComplexPerson.java @@ -29,10 +29,6 @@ public class ComplexPerson { return lastName; } - public void setLastName(String lastName) { - this.lastName = lastName; - } - public Integer getAge() { return age; } @@ -97,7 +93,7 @@ public class ComplexPerson { public static ComplexPerson create(Random r) { ComplexPerson cp = new ComplexPerson(); cp.setFirstName(TestDataGenerator.getFirstName(r)); - cp.setLastName(TestDataGenerator.getLastName(r)); + cp.lastName = TestDataGenerator.getLastName(r); cp.setAlive(r.nextBoolean()); cp.setBirthDate(TestDataGenerator.getBirthDate(r)); cp.setAge((int) ((new Date(2014 - 1900, 1, 1).getTime() - cp diff --git a/uitest/src/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java b/uitest/src/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java new file mode 100644 index 0000000000..a5afe3afce --- /dev/null +++ b/uitest/src/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java @@ -0,0 +1,33 @@ +/* + * 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.tb3; + +import java.util.Collections; +import java.util.List; + +import org.openqa.selenium.remote.DesiredCapabilities; + +import com.vaadin.testbench.parallel.Browser; + +public abstract class SingleBrowserTestPhantomJS2 extends + PrivateTB3Configuration { + @Override + public List<DesiredCapabilities> getBrowsersToTest() { + DesiredCapabilities p2 = Browser.PHANTOMJS.getDesiredCapabilities(); + p2.setVersion("2"); + return Collections.singletonList(p2); + } +} |