aboutsummaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/AbstractBasicCrud.java29
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java69
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/ComplexPerson.java6
-rw-r--r--uitest/src/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java33
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);
+ }
+}