summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorDenis <denis@vaadin.com>2017-01-04 09:56:18 +0200
committerPekka Hyvönen <pekka@vaadin.com>2017-01-04 09:56:18 +0200
commit451161461bf240e4fd25211ed997d96e565a211b (patch)
treee338e6d1e16e9eb5facbdbcd4fe93bf85d624fd4 /uitest
parentbe83419ae5e5b455659682137c9cc45f170767a8 (diff)
downloadvaadin-framework-451161461bf240e4fd25211ed997d96e565a211b.tar.gz
vaadin-framework-451161461bf240e4fd25211ed997d96e565a211b.zip
Grid UI tests migration P3. (#8121)
* Grid UI tests migration P2. Fixes vaadin/framework8-issues#588 * Grid UI tests migration P3. Fixes vaadin/framework8-issues#589 * Merge branch 'master' into 589-grid-tests-migration Conflicts: uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java * Update screenshot submodule reference.
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridColspans.java108
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoExpand.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpand.java)23
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidth.java54
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClient.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClient.java)4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java100
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDataSourceReset.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDataSourceReset.java)39
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsDetach.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsDetach.java)84
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpand.java113
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsWidth.java77
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/TestWidgetConnector.java6
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridColumnAutoWidthClientWidget.java (renamed from uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridColumnAutoWidthClientWidget.java)22
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColspans.java102
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidth.java63
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnExpand.java160
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculation.java92
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutData.java108
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpand.java105
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLocation.java7
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsWidth.java91
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java118
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridColspansTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColspansTest.java)18
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoExpandTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpandTest.java)12
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClientTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthServerTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutDataTest.java)4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDataSourceResetTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDataSourceResetTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsDetachTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsDetachTest.java)14
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpandTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpandTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsWidthTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsWidthTest.java)4
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculationTest.java82
32 files changed, 695 insertions, 931 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java
index bfe3244554..9dcabebbf7 100644
--- a/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java
@@ -17,13 +17,13 @@ package com.vaadin.tests.components.grid;
import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.tests.widgetset.TestingWidgetSet;
import com.vaadin.tests.widgetset.client.grid.GridCellFocusOnResetSizeWidget;
import com.vaadin.tests.widgetset.server.TestWidgetComponent;
@Widgetset(TestingWidgetSet.NAME)
-public class GridCellFocusOnResetSize extends AbstractReindeerTestUI {
+public class GridCellFocusOnResetSize extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java
index 50f7e40837..a9f686b107 100644
--- a/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java
@@ -17,13 +17,13 @@ package com.vaadin.tests.components.grid;
import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.tests.widgetset.TestingWidgetSet;
import com.vaadin.tests.widgetset.client.grid.GridDataChangeHandlerWidget;
import com.vaadin.tests.widgetset.server.TestWidgetComponent;
@Widgetset(TestingWidgetSet.NAME)
-public class GridClientDataChangeHandler extends AbstractReindeerTestUI {
+public class GridClientDataChangeHandler extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridColspans.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColspans.java
new file mode 100644
index 0000000000..ce29ca3d9e
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColspans.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import java.util.stream.Collectors;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.tests.data.bean.Person;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.Grid.SelectionMode;
+import com.vaadin.ui.components.grid.FooterRow;
+import com.vaadin.ui.components.grid.HeaderRow;
+import com.vaadin.ui.renderers.NumberRenderer;
+
+public class GridColspans extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Person person = new Person();
+ person.setFirstName("Rudolph");
+ person.setLastName("Reindeer");
+ person.setEmail("test@vaadin.com");
+ person.setAge(34);
+ person.setSalary(3210);
+
+ Grid<Person> grid = new Grid<>();
+ grid.setWidth("600px");
+
+ Column<Person, String> firstNameColumn = grid
+ .addColumn(Person::getFirstName);
+ firstNameColumn.setId("firstName").setCaption("First name");
+ Column<Person, String> lastNameColumn = grid
+ .addColumn(Person::getLastName);
+ lastNameColumn.setCaption("Last name");
+ Column<Person, String> emailColumn = grid.addColumn(Person::getEmail);
+ Column<Person, Number> ageColumn = grid.addColumn(Person::getAge,
+ new NumberRenderer());
+ ageColumn.setCaption("Age");
+ ageColumn.setId("ageColumn");
+ Column<Person, Number> salaryColumn = grid.addColumn(Person::getSalary,
+ new NumberRenderer());
+
+ grid.setItems(person);
+
+ grid.setSelectionMode(SelectionMode.MULTI);
+ addComponent(grid);
+
+ HeaderRow row = grid.prependHeaderRow();
+ row.join(row.getCell(firstNameColumn), row.getCell(lastNameColumn))
+ .setText("Full Name");
+ row.join(row.getCell(emailColumn), row.getCell(ageColumn),
+ row.getCell(salaryColumn)).setText("Misc");
+ grid.prependHeaderRow().join(grid.getColumns().stream()
+ .map(row::getCell).collect(Collectors.toSet()))
+ .setText("All the stuff");
+
+ FooterRow footerRow = grid.appendFooterRow();
+ footerRow.join(footerRow.getCell(firstNameColumn),
+ footerRow.getCell(lastNameColumn)).setText("Full Name");
+ footerRow.join(footerRow.getCell(emailColumn),
+ footerRow.getCell(ageColumn), footerRow.getCell(salaryColumn))
+ .setText("Misc");
+ grid.appendFooterRow().join(grid.getColumns().stream()
+ .map(footerRow::getCell).collect(Collectors.toSet()))
+ .setText("All the stuff");
+
+ addComponent(new Button("Show/Hide firstName", event -> {
+ Column<Person, ?> column = grid.getColumn("firstName");
+ if (column != null) {
+ grid.removeColumn(column);
+ } else {
+ grid.addColumn(Person::getFirstName).setId("firstName");
+ }
+ }));
+
+ addComponent(new Button("Change column order", event -> {
+ grid.setColumnOrder(grid.getColumn("ageColumn"),
+ grid.getColumn("firstName"));
+ }));
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Grid header and footer colspans";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 13334;
+ }
+
+}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpand.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoExpand.java
index 269f16eb1c..3daa978af3 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpand.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoExpand.java
@@ -13,15 +13,15 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
+import com.vaadin.data.ValueProvider;
import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Grid;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.Column;
-public class GridColumnAutoExpand extends AbstractReindeerTestUI {
+public class GridColumnAutoExpand extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
@@ -30,16 +30,15 @@ public class GridColumnAutoExpand extends AbstractReindeerTestUI {
layout.setMargin(true);
addComponent(layout);
- Grid grid = new Grid("Broken Grid with Caption");
+ Grid<String> grid = new Grid<>();
+ grid.setCaption("Broken Grid with Caption");
grid.setWidth("100%");
grid.setHeight("100px");
- Column col1 = grid.addColumn("Col1");
- col1.setWidth(100);
-
- Column col2 = grid.addColumn("Col2");
- col2.setMinimumWidth(100);
- col2.setExpandRatio(1);
+ grid.addColumn(ValueProvider.identity()).setCaption("Col1")
+ .setWidth(100);
+ grid.addColumn(ValueProvider.identity()).setCaption("Col2")
+ .setMinimumWidth(100).setExpandRatio(1);
layout.addComponent(grid);
}
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidth.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidth.java
new file mode 100644
index 0000000000..1434aea7cd
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidth.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.Grid.SelectionMode;
+import com.vaadin.ui.renderers.HtmlRenderer;
+
+public class GridColumnAutoWidth extends AbstractReindeerTestUI {
+ @Override
+ protected void setup(VaadinRequest request) {
+ Grid<Object> grid = new Grid<>();
+ grid.addColumn(item -> "<span>equal width</span>", new HtmlRenderer())
+ .setId("equal width");
+ grid.addColumn(item -> "<span>a very long cell content</span>",
+ new HtmlRenderer()).setId("short");
+ grid.addColumn(item -> "<span>short</span>", new HtmlRenderer())
+ .setId("a very long header content");
+
+ grid.addColumn(item -> "<span>fixed width narrow</span>",
+ new HtmlRenderer()).setId("fixed width narrow").setWidth(50);
+ grid.addColumn(item -> "<span>fixed width wide</span>",
+ new HtmlRenderer()).setId("fixed width wide").setWidth(200);
+
+ for (Column<Object, ?> column : grid.getColumns()) {
+ column.setExpandRatio(0);
+ grid.getHeaderRow(0).getCell(column)
+ .setHtml("<span>" + column.getId() + "</span>");
+ }
+
+ grid.setItems(new Object());
+
+ grid.setSelectionMode(SelectionMode.NONE);
+ grid.setWidth("750px");
+ addComponent(grid);
+ }
+
+}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClient.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClient.java
index 9991efc08f..b26f56b55b 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClient.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClient.java
@@ -13,13 +13,13 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.tests.widgetset.TestingWidgetSet;
-import com.vaadin.tests.widgetset.client.v7.grid.GridColumnAutoWidthClientWidget;
+import com.vaadin.tests.widgetset.client.grid.GridColumnAutoWidthClientWidget;
import com.vaadin.tests.widgetset.server.TestWidgetComponent;
@Widgetset(TestingWidgetSet.NAME)
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java
new file mode 100644
index 0000000000..c184cd71d1
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
+
+import com.vaadin.data.provider.DataProvider;
+import com.vaadin.server.SerializablePredicate;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.tests.data.bean.Person;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.SelectionMode;
+import com.vaadin.ui.NativeSelect;
+import com.vaadin.ui.VerticalLayout;
+
+public class GridColumnWidthsWithoutData extends AbstractTestUI {
+
+ private SelectionMode selectionMode = SelectionMode.NONE;
+ private List<Person> items;
+ private DataProvider<Person, SerializablePredicate<Person>> provider;
+ private Grid<Person> grid = createGrid(true);
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ addComponent(grid);
+
+ NativeSelect<SelectionMode> selectionModeSelector = new NativeSelect<>(
+ "Selection mode", EnumSet.allOf(SelectionMode.class));
+ selectionModeSelector.setValue(selectionMode);
+ selectionModeSelector.addValueChangeListener(event -> {
+ selectionMode = selectionModeSelector.getValue();
+ grid.setSelectionMode(selectionMode);
+ });
+
+ addComponent(selectionModeSelector);
+
+ addComponent(new Button("Recreate without data",
+ event -> replaceGrid(createGrid(false))));
+
+ addComponent(new Button("Recreate with data",
+ event -> replaceGrid(createGrid(true))));
+
+ addComponent(new Button("Add data", event -> addDataToGrid()));
+
+ addComponent(new Button("Remove data", event -> {
+ items.clear();
+ provider.refreshAll();
+ }));
+
+ }
+
+ private void replaceGrid(Grid<Person> newGrid) {
+ ((VerticalLayout) grid.getParent()).replaceComponent(grid, newGrid);
+ grid = newGrid;
+ }
+
+ private Grid<Person> createGrid(boolean withData) {
+ Grid<Person> grid = new Grid<>();
+ grid.addColumn(Person::getFirstName);
+ grid.addColumn(Person::getLastName);
+ grid.setWidth("300px");
+ grid.setSelectionMode(selectionMode);
+
+ items = new ArrayList<>();
+ provider = DataProvider.create(items);
+ grid.setDataProvider(provider);
+
+ if (withData) {
+ addDataToGrid();
+ }
+
+ return grid;
+ }
+
+ private void addDataToGrid() {
+ Person person = new Person();
+ person.setFirstName("Some");
+ person.setLastName("Data with more data in one col");
+ items.add(person);
+ provider.refreshAll();
+ }
+
+}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDataSourceReset.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDataSourceReset.java
index f27f985015..b04e004f53 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDataSourceReset.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDataSourceReset.java
@@ -13,45 +13,40 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import com.vaadin.data.provider.DataProvider;
+import com.vaadin.data.provider.ListDataProvider;
import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.tests.fieldgroup.ComplexPerson;
import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.v7.data.util.BeanItemContainer;
-import com.vaadin.v7.ui.Grid;
+import com.vaadin.ui.Grid;
-public class GridDataSourceReset extends AbstractReindeerTestUI {
+public class GridDataSourceReset extends AbstractTestUI {
- BeanItemContainer<ComplexPerson> container;
- List<ComplexPerson> persons;
- Grid grid;
+ private List<ComplexPerson> persons;
+ private Grid<ComplexPerson> grid;
@Override
protected void setup(VaadinRequest request) {
persons = createPersons(10, new Random(1));
- container = new BeanItemContainer<>(ComplexPerson.class, persons);
- grid = new Grid(container);
- grid.select(container.firstItemId());
- addComponent(new Button("Remove first", new ClickListener() {
+ grid = new Grid<>();
+ ListDataProvider<ComplexPerson> provider = DataProvider.create(persons);
+ grid.setDataProvider(provider);
+ grid.getSelectionModel().select(persons.get(0));
+ addComponent(new Button("Remove first", event -> {
+ persons.remove(0);
- @Override
- public void buttonClick(ClickEvent event) {
- container.removeAllItems();
- persons.remove(0);
-
- container.addAll(persons);
- grid.select(container.firstItemId());
- }
+ provider.refreshAll();
+ grid.getSelectionModel().select(persons.get(0));
}));
+
addComponent(grid);
}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsDetach.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsDetach.java
index d77f493de0..b34d0cd4b1 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsDetach.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsDetach.java
@@ -13,30 +13,29 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
+
+import java.util.ArrayList;
+import java.util.List;
import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
+import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Component;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.Label;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.data.util.BeanItemContainer;
-import com.vaadin.v7.event.ItemClickEvent;
-import com.vaadin.v7.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.DetailsGenerator;
-import com.vaadin.v7.ui.Grid.RowReference;
-import com.vaadin.v7.ui.Grid.SelectionMode;
+import com.vaadin.ui.renderers.NumberRenderer;
-public class GridDetailsDetach extends AbstractReindeerTestUI {
+public class GridDetailsDetach extends AbstractTestUI {
private Grid currentGrid;
@Override
protected void setup(VaadinRequest request) {
VerticalLayout layout = new VerticalLayout();
+ layout.setSpacing(false);
+ layout.setMargin(false);
layout.setSizeFull();
Button button = new Button("Test");
@@ -45,24 +44,17 @@ public class GridDetailsDetach extends AbstractReindeerTestUI {
currentGrid = generateGrid();
final VerticalLayout gridContainer = new VerticalLayout();
+ gridContainer.setSpacing(false);
+ gridContainer.setMargin(false);
gridContainer.addComponent(currentGrid);
- button.addClickListener(new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- gridContainer.replaceComponent(currentGrid, new Label("Foo"));
- }
- });
+ button.addClickListener(event -> gridContainer
+ .replaceComponent(currentGrid, new Label("Foo")));
- layout.addComponent(
- new Button("Reattach Grid", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- gridContainer.removeAllComponents();
- gridContainer.addComponent(currentGrid);
- }
- }));
+ layout.addComponent(new Button("Reattach Grid", event -> {
+ gridContainer.removeAllComponents();
+ gridContainer.addComponent(currentGrid);
+ }));
layout.addComponent(gridContainer);
layout.setExpandRatio(gridContainer, 1f);
@@ -70,36 +62,30 @@ public class GridDetailsDetach extends AbstractReindeerTestUI {
addComponent(layout);
}
- private Grid generateGrid() {
- BeanItemContainer<GridExampleBean> container = new BeanItemContainer<>(
- GridExampleBean.class);
+ private Grid<GridExampleBean> generateGrid() {
+ List<GridExampleBean> items = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
- container.addItem(new GridExampleBean("Bean " + i, i * i, i / 10d));
+ items.add(new GridExampleBean("Bean " + i, i * i, i / 10d));
}
- final Grid grid = new Grid(container);
- grid.setColumnOrder("name", "amount", "count");
+ final Grid<GridExampleBean> grid = new Grid<>();
+ grid.setItems(items);
+ grid.addColumn(GridExampleBean::getName);
+ grid.addColumn(GridExampleBean::getAmount, new NumberRenderer());
+ grid.addColumn(GridExampleBean::getCount, new NumberRenderer());
grid.setSizeFull();
grid.setSelectionMode(SelectionMode.NONE);
- grid.setDetailsGenerator(new DetailsGenerator() {
- @Override
- public Component getDetails(RowReference rowReference) {
- final GridExampleBean bean = (GridExampleBean) rowReference
- .getItemId();
- VerticalLayout layout = new VerticalLayout(
- new Label("Extra data for " + bean.getName()));
- layout.setMargin(true);
- return layout;
- }
+ grid.setDetailsGenerator(item -> {
+ VerticalLayout layout = new VerticalLayout(
+ new Label("Extra data for " + item.getName()));
+ layout.setMargin(true);
+ return layout;
});
- grid.addItemClickListener(new ItemClickListener() {
- @Override
- public void itemClick(ItemClickEvent event) {
- Object itemId = event.getItemId();
- grid.setDetailsVisible(itemId, !grid.isDetailsVisible(itemId));
- }
+ grid.addItemClickListener(event -> {
+ GridExampleBean item = event.getItem();
+ grid.setDetailsVisible(item, !grid.isDetailsVisible(item));
});
return grid;
}
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpand.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpand.java
new file mode 100644
index 0000000000..ab8d3d84f7
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpand.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.tests.data.bean.Person;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.renderers.NumberRenderer;
+
+/**
+ * Tests the layouting of Grid's details row when it contains a HorizontalLayout
+ * with expand ratios.
+ *
+ * @author Vaadin Ltd
+ */
+@SuppressWarnings("serial")
+public class GridDetailsLayoutExpand extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final Grid<Person> grid = new Grid<>();
+ grid.setSizeFull();
+
+ grid.addColumn(Person::getFirstName);
+ grid.addColumn(Person::getAge, new NumberRenderer());
+
+ List<Person> persons = new ArrayList<>();
+ Person person = new Person();
+ person.setFirstName("Nicolaus Copernicus");
+ person.setAge(1543);
+ persons.add(person);
+
+ person = new Person();
+ person.setFirstName("Galileo Galilei");
+ person.setAge(1564);
+ persons.add(person);
+
+ person = new Person();
+ person.setFirstName("Johannes Kepler");
+ person.setAge(1571);
+ persons.add(person);
+
+ grid.setItems(persons);
+ addComponent(grid);
+
+ grid.setDetailsGenerator(item -> {
+ final HorizontalLayout detailsLayout = new HorizontalLayout();
+ detailsLayout.setSizeFull();
+ detailsLayout.setHeightUndefined();
+
+ // Label 1 first element of the detailsLayout, taking 200 pixels
+ final Label lbl1 = new Label("test1");
+ lbl1.setWidth("200px");
+ detailsLayout.addComponent(lbl1);
+
+ // layout2 second element of the detailsLayout, taking the rest
+ // of the available space
+ final HorizontalLayout layout2 = new HorizontalLayout();
+ layout2.setSizeFull();
+ layout2.setHeightUndefined();
+ detailsLayout.addComponent(layout2);
+ detailsLayout.setExpandRatio(layout2, 1);
+
+ // 2 Labels added to the layout2
+ final Label lbl2 = new Label("test2");
+ lbl2.setWidth("100%");
+ lbl2.setId("lbl2");
+ layout2.addComponent(lbl2);
+
+ final Label lbl3 = new Label("test3");
+ lbl3.setWidth("100%");
+ lbl3.setId("lbl3");
+ layout2.addComponent(lbl3);
+
+ return detailsLayout;
+ });
+
+ grid.addItemClickListener(event -> {
+ final Person itemId = event.getItem();
+ grid.setDetailsVisible(itemId, !grid.isDetailsVisible(itemId));
+ });
+
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 18821;
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Details row must be the same after opening another details row";
+ }
+}
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsWidth.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsWidth.java
new file mode 100644
index 0000000000..678b4ad925
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDetailsWidth.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import java.util.stream.IntStream;
+
+import com.vaadin.data.ValueProvider;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.VerticalLayout;
+
+public class GridDetailsWidth extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final VerticalLayout layout = new VerticalLayout();
+ layout.setMargin(true);
+
+ final Grid<String> grid = new Grid<>();
+
+ Column<String, String> column = grid.addColumn(ValueProvider.identity())
+ .setCaption("Hello");
+ grid.setItems(IntStream.range(0, 3).mapToObj(i -> "Hello " + i));
+
+ column.setWidth(600);
+ grid.setWidth(400, Unit.PIXELS);
+
+ grid.setDetailsGenerator(item -> {
+ HorizontalLayout myLayout = new HorizontalLayout();
+ TextArea textArea1 = new TextArea();
+ TextArea textArea2 = new TextArea();
+ textArea1.setSizeFull();
+ textArea2.setSizeFull();
+ myLayout.addComponent(textArea1);
+ myLayout.addComponent(textArea2);
+ myLayout.setWidth(100, Unit.PERCENTAGE);
+ myLayout.setHeight(null);
+ myLayout.setMargin(true);
+ return myLayout;
+ });
+
+ grid.addItemClickListener(event -> grid.setDetailsVisible(
+ event.getItem(), !grid.isDetailsVisible(event.getItem())));
+
+ layout.addComponent(grid);
+
+ addComponent(layout);
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 18223;
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Tests that Escalator will not set explicit widths to the TD element in a details row.";
+ }
+
+}
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/TestWidgetConnector.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/TestWidgetConnector.java
index 7b10fba579..8498218e88 100644
--- a/uitest/src/main/java/com/vaadin/tests/widgetset/client/TestWidgetConnector.java
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/TestWidgetConnector.java
@@ -19,6 +19,7 @@ import java.util.HashMap;
import java.util.Map;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Position;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
@@ -35,6 +36,11 @@ import com.vaadin.tests.widgetset.server.TestWidgetComponent;
public class TestWidgetConnector extends AbstractComponentConnector {
public static class SubPartAwareSimplePanel extends SimplePanel
implements SubPartAware {
+
+ public SubPartAwareSimplePanel() {
+ getElement().getStyle().setPosition(Position.ABSOLUTE);
+ }
+
@Override
public Element getSubPartElement(String subPart) {
Widget target = getWidget();
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridColumnAutoWidthClientWidget.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridColumnAutoWidthClientWidget.java
index 139835b31a..df2041744a 100644
--- a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridColumnAutoWidthClientWidget.java
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridColumnAutoWidthClientWidget.java
@@ -13,16 +13,16 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.tests.widgetset.client.v7.grid;
+package com.vaadin.tests.widgetset.client.grid;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import com.vaadin.v7.client.renderers.HtmlRenderer;
-import com.vaadin.v7.client.widget.grid.datasources.ListDataSource;
-import com.vaadin.v7.client.widgets.Grid;
-import com.vaadin.v7.client.widgets.Grid.SelectionMode;
+import com.vaadin.client.renderers.HtmlRenderer;
+import com.vaadin.client.widget.grid.datasources.ListDataSource;
+import com.vaadin.client.widget.grid.selection.SelectionModel;
+import com.vaadin.client.widgets.Grid;
public class GridColumnAutoWidthClientWidget
extends PureGWTTestApplication<Grid<List<String>>> {
@@ -45,20 +45,20 @@ public class GridColumnAutoWidthClientWidget
public GridColumnAutoWidthClientWidget() {
super(new Grid<List<String>>());
grid = getTestedWidget();
- grid.setSelectionMode(SelectionMode.NONE);
+ grid.setSelectionModel(new SelectionModel.NoSelectionModel<>());
grid.setWidth("750px");
- List<List<String>> list = new ArrayList<>();
- list.add(Arrays.asList("equal length", "a very long cell content",
- "short", "fixed width narrow", "fixed width wide"));
- grid.setDataSource(new ListDataSource<>(list));
-
addColumn("equal length");
addColumn("short");
addColumn("a very long header content");
addColumn("fixed width narrow").setWidth(50);
addColumn("fixed width wide").setWidth(200);
+ List<List<String>> list = new ArrayList<>();
+ list.add(Arrays.asList("equal length", "a very long cell content",
+ "short", "fixed width narrow", "fixed width wide"));
+ grid.setDataSource(new ListDataSource<>(list));
+
addNorth(grid, 400);
}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColspans.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColspans.java
deleted file mode 100644
index dc0b84a6da..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColspans.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.v7.data.Container.Indexed;
-import com.vaadin.v7.data.Item;
-import com.vaadin.v7.data.util.IndexedContainer;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.FooterRow;
-import com.vaadin.v7.ui.Grid.HeaderRow;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-import com.vaadin.v7.ui.renderers.NumberRenderer;
-
-public class GridColspans extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- Indexed dataSource = new IndexedContainer();
- final Grid grid;
-
- dataSource.addContainerProperty("firstName", String.class, "");
- dataSource.addContainerProperty("lastName", String.class, "");
- dataSource.addContainerProperty("streetAddress", String.class, "");
- dataSource.addContainerProperty("zipCode", Integer.class, null);
- dataSource.addContainerProperty("city", String.class, "");
- Item i = dataSource.addItem(0);
- i.getItemProperty("firstName").setValue("Rudolph");
- i.getItemProperty("lastName").setValue("Reindeer");
- i.getItemProperty("streetAddress").setValue("Ruukinkatu 2-4");
- i.getItemProperty("zipCode").setValue(20540);
- i.getItemProperty("city").setValue("Turku");
- grid = new Grid(dataSource);
- grid.setWidth("600px");
- grid.getColumn("zipCode").setRenderer(new NumberRenderer());
- grid.setSelectionMode(SelectionMode.MULTI);
- addComponent(grid);
-
- HeaderRow row = grid.prependHeaderRow();
- row.join("firstName", "lastName").setText("Full Name");
- row.join("streetAddress", "zipCode", "city").setText("Address");
- grid.prependHeaderRow()
- .join(dataSource.getContainerPropertyIds().toArray())
- .setText("All the stuff");
-
- FooterRow footerRow = grid.appendFooterRow();
- footerRow.join("firstName", "lastName").setText("Full Name");
- footerRow.join("streetAddress", "zipCode", "city").setText("Address");
- grid.appendFooterRow()
- .join(dataSource.getContainerPropertyIds().toArray())
- .setText("All the stuff");
-
- addComponent(
- new Button("Show/Hide firstName", new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- if (grid.getColumn("firstName") != null) {
- grid.removeColumn("firstName");
- } else {
- grid.addColumn("firstName");
- }
- }
- }));
-
- addComponent(
- new Button("Change column order", new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- grid.setColumnOrder("zipCode", "firstName");
- }
- }));
- }
-
- @Override
- protected String getTestDescription() {
- return "Grid header and footer colspans";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 13334;
- }
-
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidth.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidth.java
deleted file mode 100644
index c03aa05b47..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidth.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.v7.data.Container;
-import com.vaadin.v7.data.util.IndexedContainer;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.Column;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-import com.vaadin.v7.ui.renderers.HtmlRenderer;
-
-public class GridColumnAutoWidth extends AbstractReindeerTestUI {
- @Override
- protected void setup(VaadinRequest request) {
- Grid grid = new Grid(createContainer());
- grid.getColumn("fixed width narrow").setWidth(50);
- grid.getColumn("fixed width wide").setWidth(200);
-
- for (Object propertyId : grid.getContainerDataSource()
- .getContainerPropertyIds()) {
- Column column = grid.getColumn(propertyId);
- column.setExpandRatio(0);
- column.setRenderer(new HtmlRenderer());
- grid.getHeaderRow(0).getCell(propertyId)
- .setHtml("<span>" + column.getHeaderCaption() + "</span>");
- }
-
- grid.setSelectionMode(SelectionMode.NONE);
- grid.setWidth("750px");
- addComponent(grid);
- }
-
- private static Container.Indexed createContainer() {
- IndexedContainer c = new IndexedContainer();
- c.addContainerProperty("equal width", String.class,
- "<span>equal width</span>");
- c.addContainerProperty("short", String.class,
- "<span>a very long cell content</span>");
- c.addContainerProperty("a very long header content", String.class,
- "<span>short</span>");
- c.addContainerProperty("fixed width narrow", String.class,
- "<span>fixed width narrow</span>");
- c.addContainerProperty("fixed width wide", String.class,
- "<span>fixed width wide</span>");
- c.addItem();
- return c;
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnExpand.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnExpand.java
deleted file mode 100644
index d3c71ed3e4..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnExpand.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import com.vaadin.annotations.Theme;
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.tests.util.PersonContainer;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Component;
-import com.vaadin.ui.CssLayout;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Label;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.Column;
-import com.vaadin.v7.ui.themes.Reindeer;
-
-@Theme(Reindeer.THEME_NAME)
-public class GridColumnExpand extends AbstractReindeerTestUI {
- private Grid grid;
- private Label firstInfo = new Label();
- private Label secondInfo = new Label();
- private Column firstColumn;
- private Column secondColumn;
-
- @Override
- protected void setup(VaadinRequest request) {
- grid = new Grid(PersonContainer.createWithTestData());
- grid.removeAllColumns();
- grid.addColumn("address.streetAddress");
- grid.addColumn("lastName");
- firstColumn = grid.getColumns().get(0);
- secondColumn = grid.getColumns().get(1);
-
- updateInfoLabels();
- addComponent(grid);
- addComponent(firstInfo);
- addComponent(secondInfo);
- addButtons();
- }
-
- private void addButtons() {
- HorizontalLayout layout = new HorizontalLayout();
- layout.addComponent(createButtons(firstColumn));
- layout.addComponent(createButtons(secondColumn));
- layout.setExpandRatio(layout.getComponent(1), 1);
- addComponent(layout);
- }
-
- private Component createButtons(Column column) {
- CssLayout layout = new CssLayout();
- layout.addComponent(new Label("Column 1"));
-
- CssLayout widthLayout = new CssLayout();
- layout.addComponent(widthLayout);
- widthLayout.addComponent(new Label("Width"));
- widthLayout.addComponent(createWidthButton(column, -1));
- widthLayout.addComponent(createWidthButton(column, 50));
- widthLayout.addComponent(createWidthButton(column, 200));
-
- CssLayout minLayout = new CssLayout();
- layout.addComponent(minLayout);
- minLayout.addComponent(new Label("Min width"));
- minLayout.addComponent(createMinButton(column, -1));
- minLayout.addComponent(createMinButton(column, 50));
- minLayout.addComponent(createMinButton(column, 200));
-
- CssLayout maxLayout = new CssLayout();
- maxLayout.addComponent(new Label("Max width"));
- maxLayout.addComponent(createMaxButton(column, -1));
- maxLayout.addComponent(createMaxButton(column, 50));
- maxLayout.addComponent(createMaxButton(column, 200));
- layout.addComponent(maxLayout);
-
- CssLayout expandLayout = new CssLayout();
- expandLayout.addComponent(new Label("Expand ratio"));
- expandLayout.addComponent(createExpandButton(column, -1));
- expandLayout.addComponent(createExpandButton(column, 0));
- expandLayout.addComponent(createExpandButton(column, 1));
- expandLayout.addComponent(createExpandButton(column, 2));
- layout.addComponent(expandLayout);
-
- return layout;
- }
-
- private Component createWidthButton(final Column column,
- final double width) {
- return new Button("" + width, new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- if (width >= 0) {
- column.setWidth(width);
- } else {
- column.setWidthUndefined();
- }
- updateInfoLabels();
- }
- });
- }
-
- private Component createMinButton(final Column column, final double width) {
- return new Button("" + width, new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- column.setMinimumWidth(width);
- updateInfoLabels();
- }
- });
- }
-
- private Component createMaxButton(final Column column, final double width) {
- return new Button("" + width, new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- column.setMaximumWidth(width);
- updateInfoLabels();
- }
- });
- }
-
- private Component createExpandButton(final Column column, final int ratio) {
- return new Button("" + ratio, new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- column.setExpandRatio(ratio);
- updateInfoLabels();
- }
- });
- }
-
- private void updateInfoLabels() {
- updateLabel(firstInfo, firstColumn);
- updateLabel(secondInfo, secondColumn);
- }
-
- private void updateLabel(Label label, Column column) {
- int expandRatio = column.getExpandRatio();
- double minimumWidth = Math.round(column.getMinimumWidth() * 100) / 100;
- double maximumWidth = Math.round(column.getMaximumWidth() * 100) / 100;
- double width = Math.round(column.getWidth() * 100) / 100;
- Object propertyId = column.getPropertyId();
- label.setValue(String.format(
- "[%s] Expand ratio: %s - min: %s - max: %s - width: %s",
- propertyId, expandRatio, minimumWidth, maximumWidth, width));
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculation.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculation.java
deleted file mode 100644
index 8045075b7c..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculation.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import java.util.ArrayList;
-
-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.v7.data.Container.Indexed;
-import com.vaadin.v7.data.Item;
-import com.vaadin.v7.data.Property;
-import com.vaadin.v7.ui.Grid;
-
-public class GridColumnWidthRecalculation extends AbstractTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- final Grid grid = new Grid();
-
- grid.addColumn("Column 1");
- grid.addColumn("Column 2");
-
- grid.addRow("Narrow",
- "Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide");
- addComponent(grid);
-
- Button b = new Button("Swap content", new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- swapData(grid);
- }
- });
- addComponent(b);
-
- b = new Button("Swap content and recalculate columns",
- new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- swapData(grid);
- grid.recalculateColumnWidths();
-
- }
- });
- addComponent(b);
- }
-
- @SuppressWarnings("unchecked")
- protected void swapData(Grid grid) {
- Indexed dataSource = grid.getContainerDataSource();
- Object itemId = dataSource.getItemIds().iterator().next();
- Item item = dataSource.getItem(itemId);
- ArrayList<Object> pIds = new ArrayList<>(item.getItemPropertyIds());
- for (int i = 0; i < pIds.size() / 2; i++) {
- int j = pIds.size() - 1 - i;
- Object pid1 = pIds.get(i);
- Object pid2 = pIds.get(j);
-
- Property<Object> property1 = item.getItemProperty(pid1);
- Property<Object> property2 = item.getItemProperty(pid2);
- Object tmp = property1.getValue();
- property1.setValue(property2.getValue());
- property2.setValue(tmp);
- }
- }
-
- @Override
- protected String getTestDescription() {
- return "There should be a way to ask Grid to recalculate column widths from server-side.";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 16748;
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutData.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutData.java
deleted file mode 100644
index 011a1ec306..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutData.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import java.util.EnumSet;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.data.Property.ValueChangeEvent;
-import com.vaadin.v7.data.Property.ValueChangeListener;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-import com.vaadin.v7.ui.NativeSelect;
-
-public class GridColumnWidthsWithoutData extends AbstractReindeerTestUI {
-
- private SelectionMode selectionMode = SelectionMode.NONE;
- private Grid grid = createGrid(true);
-
- @Override
- protected void setup(VaadinRequest request) {
- addComponent(grid);
-
- NativeSelect selectionModeSelector = new NativeSelect("Selection mode",
- EnumSet.allOf(SelectionMode.class));
- selectionModeSelector.setValue(selectionMode);
- selectionModeSelector.setNullSelectionAllowed(false);
- selectionModeSelector.addValueChangeListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- selectionMode = (SelectionMode) event.getProperty().getValue();
- grid.setSelectionMode(selectionMode);
- }
- });
- addComponent(selectionModeSelector);
-
- addComponent(
- new Button("Recreate without data", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- replaceGrid(createGrid(false));
- }
- }));
-
- addComponent(
- new Button("Recreate with data", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- replaceGrid(createGrid(true));
- }
- }));
-
- addComponent(new Button("Add data", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- addDataToGrid(grid);
- }
- }));
-
- addComponent(new Button("Remove data", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- grid.getContainerDataSource().removeAllItems();
- }
- }));
-
- }
-
- private void replaceGrid(Grid newGrid) {
- ((VerticalLayout) grid.getParent()).replaceComponent(grid, newGrid);
- grid = newGrid;
- }
-
- private Grid createGrid(boolean withData) {
- Grid grid = new Grid();
- grid.addColumn("foo");
- grid.addColumn("bar");
- grid.setWidth("300px");
- grid.setSelectionMode(selectionMode);
-
- if (withData) {
- addDataToGrid(grid);
- }
-
- return grid;
- }
-
- private void addDataToGrid(Grid grid) {
- grid.addRow("Some", "Data with more data in one col");
- }
-
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpand.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpand.java
deleted file mode 100644
index 21dba5b4b2..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpand.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.ui.Component;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Label;
-import com.vaadin.v7.event.ItemClickEvent;
-import com.vaadin.v7.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.DetailsGenerator;
-import com.vaadin.v7.ui.Grid.RowReference;
-
-/**
- * Tests the layouting of Grid's details row when it contains a HorizontalLayout
- * with expand ratios.
- *
- * @author Vaadin Ltd
- */
-@SuppressWarnings("serial")
-public class GridDetailsLayoutExpand extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- final Grid grid = new Grid();
- grid.setSizeFull();
- grid.addColumn("name", String.class);
- grid.addColumn("born", Integer.class);
-
- grid.addRow("Nicolaus Copernicus", 1543);
- grid.addRow("Galileo Galilei", 1564);
- grid.addRow("Johannes Kepler", 1571);
-
- addComponent(grid);
-
- grid.setDetailsGenerator(new DetailsGenerator() {
- @Override
- public Component getDetails(final RowReference rowReference) {
- final HorizontalLayout detailsLayout = new HorizontalLayout();
- detailsLayout.setSizeFull();
- detailsLayout.setHeightUndefined();
-
- // Label 1 first element of the detailsLayout, taking 200 pixels
- final Label lbl1 = new Label("test1");
- lbl1.setWidth("200px");
- detailsLayout.addComponent(lbl1);
-
- // layout2 second element of the detailsLayout, taking the rest
- // of the available space
- final HorizontalLayout layout2 = new HorizontalLayout();
- layout2.setSizeFull();
- layout2.setHeightUndefined();
- detailsLayout.addComponent(layout2);
- detailsLayout.setExpandRatio(layout2, 1);
-
- // 2 Labels added to the layout2
- final Label lbl2 = new Label("test2");
- lbl2.setWidth("100%");
- lbl2.setId("lbl2");
- layout2.addComponent(lbl2);
-
- final Label lbl3 = new Label("test3");
- lbl3.setWidth("100%");
- lbl3.setId("lbl3");
- layout2.addComponent(lbl3);
-
- return detailsLayout;
- }
- });
-
- grid.addItemClickListener(new ItemClickListener() {
- @Override
- public void itemClick(final ItemClickEvent event) {
- final Object itemId = event.getItemId();
- grid.setDetailsVisible(itemId, !grid.isDetailsVisible(itemId));
- }
- });
-
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 18821;
- }
-
- @Override
- protected String getTestDescription() {
- return "Details row must be the same after opening another details row";
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLocation.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLocation.java
index 7a88da395b..bd451e978b 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLocation.java
+++ b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsLocation.java
@@ -32,6 +32,13 @@ import com.vaadin.v7.ui.Grid.DetailsGenerator;
import com.vaadin.v7.ui.Grid.RowReference;
import com.vaadin.v7.ui.Grid.SelectionMode;
+/**
+ * This test cannot be migrated to V8 since there is no Grid::scrollTo method.
+ * Will it be there in the future ? (may be this test should be just removed).
+ *
+ * @author Vaadin Ltd
+ *
+ */
public class GridDetailsLocation extends UI {
private final DetailsGenerator detailsGenerator = new DetailsGenerator() {
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsWidth.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsWidth.java
deleted file mode 100644
index 8194cee0b6..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDetailsWidth.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.ui.Component;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.event.ItemClickEvent;
-import com.vaadin.v7.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.v7.ui.Grid;
-import com.vaadin.v7.ui.Grid.Column;
-import com.vaadin.v7.ui.Grid.DetailsGenerator;
-import com.vaadin.v7.ui.Grid.RowReference;
-import com.vaadin.v7.ui.TextArea;
-
-public class GridDetailsWidth extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- final VerticalLayout layout = new VerticalLayout();
- layout.setMargin(true);
-
- final Grid grid = new Grid();
-
- Column column = grid.addColumn("Hello", String.class);
- for (int i = 0; i < 3; i++) {
- grid.addRow("Hello " + i);
- }
-
- column.setWidth(600);
- grid.setWidth(400, Unit.PIXELS);
-
- grid.setDetailsGenerator(new DetailsGenerator() {
-
- @Override
- public Component getDetails(RowReference rowReference) {
- HorizontalLayout myLayout = new HorizontalLayout();
- TextArea textArea1 = new TextArea();
- TextArea textArea2 = new TextArea();
- textArea1.setSizeFull();
- textArea2.setSizeFull();
- myLayout.addComponent(textArea1);
- myLayout.addComponent(textArea2);
- myLayout.setWidth(100, Unit.PERCENTAGE);
- myLayout.setHeight(null);
- myLayout.setMargin(true);
- return myLayout;
- }
- });
-
- grid.addItemClickListener(new ItemClickListener() {
-
- @Override
- public void itemClick(ItemClickEvent event) {
- grid.setDetailsVisible(event.getItemId(),
- !grid.isDetailsVisible(event.getItemId()));
-
- }
- });
-
- layout.addComponent(grid);
-
- addComponent(layout);
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 18223;
- }
-
- @Override
- protected String getTestDescription() {
- return "Tests that Escalator will not set explicit widths to the TD element in a details row.";
- }
-
-}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
new file mode 100644
index 0000000000..b5ff8a33b4
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2000-2016 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.grid;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.parallel.TestCategory;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+@SuppressWarnings("boxing")
+@TestCategory("grid")
+public abstract class AbstractGridColumnAutoWidthTest extends MultiBrowserTest {
+
+ public static final int TOTAL_MARGIN_PX = 21;
+
+ @Before
+ public void before() {
+ openTestURL();
+ }
+
+ @Test
+ public void testNarrowHeaderWideBody() {
+ WebElement[] col = getColumn(1);
+ int headerWidth = col[0].getSize().getWidth();
+ int bodyWidth = col[1].getSize().getWidth();
+ int colWidth = col[2].getSize().getWidth() - TOTAL_MARGIN_PX;
+
+ assertLessThan("header should've been narrower than body", headerWidth,
+ bodyWidth);
+ assertEquals("column should've been roughly as wide as the body",
+ bodyWidth, colWidth, 5);
+ }
+
+ @Test
+ public void testWideHeaderNarrowBody() {
+ WebElement[] col = getColumn(2);
+ int headerWidth = col[0].getSize().getWidth();
+ int bodyWidth = col[1].getSize().getWidth();
+ int colWidth = col[2].getSize().getWidth() - TOTAL_MARGIN_PX;
+
+ assertGreater("header should've been wider than body", headerWidth,
+ bodyWidth);
+ assertEquals("column should've been roughly as wide as the header",
+ headerWidth, colWidth, 5);
+
+ }
+
+ @Test
+ public void testTooNarrowColumn() {
+ if (BrowserUtil.isIE(getDesiredCapabilities())) {
+ // IE can't deal with overflow nicely.
+ return;
+ }
+
+ WebElement[] col = getColumn(3);
+ int headerWidth = col[0].getSize().getWidth();
+ int colWidth = col[2].getSize().getWidth() - TOTAL_MARGIN_PX;
+
+ assertLessThan("column should've been narrower than content", colWidth,
+ headerWidth);
+ }
+
+ @Test
+ public void testTooWideColumn() {
+ WebElement[] col = getColumn(4);
+ int headerWidth = col[0].getSize().getWidth();
+ int colWidth = col[2].getSize().getWidth() - TOTAL_MARGIN_PX;
+
+ assertGreater("column should've been wider than content", colWidth,
+ headerWidth);
+ }
+
+ @Test
+ public void testColumnsRenderCorrectly() throws IOException {
+ WebElement loadingIndicator = findElement(
+ By.className("v-loading-indicator"));
+ Pattern pattern = Pattern.compile("display: *none;");
+ waitUntil(driver -> {
+ return pattern.matcher(loadingIndicator.getAttribute("style"))
+ .find();
+ });
+ compareScreen("grid-v8-initialRender");
+ }
+
+ private WebElement[] getColumn(int i) {
+ WebElement[] col = new WebElement[3];
+ col[0] = getDriver().findElement(
+ By.xpath("//thead//th[" + (i + 1) + "]/div[1]/span"));
+ col[1] = getDriver()
+ .findElement(By.xpath("//tbody//td[" + (i + 1) + "]//span"));
+ col[2] = getDriver()
+ .findElement(By.xpath("//tbody//td[" + (i + 1) + "]"));
+ return col;
+ }
+
+}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColspansTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColspansTest.java
index b50c5a2e5e..bd1cf1a27b 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColspansTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColspansTest.java
@@ -13,10 +13,10 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import org.junit.Before;
import org.junit.Test;
@@ -37,20 +37,14 @@ public class GridColspansTest extends MultiBrowserTest {
}
@Test
- public void testHeaderColSpans() {
+ public void testColSpans() {
openTestURL();
GridElement grid = $(GridElement.class).first();
assertEquals("5", grid.getHeaderCell(0, 1).getAttribute("colspan"));
assertEquals("2", grid.getHeaderCell(1, 1).getAttribute("colspan"));
assertEquals("3", grid.getHeaderCell(1, 3).getAttribute("colspan"));
- }
-
- @Test
- public void testFooterColSpans() {
- openTestURL();
- GridElement grid = $(GridElement.class).first();
assertEquals("5", grid.getFooterCell(1, 1).getAttribute("colspan"));
assertEquals("2", grid.getFooterCell(0, 1).getAttribute("colspan"));
assertEquals("3", grid.getFooterCell(0, 3).getAttribute("colspan"));
@@ -84,8 +78,8 @@ public class GridColspansTest extends MultiBrowserTest {
grid.getHeaderCell(2, 1).getText().toLowerCase());
$(ButtonElement.class).get(1).click();
headerCell = grid.getHeaderCell(1, 1);
- assertEquals("Header text not changed on column reorder.", "address",
- headerCell.getText().toLowerCase());
+ assertEquals("Joined Header text not changed on column reorder.",
+ "misc", headerCell.getText().toLowerCase());
assertEquals("Unexpected colspan", "1",
headerCell.getAttribute("colspan"));
headerCell = grid.getHeaderCell(1, 2);
@@ -94,7 +88,7 @@ public class GridColspansTest extends MultiBrowserTest {
assertEquals("Unexpected colspan", "2",
headerCell.getAttribute("colspan"));
- assertTrue("Error indicator not present",
+ assertFalse("Error indicator not present",
isElementPresent(By.className("v-errorindicator")));
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpandTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoExpandTest.java
index cd77084aef..be8f122c99 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoExpandTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoExpandTest.java
@@ -13,11 +13,14 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import static org.junit.Assert.assertTrue;
+import java.util.List;
+
import org.junit.Test;
+import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.customelements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
@@ -25,6 +28,13 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
public class GridColumnAutoExpandTest extends MultiBrowserTest {
+ @Override
+ public List<DesiredCapabilities> getBrowsersToTest() {
+ // The functionality doesn't work for PHJS_1. And the test fails. It
+ // works for PHJS_2.
+ return getBrowsersExcludingPhantomJS();
+ }
+
@Test
public void testSecondColumnHasExpanded() {
openTestURL();
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClientTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
index a0567bbf37..8b1745d1ea 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthClientTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import com.vaadin.testbench.parallel.TestCategory;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthServerTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
index 0a0f823c42..b41c626c0f 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnAutoWidthServerTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import com.vaadin.testbench.parallel.TestCategory;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutDataTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java
index 81f0a83ea2..6797353728 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthsWithoutDataTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import java.util.List;
@@ -82,7 +82,7 @@ public class GridColumnWidthsWithoutDataTest extends SingleBrowserTest {
setDebug(true);
openTestURL();
$(NativeSelectElement.class).caption("Selection mode").first()
- .selectByText("Multi");
+ .selectByText("MULTI");
GridElement grid = $(GridElement.class).first();
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDataSourceResetTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDataSourceResetTest.java
index 3405d81827..4e3ce3e4c8 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDataSourceResetTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDataSourceResetTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsDetachTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsDetachTest.java
index fe700a13a6..5ede362f29 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsDetachTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsDetachTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import java.util.List;
@@ -50,8 +50,8 @@ public class GridDetailsDetachTest extends MultiBrowserTest {
setDebug(true);
openTestURL();
+ $(GridElement.class).first().getCell(1, 0).click();
$(GridElement.class).first().getCell(3, 0).click();
- $(GridElement.class).first().getCell(5, 0).click();
assertNoErrorNotifications();
@@ -66,9 +66,9 @@ public class GridDetailsDetachTest extends MultiBrowserTest {
List<WebElement> spacers = findElements(By.className("v-grid-spacer"));
Assert.assertEquals("Not enough spacers in DOM", 2, spacers.size());
Assert.assertEquals("Spacer content not visible",
- "Extra data for Bean 3", spacers.get(0).getText());
+ "Extra data for Bean 1", spacers.get(0).getText());
Assert.assertEquals("Spacer content not visible",
- "Extra data for Bean 5", spacers.get(1).getText());
+ "Extra data for Bean 3", spacers.get(1).getText());
}
@Test
@@ -76,8 +76,8 @@ public class GridDetailsDetachTest extends MultiBrowserTest {
setDebug(true);
openTestURL();
+ $(GridElement.class).first().getCell(1, 0).click();
$(GridElement.class).first().getCell(3, 0).click();
- $(GridElement.class).first().getCell(5, 0).click();
assertNoErrorNotifications();
@@ -89,9 +89,9 @@ public class GridDetailsDetachTest extends MultiBrowserTest {
List<WebElement> spacers = findElements(By.className("v-grid-spacer"));
Assert.assertEquals("Not enough spacers in DOM", 2, spacers.size());
Assert.assertEquals("Spacer content not visible",
- "Extra data for Bean 3", spacers.get(0).getText());
+ "Extra data for Bean 1", spacers.get(0).getText());
Assert.assertEquals("Spacer content not visible",
- "Extra data for Bean 5", spacers.get(1).getText());
+ "Extra data for Bean 3", spacers.get(1).getText());
}
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpandTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpandTest.java
index 67daf06c3c..c1f4ee7e5e 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsLayoutExpandTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsLayoutExpandTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.number.IsCloseTo.closeTo;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsWidthTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsWidthTest.java
index 055f4470fd..7c4ebb536c 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDetailsWidthTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDetailsWidthTest.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import java.util.List;
@@ -85,7 +85,7 @@ public class GridDetailsWidthTest extends SingleBrowserTest {
cell.getText());
Assert.assertEquals("Details row was not in correct location",
cell.getLocation().getY() + cell.getSize().getHeight(),
- spacer.getLocation().getY());
+ spacer.getLocation().getY(), 2);
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculationTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculationTest.java
deleted file mode 100644
index 6bad840705..0000000000
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridColumnWidthRecalculationTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2000-2016 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.v7.tests.components.grid;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.openqa.selenium.Dimension;
-
-import com.vaadin.testbench.customelements.GridElement;
-import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.testbench.elements.GridElement.GridCellElement;
-import com.vaadin.testbench.parallel.TestCategory;
-import com.vaadin.tests.tb3.SingleBrowserTest;
-
-@TestCategory("grid")
-public class GridColumnWidthRecalculationTest extends SingleBrowserTest {
-
- private GridElement grid;
-
- @Before
- public void open() {
- openTestURL();
- grid = $(GridElement.class).first();
- }
-
- @Test
- public void columnWidthAfterSwap() {
- int column0Width = getColumnWidth(0);
- int column1Width = getColumnWidth(1);
- Assert.assertTrue("Column 0 should be narrower than column 1 initially",
- column0Width < column1Width);
-
- $(ButtonElement.class).caption("Swap content").first().click();
-
- Assert.assertEquals(
- "Column 0 width should not change when swapping contents only",
- column0Width, getColumnWidth(0));
- Assert.assertEquals(
- "Column 1 width should not change when swapping contents only",
- column1Width, getColumnWidth(1));
- }
-
- @Test
- public void columnWidthAfterSwapAndRecalculate() {
- int column0Width = getColumnWidth(0);
- int column1Width = getColumnWidth(1);
- Assert.assertTrue("Column 0 should be narrower than column 1 initially",
- column0Width < column1Width);
-
- $(ButtonElement.class).caption("Swap content and recalculate columns")
- .first().click();
-
- column0Width = getColumnWidth(0);
- column1Width = getColumnWidth(1);
-
- Assert.assertTrue(
- "Column 1 should be narrower than column 0 after resize",
- column1Width < column0Width);
- }
-
- private int getColumnWidth(int columnIndex) {
- GridCellElement headerColumn = grid.getHeaderCells(0).get(columnIndex);
- Dimension column1Size = headerColumn.getSize();
- int columnWidth = column1Size.getWidth();
- return columnWidth;
- }
-
-}