summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorPekka Hyvönen <pekka@vaadin.com>2016-11-11 09:41:43 +0200
committerVaadin Code Review <review@vaadin.com>2016-11-29 10:18:11 +0000
commitf2d8f812efa067b4baa7e27c0ea76f7596b291e6 (patch)
tree8e35e6c4eef4ffc5f8006d30989914da1deeab1b /uitest
parent13443562ccbd633ceb561bb87893014f65437ad1 (diff)
downloadvaadin-framework-f2d8f812efa067b4baa7e27c0ea76f7596b291e6.tar.gz
vaadin-framework-f2d8f812efa067b4baa7e27c0ea76f7596b291e6.zip
Add MultiSelect support for Grid
Still missing following things coming in next patches: - select all checkbox - firing an event when data provider is changed in grid - read only selection models for grid Part 1 for vaadin/framework8-issues#232 Change-Id: Ib2c7c81a838f43cb7c521a56d50139c91961f54a
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridCustomSelectionModel.java65
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDefaultSelectionMode.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionMode.java)23
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDisabledMultiselect.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDisabledMultiselect.java)14
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolled.java75
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInit.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModel.java)29
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBar.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBar.java)16
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/basics/DataObject.java4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java56
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/MySelectionModelConnector.java (renamed from uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/MySelectionModelConnector.java)36
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolled.java51
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInit.java46
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridSelectAllCell.java19
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/SelectDuringInit.java40
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridCustomSelectionModelTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModelTest.java)6
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDefaultSelectionModeTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionModeTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDisabledMultiselectTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDisabledMultiselectTest.java)14
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolledTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolledTest.java)6
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInitTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInitTest.java)36
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBarTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBarTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectAllTest.java108
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/server/GridSelectionTest.java)216
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicSelectionTest.java24
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicsTest.java20
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridSelectAllCellTest.java37
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/grid/SelectDuringInitTest.java37
25 files changed, 469 insertions, 513 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridCustomSelectionModel.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCustomSelectionModel.java
new file mode 100644
index 0000000000..220f059f52
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCustomSelectionModel.java
@@ -0,0 +1,65 @@
+/*
+ * 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.List;
+
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.tests.components.grid.basics.DataObject;
+import com.vaadin.tests.components.grid.basics.GridBasics;
+import com.vaadin.tests.widgetset.TestingWidgetSet;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
+
+@Widgetset(TestingWidgetSet.NAME)
+public class GridCustomSelectionModel extends AbstractTestUI {
+
+ public static class MySelectionModel
+ extends MultiSelectionModelImpl<DataObject> {
+
+ public MySelectionModel(Grid<DataObject> grid) {
+ super(grid);
+ }
+ }
+
+ private Grid<DataObject> grid;
+ private List<DataObject> data;
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ data = DataObject.generateObjects();
+
+ // Create grid
+ grid = new Grid<DataObject>() {
+ {
+ MySelectionModel model = new MySelectionModel(this);
+ setSelectionModel(model);
+ model.extend(this);
+ }
+ };
+ grid.setItems(data);
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 0)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[0]);
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 1)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[1]);
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 2)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[2]);
+ addComponent(grid);
+ }
+
+}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionMode.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDefaultSelectionMode.java
index 43ddb184d8..625f94d426 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionMode.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDefaultSelectionMode.java
@@ -13,20 +13,19 @@
* 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 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.Button.ClickListener;
+import com.vaadin.ui.Grid;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.data.util.BeanItemContainer;
-import com.vaadin.v7.ui.Grid;
-public class GridDefaultSelectionMode extends AbstractReindeerTestUI {
+public class GridDefaultSelectionMode extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
@@ -42,11 +41,11 @@ public class GridDefaultSelectionMode extends AbstractReindeerTestUI {
items.add(person1);
items.add(person2);
- final BeanItemContainer<Person> container = new BeanItemContainer<>(
- Person.class, items);
-
- final Grid grid = new Grid();
- grid.setContainerDataSource(container);
+ final Grid<Person> grid = new Grid<>();
+ grid.setItems(items);
+ grid.addColumn(person -> person.getFirstName())
+ .setCaption("First Name");
+ grid.addColumn(person -> person.getLastName()).setCaption("Last Name");
VerticalLayout v = new VerticalLayout();
@@ -54,7 +53,7 @@ public class GridDefaultSelectionMode extends AbstractReindeerTestUI {
@Override
public void buttonClick(ClickEvent event) {
- grid.select(null);
+ grid.getSelectionModel().deselectAll();
}
}));
@@ -62,7 +61,7 @@ public class GridDefaultSelectionMode extends AbstractReindeerTestUI {
@Override
public void buttonClick(ClickEvent event) {
- grid.select(person1);
+ grid.getSelectionModel().select(person1);
}
}));
v.addComponent(grid);
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDisabledMultiselect.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDisabledMultiselect.java
index c58de99db7..46ac8ec260 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDisabledMultiselect.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDisabledMultiselect.java
@@ -1,24 +1,24 @@
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.Button;
-import com.vaadin.v7.ui.Grid;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
public class GridDisabledMultiselect extends AbstractReindeerTestUI {
@Override
protected void setup(VaadinRequest request) {
- final Grid grid = new Grid();
- grid.addColumn("foo", String.class);
- grid.addRow("bar");
- grid.setSelectionMode(Grid.SelectionMode.SINGLE);
+ final Grid<String> grid = new Grid<>();
+ grid.addColumn(string -> string);
+ grid.setItems("bar");
addComponent(grid);
addButton("Multi", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
- grid.setSelectionMode(Grid.SelectionMode.MULTI);
+ grid.setSelectionModel(new MultiSelectionModelImpl<>(grid));
}
});
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolled.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolled.java
new file mode 100644
index 0000000000..2875e18119
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolled.java
@@ -0,0 +1,75 @@
+/*
+ * 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.AbstractTestUI;
+import com.vaadin.tests.components.grid.basics.DataObject;
+import com.vaadin.tests.components.grid.basics.GridBasics;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Layout;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
+import com.vaadin.ui.renderers.DateRenderer;
+import com.vaadin.ui.renderers.HtmlRenderer;
+import com.vaadin.ui.renderers.NumberRenderer;
+
+public class GridDragSelectionWhileScrolled extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Layout layout = new VerticalLayout();
+
+ HorizontalLayout spacer = new HorizontalLayout();
+ spacer.setHeight("1000px");
+ layout.addComponent(spacer);
+
+ Grid<DataObject> grid = new Grid<>();
+ grid.setItems(DataObject.generateObjects());
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 0)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[0]);
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 1)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[1]);
+ grid.addColumn(dataObj -> "(" + dataObj.getRowNumber() + ", 2)")
+ .setCaption(GridBasics.COLUMN_CAPTIONS[2]);
+
+ grid.addColumn(DataObject::getRowNumber, new NumberRenderer())
+ .setCaption(GridBasics.COLUMN_CAPTIONS[3]);
+ grid.addColumn(DataObject::getDate, new DateRenderer())
+ .setCaption(GridBasics.COLUMN_CAPTIONS[4]);
+ grid.addColumn(DataObject::getHtmlString, new HtmlRenderer())
+ .setCaption(GridBasics.COLUMN_CAPTIONS[5]);
+ grid.addColumn(DataObject::getBigRandom, new NumberRenderer())
+ .setCaption(GridBasics.COLUMN_CAPTIONS[6]);
+
+ grid.setSelectionModel(new MultiSelectionModelImpl<>(grid));
+
+ layout.addComponent(grid);
+
+ addComponent(layout);
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 17895;
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Drag selecting rows in Grid malfunctions if page is scrolled";
+ }
+}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModel.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInit.java
index 89029a36fe..2b1e78d323 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModel.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInit.java
@@ -13,25 +13,28 @@
* 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.v7.ui.Grid.MultiSelectionModel;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
-@Widgetset(TestingWidgetSet.NAME)
-public class GridCustomSelectionModel extends AbstractReindeerTestUI {
-
- public static class MySelectionModel extends MultiSelectionModel {
- }
+public class GridMultiSelectionOnInit extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
- PersonTestGrid grid = new PersonTestGrid(500);
- grid.setSelectionModel(new MySelectionModel());
+ final Grid<String> grid = new Grid<>();
+ grid.setItems("Foo 1", "Foo 2");
+ grid.addColumn(item -> item);
+ grid.setSelectionModel(new MultiSelectionModelImpl<>(grid));
addComponent(grid);
- }
+ addComponent(new Button("Select rows",
+ event -> grid.getSelectionModel().select("Foo 1")));
+ if (request.getParameter("initialSelection") != null) {
+ grid.getSelectionModel().select("Foo 2");
+ }
+ }
}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBar.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBar.java
index 3d89f32831..22fdf64e5c 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBar.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBar.java
@@ -13,20 +13,20 @@
* 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.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.v7.ui.Grid;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Grid;
-public class GridMultiSelectionScrollBar extends AbstractReindeerTestUI {
+public class GridMultiSelectionScrollBar extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
- Grid grid = new Grid();
- grid.addColumn("X").setWidth(39.25d);
- grid.addColumn("Hello");
- grid.addColumn("World");
+ Grid<String> grid = new Grid<>();
+ grid.addColumn(string -> "X:" + string).setWidth(39.25d);
+ grid.addColumn(string -> "Hello:" + string);
+ grid.addColumn(string -> "World:" + string);
grid.setFrozenColumnCount(1);
addComponent(grid);
}
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/DataObject.java b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/DataObject.java
index ff27268991..54dc8d74b2 100644
--- a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/DataObject.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/DataObject.java
@@ -5,7 +5,7 @@ import java.util.Date;
import java.util.List;
import java.util.Random;
-class DataObject {
+public class DataObject {
private static final int ROWS = 1000;
@@ -69,7 +69,7 @@ class DataObject {
return "DataObject[" + rowNumber + "]";
}
- static List<DataObject> generateObjects() {
+ public static List<DataObject> generateObjects() {
List<DataObject> data = new ArrayList<>();
{
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java
index 8917ce0241..4f36eb6207 100644
--- a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java
@@ -9,6 +9,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.Optional;
import java.util.function.Consumer;
import java.util.stream.Stream;
@@ -16,6 +17,8 @@ import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Widgetset;
import com.vaadin.data.Binder;
import com.vaadin.data.util.converter.StringToIntegerConverter;
+import com.vaadin.event.selection.MultiSelectionEvent;
+import com.vaadin.event.selection.SingleSelectionEvent;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.Registration;
import com.vaadin.shared.ui.grid.HeightMode;
@@ -36,7 +39,8 @@ import com.vaadin.ui.Panel;
import com.vaadin.ui.StyleGenerator;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.components.grid.SingleSelectionModel;
+import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
+import com.vaadin.ui.components.grid.SingleSelectionModelImpl;
import com.vaadin.ui.renderers.DateRenderer;
import com.vaadin.ui.renderers.HtmlRenderer;
import com.vaadin.ui.renderers.NumberRenderer;
@@ -149,6 +153,8 @@ public class GridBasics extends AbstractTestUIWithLog {
private List<DataObject> data;
private int watchingCount = 0;
private PersistingDetailsGenerator persistingDetails;
+ private List<Column<DataObject, ?>> initialColumnOrder;
+ private Registration selectionListenerRegistration;
public GridBasics() {
generators.put("NULL", null);
@@ -215,15 +221,33 @@ public class GridBasics extends AbstractTestUIWithLog {
new ProgressBarRenderer()).setCaption(COLUMN_CAPTIONS[7])
.setEditorComponent(smallRandom);
- ((SingleSelectionModel<DataObject>) grid.getSelectionModel())
- .addSelectionChangeListener(
- e -> log("Selected: " + e.getValue()));
+ selectionListenerRegistration = ((SingleSelectionModelImpl<DataObject>) grid
+ .getSelectionModel())
+ .addSelectionListener(this::onSingleSelect);
layout.addComponent(createMenu());
layout.addComponent(grid);
addComponent(layout);
}
+ private void onSingleSelect(SingleSelectionEvent<DataObject> event) {
+ log("SingleSelectionEvent: Selected: "
+ + (event.getSelectedItem().isPresent()
+ ? event.getSelectedItem().get().toString() : "none"));
+ }
+
+ private void onMultiSelect(MultiSelectionEvent<DataObject> event) {
+ Optional<DataObject> firstAdded = event.getNewSelection().stream()
+ .findFirst();
+ Optional<DataObject> firstRemoved = event.getOldSelection().stream()
+ .findFirst();
+ String addedRow = firstAdded.isPresent() ? firstAdded.toString()
+ : "none";
+ String removedRow = firstRemoved.isPresent() ? firstRemoved.toString()
+ : "none";
+ log("SelectionEvent: Added " + addedRow + ", Removed " + removedRow);
+ }
+
private Component createMenu() {
MenuBar menu = new MenuBar();
menu.setErrorHandler(error -> log("Exception occured, "
@@ -388,6 +412,8 @@ public class GridBasics extends AbstractTestUIWithLog {
e -> grid.setEnabled(e.isChecked()));
enableItem.setCheckable(true);
enableItem.setChecked(true);
+
+ createSelectionMenu(stateMenu);
}
private void createRowStyleMenu(MenuItem rowStyleMenu) {
@@ -449,6 +475,28 @@ public class GridBasics extends AbstractTestUIWithLog {
grid.getSelectionModel().select(item);
}
});
+ rowMenu.addItem("Deselect all", menuItem -> {
+ grid.getSelectionModel().deselectAll();
+ });
+ }
+
+ private void createSelectionMenu(MenuItem stateItem) {
+ MenuItem selectionModelItem = stateItem.addItem("Selection model",
+ null);
+ selectionModelItem.addItem("single", menuItem -> {
+ selectionListenerRegistration.remove();
+ grid.setSelectionModel(new SingleSelectionModelImpl<>(grid));
+ selectionListenerRegistration = ((SingleSelectionModelImpl<DataObject>) grid
+ .getSelectionModel())
+ .addSelectionListener(this::onSingleSelect);
+ });
+ selectionModelItem.addItem("multi", menuItem -> {
+ selectionListenerRegistration.remove();
+ grid.setSelectionModel(new MultiSelectionModelImpl<>(grid));
+ selectionListenerRegistration = ((MultiSelectionModelImpl<DataObject>) grid
+ .getSelectionModel())
+ .addSelectionListener(this::onMultiSelect);
+ });
}
private void createHeaderMenu(MenuItem headerMenu) {
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/MySelectionModelConnector.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/MySelectionModelConnector.java
index b5b1e688eb..78851dd7ef 100644
--- a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/MySelectionModelConnector.java
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/MySelectionModelConnector.java
@@ -13,28 +13,32 @@
* 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 com.vaadin.client.ServerConnector;
+import com.vaadin.client.connectors.grid.MultiSelectionModelConnector;
+import com.vaadin.client.renderers.Renderer;
+import com.vaadin.client.widget.grid.selection.ClickSelectHandler;
import com.vaadin.shared.ui.Connect;
-import com.vaadin.v7.client.connectors.MultiSelectionModelConnector;
-import com.vaadin.v7.client.renderers.ComplexRenderer;
-import com.vaadin.v7.client.widget.grid.selection.ClickSelectHandler;
-import com.vaadin.v7.client.widget.grid.selection.SelectionModel.Multi;
-import com.vaadin.v7.client.widgets.Grid;
-import com.vaadin.v7.tests.components.grid.GridCustomSelectionModel.MySelectionModel;
import elemental.json.JsonObject;
-@Connect(MySelectionModel.class)
+@Connect(com.vaadin.tests.components.grid.GridCustomSelectionModel.MySelectionModel.class)
public class MySelectionModelConnector extends MultiSelectionModelConnector {
+ protected class MyMultiSelectionModel extends MultiSelectionModel {
+ @Override
+ public Renderer<Boolean> getRenderer() {
+ return null;
+ }
+ }
+
private ClickSelectHandler<JsonObject> handler;
@Override
protected void extend(ServerConnector target) {
- super.extend(target);
handler = new ClickSelectHandler<>(getGrid());
+ getGrid().setSelectionModel(new MyMultiSelectionModel());
}
@Override
@@ -44,18 +48,4 @@ public class MySelectionModelConnector extends MultiSelectionModelConnector {
handler = null;
}
- @Override
- protected Multi<JsonObject> createSelectionModel() {
- return new MySelectionModel();
- }
-
- public class MySelectionModel extends MultiSelectionModel {
-
- @Override
- protected ComplexRenderer<Boolean> createSelectionColumnRenderer(
- Grid<JsonObject> grid) {
- // No Selection Column.
- return null;
- }
- }
}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolled.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolled.java
deleted file mode 100644
index 33da0feb9d..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolled.java
+++ /dev/null
@@ -1,51 +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.HorizontalLayout;
-import com.vaadin.ui.Layout;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-
-public class GridDragSelectionWhileScrolled extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- Layout layout = new VerticalLayout();
-
- HorizontalLayout spacer = new HorizontalLayout();
- spacer.setHeight("1000px");
- layout.addComponent(spacer);
-
- PersonTestGrid grid = new PersonTestGrid(100);
- grid.setSelectionMode(SelectionMode.MULTI);
- layout.addComponent(grid);
-
- addComponent(layout);
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 17895;
- }
-
- @Override
- protected String getTestDescription() {
- return "Drag selecting rows in Grid malfunctions if page is scrolled";
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInit.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInit.java
deleted file mode 100644
index 8f6022846d..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInit.java
+++ /dev/null
@@ -1,46 +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.ui.Grid;
-import com.vaadin.v7.ui.Grid.MultiSelectionModel;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-
-public class GridMultiSelectionOnInit extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- final Grid grid = new Grid();
- grid.addColumn("foo", String.class);
- grid.addRow("Foo 1");
- grid.addRow("Foo 2");
- grid.setSelectionMode(SelectionMode.MULTI);
- addComponent(grid);
-
- addComponent(new Button("Select rows", new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- ((MultiSelectionModel) grid.getSelectionModel()).setSelected(
- grid.getContainerDataSource().getItemIds());
- }
- }));
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridSelectAllCell.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridSelectAllCell.java
deleted file mode 100644
index 98913f037b..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridSelectAllCell.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.vaadin.v7.tests.components.grid;
-
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractTestUI;
-import com.vaadin.v7.ui.Grid;
-
-public class GridSelectAllCell extends AbstractTestUI {
- @Override
- protected void setup(VaadinRequest request) {
- Grid grid = new Grid();
-
- grid.addColumn("foo", String.class);
- grid.addRow("bar");
-
- grid.setSelectionMode(Grid.SelectionMode.MULTI);
-
- addComponent(grid);
- }
-}
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/SelectDuringInit.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/SelectDuringInit.java
deleted file mode 100644
index c32f52a627..0000000000
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/SelectDuringInit.java
+++ /dev/null
@@ -1,40 +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.ui.Grid;
-import com.vaadin.v7.ui.Grid.SelectionMode;
-
-public class SelectDuringInit extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- Grid grid = new Grid();
- grid.setSelectionMode(SelectionMode.MULTI);
-
- grid.addColumn("value");
- grid.addRow("row 1");
- grid.addRow("row 2");
- grid.addRow("row 3");
-
- grid.select(Integer.valueOf(2));
-
- addComponent(grid);
- }
-
-}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModelTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCustomSelectionModelTest.java
index 31c90c401d..d6a4c0b33c 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCustomSelectionModelTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCustomSelectionModelTest.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;
@@ -22,10 +22,10 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
+import com.vaadin.testbench.customelements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.testbench.customelements.GridElement;
@TestCategory("grid")
public class GridCustomSelectionModelTest extends MultiBrowserTest {
@@ -38,7 +38,7 @@ public class GridCustomSelectionModelTest extends MultiBrowserTest {
GridElement grid = $(GridElement.class).first();
GridCellElement cell = grid.getCell(0, 0);
assertTrue("First column of Grid should not have an input element",
- cell.findElements(By.className("input")).isEmpty());
+ cell.findElements(By.tagName("input")).isEmpty());
assertFalse("Row should not be selected initially",
grid.getRow(0).isSelected());
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionModeTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDefaultSelectionModeTest.java
index 01d8e890f3..3dbe8b5426 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDefaultSelectionModeTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDefaultSelectionModeTest.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/GridDisabledMultiselectTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDisabledMultiselectTest.java
index d822051992..8bc58450c8 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDisabledMultiselectTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDisabledMultiselectTest.java
@@ -1,4 +1,4 @@
-package com.vaadin.v7.tests.components.grid;
+package com.vaadin.tests.components.grid;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
@@ -39,7 +39,7 @@ public class GridDisabledMultiselectTest extends MultiBrowserTest {
}
private WebElement getFirstSelectCheckBox() {
- return findCheckBoxes().get(1);
+ return findCheckBoxes().get(0);
}
@Test
@@ -48,20 +48,22 @@ public class GridDisabledMultiselectTest extends MultiBrowserTest {
setMultiselect();
- assertThat(getSelectAllCheckBox().isEnabled(), is(false));
+ // TODO enable once select all is added back
+ // assertThat(getSelectAllCheckBox().isEnabled(), is(false));
assertThat(getFirstSelectCheckBox().isEnabled(), is(false));
}
@Test
public void checkBoxesAreDisabledAfterDisabled() {
setMultiselect();
-
- assertThat(getSelectAllCheckBox().isEnabled(), is(true));
+ // TODO enable once select all is added back
+ // assertThat(getSelectAllCheckBox().isEnabled(), is(true));
assertThat(getFirstSelectCheckBox().isEnabled(), is(true));
disable();
- assertThat(getSelectAllCheckBox().isEnabled(), is(false));
+ // TODO enable once select all is added back
+ // assertThat(getSelectAllCheckBox().isEnabled(), is(false));
assertThat(getFirstSelectCheckBox().isEnabled(), is(false));
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolledTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolledTest.java
index af5d77adce..5690263336 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridDragSelectionWhileScrolledTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridDragSelectionWhileScrolledTest.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;
@@ -24,11 +24,9 @@ import org.junit.Test;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.interactions.Actions;
-import com.vaadin.testbench.parallel.TestCategory;
-import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.testbench.customelements.GridElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
-@TestCategory("grid")
public class GridDragSelectionWhileScrolledTest extends MultiBrowserTest {
@Override
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInitTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInitTest.java
index 79f6aecb02..6abcb71e8c 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionOnInitTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionOnInitTest.java
@@ -13,23 +13,30 @@
* 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.core.Is.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import java.io.IOException;
+
import org.junit.Test;
import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+import com.vaadin.testbench.customelements.GridElement;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.testbench.customelements.GridElement;
@TestCategory("grid")
public class GridMultiSelectionOnInitTest extends MultiBrowserTest {
- @Test
+ // TODO enable when select all is added back
+ // @Test
public void testSelectAllCheckBoxExists() {
openTestURL();
assertTrue("The select all checkbox was missing.",
@@ -37,6 +44,20 @@ public class GridMultiSelectionOnInitTest extends MultiBrowserTest {
.isElementPresent(By.tagName("input")));
}
+ // TODO enable when select all is added back
+ // @Test
+ public void selectAllCellCanBeClicked() throws IOException {
+ GridElement.GridCellElement selectAllCell = $(GridElement.class).first()
+ .getHeaderCell(0, 0);
+
+ new Actions(getDriver()).moveToElement(selectAllCell, 2, 2).click()
+ .perform();
+
+ WebElement selectAllCheckbox = selectAllCell
+ .findElement(By.cssSelector("input"));
+ assertThat(selectAllCheckbox.isSelected(), is(true));
+ }
+
@Test
public void testSetSelectedUpdatesClient() {
openTestURL();
@@ -46,4 +67,13 @@ public class GridMultiSelectionOnInitTest extends MultiBrowserTest {
assertTrue("Rows should be selected after button click.",
$(GridElement.class).first().getRow(0).isSelected());
}
+
+ @Test
+ public void testInitialSelection() {
+ openTestURL("initialSelection=yes");
+
+ assertTrue("Initial selection should be visible",
+ $(GridElement.class).first().getRow(1).isSelected());
+ }
+
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBarTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBarTest.java
index eff1a69b3c..4363737746 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridMultiSelectionScrollBarTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionScrollBarTest.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.assertTrue;
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectAllTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectAllTest.java
new file mode 100644
index 0000000000..26fdeedd7b
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectAllTest.java
@@ -0,0 +1,108 @@
+package com.vaadin.tests.components.grid;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.GridElement.GridCellElement;
+import com.vaadin.tests.components.grid.basics.GridBasicsTest;
+
+public class GridSelectAllTest extends GridBasicsTest {
+
+ // TODO remove once select all is added
+ @Test
+ public void testSelectAllCheckBoxNotVisble() {
+ setSelectionModelMulti();
+ GridCellElement header = getGridElement().getHeaderCell(0, 0);
+
+ assertFalse("Checkbox visible",
+ header.isElementPresent(By.tagName("input")));
+ }
+
+ // TODO enable once select all is added
+ // @Test
+ public void testSelectAllCheckbox() {
+ setSelectionModelMulti();
+ GridCellElement header = getGridElement().getHeaderCell(0, 0);
+
+ assertTrue("No checkbox", header.isElementPresent(By.tagName("input")));
+ header.findElement(By.tagName("input")).click();
+
+ for (int i = 0; i < GridBasicsTest.ROWS; i += 100) {
+ assertTrue("Row " + i + " was not selected.",
+ getGridElement().getRow(i).isSelected());
+ }
+
+ header.findElement(By.tagName("input")).click();
+ assertFalse("Row 100 was still selected",
+ getGridElement().getRow(100).isSelected());
+ }
+
+ // TODO enable once select all is added
+ // @Test
+ public void testSelectAllAndSort() {
+ setSelectionModelMulti();
+ GridCellElement header = getGridElement().getHeaderCell(0, 0);
+
+ header.findElement(By.tagName("input")).click();
+
+ getGridElement().getHeaderCell(0, 1).click();
+
+ WebElement selectionBox = getGridElement().getCell(4, 0)
+ .findElement(By.tagName("input"));
+ selectionBox.click();
+ selectionBox.click();
+
+ assertFalse("Exception occured on row reselection.", logContainsText(
+ "Exception occured, java.lang.IllegalStateException: No item id for key 101 found."));
+ }
+
+ // TODO enable once select all is added
+ // @Test
+ public void testSelectAllCheckboxWhenChangingModels() {
+ GridCellElement header;
+ header = getGridElement().getHeaderCell(0, 0);
+ assertFalse(
+ "Check box shouldn't have been in header for None Selection Model",
+ header.isElementPresent(By.tagName("input")));
+
+ setSelectionModelMulti();
+ header = getGridElement().getHeaderCell(0, 0);
+ assertTrue("Multi Selection Model should have select all checkbox",
+ header.isElementPresent(By.tagName("input")));
+
+ setSelectionModelSingle();
+ header = getGridElement().getHeaderCell(0, 0);
+ assertFalse(
+ "Check box shouldn't have been in header for Single Selection Model",
+ header.isElementPresent(By.tagName("input")));
+
+ // Single selection model shouldn't have selection column to begin with
+ assertFalse(
+ "Selection columnn shouldn't have been in grid for Single Selection Model",
+ getGridElement().getCell(0, 1)
+ .isElementPresent(By.tagName("input")));
+
+ setSelectionModelSingle();
+ header = getGridElement().getHeaderCell(0, 0);
+ assertFalse(
+ "Check box shouldn't have been in header for None Selection Model",
+ header.isElementPresent(By.tagName("input")));
+ }
+
+ // TODO enable once select all is added
+ // @Test
+ public void testSelectAllCheckboxWithHeaderOperations() {
+ setSelectionModelMulti();
+ selectMenuPath("Component", "Header", "Prepend row");
+ selectMenuPath("Component", "Header", "Append row");
+
+ GridCellElement header = getGridElement().getHeaderCell(1, 0);
+ assertTrue("Multi Selection Model should have select all checkbox",
+ header.isElementPresent(By.tagName("input")));
+ }
+
+}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/server/GridSelectionTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java
index 1bb989be1d..f7bd514e7b 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/server/GridSelectionTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java
@@ -1,19 +1,4 @@
-/*
- * 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.basicfeatures.server;
+package com.vaadin.tests.components.grid;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -29,11 +14,9 @@ import com.vaadin.testbench.By;
import com.vaadin.testbench.customelements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridRowElement;
-import com.vaadin.v7.tests.components.grid.basicfeatures.GridBasicFeatures;
-import com.vaadin.v7.tests.components.grid.basicfeatures.GridBasicFeaturesTest;
-
-public class GridSelectionTest extends GridBasicFeaturesTest {
+import com.vaadin.tests.components.grid.basics.GridBasicsTest;
+public class GridSelectionTest extends GridBasicsTest {
@Test
public void testSelectOnOff() throws Exception {
openTestURL();
@@ -95,11 +78,12 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
assertFalse("row shouldn't start out as selected",
getRow(0).isSelected());
- scrollGridVerticallyTo(10000); // make sure the row is out of cache
toggleFirstRowSelection();
+ assertTrue("row should be selected", getRow(0).isSelected());
+ scrollGridVerticallyTo(10000); // make sure the row is out of cache
toggleFirstRowSelection();
- scrollGridVerticallyTo(0); // make sure the row is out of cache
+ scrollGridVerticallyTo(0);
assertFalse(
"row shouldn't be selected when scrolling " + "back into view",
getRow(0).isSelected());
@@ -115,35 +99,36 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
grid.getRow(0).isSelected());
toggleFirstRowSelection();
assertTrue("First row was not selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Added 0, Removed none"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
grid.getCell(5, 0).click();
assertTrue("Fifth row was not selected.", getRow(5).isSelected());
assertFalse("First row was still selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Added 5, Removed 0"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[5]"));
grid.getCell(0, 6).click();
- assertTrue("Selection event was not correct",
- logContainsText("Added 0, Removed 5"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
toggleFirstRowSelection();
assertTrue("Selection event was not correct",
- logContainsText("Added none, Removed 0"));
+ logContainsText("SingleSelectionEvent: Selected: none"));
assertFalse("First row was still selected.", getRow(0).isSelected());
assertFalse("Fifth row was still selected.", getRow(5).isSelected());
grid.scrollToRow(600);
- grid.getCell(595, 3).click();
+ grid.getCell(595, 4).click();
assertTrue("Row 595 was not selected.", getRow(595).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Added 595, Removed none"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[595]"));
toggleFirstRowSelection();
assertFalse("Row 595 was still selected.", getRow(595).isSelected());
assertTrue("First row was not selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Added 0, Removed 595"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
}
- @Test
+ // TODO enable once select with space key is added
+ // @Test
public void testKeyboardSelection() {
openTestURL();
setSelectionModelMulti();
@@ -168,7 +153,8 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
grid.getRow(3).isSelected());
}
- @Test
+ // TODO enable once select with space key is added
+ // @Test
public void testKeyboardWithSingleSelection() {
openTestURL();
setSelectionModelSingle();
@@ -198,140 +184,16 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
}
@Test
- public void testSelectAllCheckbox() {
- openTestURL();
-
- setSelectionModelMulti();
- GridCellElement header = getGridElement().getHeaderCell(0, 0);
-
- assertTrue("No checkbox", header.isElementPresent(By.tagName("input")));
- header.findElement(By.tagName("input")).click();
-
- for (int i = 0; i < GridBasicFeatures.ROWS; i += 100) {
- assertTrue("Row " + i + " was not selected.",
- getGridElement().getRow(i).isSelected());
- }
-
- header.findElement(By.tagName("input")).click();
- assertFalse("Row 100 was still selected",
- getGridElement().getRow(100).isSelected());
- }
-
- @Test
- public void testSelectAllAndSort() {
- openTestURL();
-
- setSelectionModelMulti();
- GridCellElement header = getGridElement().getHeaderCell(0, 0);
-
- header.findElement(By.tagName("input")).click();
-
- getGridElement().getHeaderCell(0, 1).click();
-
- WebElement selectionBox = getGridElement().getCell(4, 0)
- .findElement(By.tagName("input"));
- selectionBox.click();
- selectionBox.click();
-
- assertFalse("Exception occured on row reselection.", logContainsText(
- "Exception occured, java.lang.IllegalStateException: No item id for key 101 found."));
- }
-
- @Test
- public void testSelectAllCheckboxWhenChangingModels() {
- openTestURL();
-
- GridCellElement header;
- header = getGridElement().getHeaderCell(0, 0);
- assertFalse(
- "Check box shouldn't have been in header for None Selection Model",
- header.isElementPresent(By.tagName("input")));
-
- setSelectionModelMulti();
- header = getGridElement().getHeaderCell(0, 0);
- assertTrue("Multi Selection Model should have select all checkbox",
- header.isElementPresent(By.tagName("input")));
-
- setSelectionModelSingle();
- header = getGridElement().getHeaderCell(0, 0);
- assertFalse(
- "Check box shouldn't have been in header for Single Selection Model",
- header.isElementPresent(By.tagName("input")));
-
- // Single selection model shouldn't have selection column to begin with
- assertFalse(
- "Selection columnn shouldn't have been in grid for Single Selection Model",
- getGridElement().getCell(0, 1)
- .isElementPresent(By.tagName("input")));
-
- setSelectionModelNone();
- header = getGridElement().getHeaderCell(0, 0);
- assertFalse(
- "Check box shouldn't have been in header for None Selection Model",
- header.isElementPresent(By.tagName("input")));
-
- }
-
- @Test
- public void testSelectAllCheckboxWithHeaderOperations() {
- openTestURL();
-
- setSelectionModelMulti();
- selectMenuPath("Component", "Header", "Prepend row");
- selectMenuPath("Component", "Header", "Append row");
-
- GridCellElement header = getGridElement().getHeaderCell(1, 0);
- assertTrue("Multi Selection Model should have select all checkbox",
- header.isElementPresent(By.tagName("input")));
-
- }
-
- @Test
- public void testToggleDeselectAllowed() {
- openTestURL();
-
- setSelectionModelSingle();
- // Deselect allowed already enabled
-
- getGridElement().getCell(5, 1).click();
- getGridElement().getCell(5, 1).click();
- assertFalse("Row should be not selected after two clicks",
- getRow(5).isSelected());
-
- selectMenuPath("Component", "State", "Single select allow deselect");
- getGridElement().getCell(5, 1).click();
- getGridElement().getCell(5, 1).click();
- assertTrue("Row should be selected after two clicks",
- getRow(5).isSelected());
-
- selectMenuPath("Component", "State", "Single select allow deselect");
- getGridElement().getCell(5, 1).click();
- assertFalse("Row should be not selected after another click",
- getRow(5).isSelected());
-
- // Also verify that state is updated together with the model
- setSelectionModelNone();
- selectMenuPath("Component", "State", "Single select allow deselect");
- setSelectionModelSingle();
-
- getGridElement().getCell(5, 1).click();
- getGridElement().getCell(5, 1).click();
-
- assertTrue("Row should stay selected after two clicks",
- getRow(5).isSelected());
- }
-
- @Test
public void testChangeSelectionModelUpdatesUI() {
openTestURL();
- setSelectionModelSingle();
+ setSelectionModelMulti();
getGridElement().getCell(5, 1).click();
assertTrue("Row should be selected after clicking",
getRow(5).isSelected());
- setSelectionModelNone();
+ setSelectionModelSingle();
assertFalse("Row should not be selected after changing selection model",
getRow(5).isSelected());
}
@@ -348,13 +210,16 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
.getAttribute("class")
.contains("v-grid-selection-checkbox"));
- GridCellElement header = getGridElement().getHeaderCell(0, 0);
- assertTrue("Select all CheckBox should have the proper style name set",
- header.findElement(By.tagName("span")).getAttribute("class")
- .contains("v-grid-select-all-checkbox"));
+ // TODO enable once select all is added
+ // GridCellElement header = getGridElement().getHeaderCell(0, 0);
+ // assertTrue("Select all CheckBox should have the proper style name
+ // set",
+ // header.findElement(By.tagName("span")).getAttribute("class")
+ // .contains("v-grid-select-all-checkbox"));
}
- @Test
+ // TODO enable once select all is added
+ // @Test
public void testServerSideSelectTogglesSelectAllCheckBox() {
openTestURL();
@@ -388,7 +253,7 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
setSelectionModelSingle();
getGridElement().getCell(0, 0).click();
- selectMenuPath("Component", "Body rows", "Remove selected rows");
+ selectMenuPath("Component", "Body rows", "Deselect all");
assertFalse(
"Unexpected NullPointerException when removing selected rows",
@@ -407,23 +272,12 @@ public class GridSelectionTest extends GridBasicFeaturesTest {
}, 5);
}
- private void setSelectionModelMulti() {
- selectMenuPath("Component", "State", "Selection mode", "multi");
- }
-
- private void setSelectionModelSingle() {
- selectMenuPath("Component", "State", "Selection mode", "single");
- }
-
- private void setSelectionModelNone() {
- selectMenuPath("Component", "State", "Selection mode", "none");
- }
-
private void toggleFirstRowSelection() {
- selectMenuPath("Component", "Body rows", "Select first row");
+ selectMenuPath("Component", "Body rows", "Toggle first row selection");
}
private GridRowElement getRow(int i) {
return getGridElement().getRow(i);
}
+
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicSelectionTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicSelectionTest.java
index 2c329ca01c..82de23a90b 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicSelectionTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicSelectionTest.java
@@ -46,32 +46,32 @@ public class GridBasicSelectionTest extends GridBasicsTest {
grid.getRow(0).isSelected());
toggleFirstRowSelection();
assertTrue("First row was not selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Selected: DataObject[0]"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
grid.getCell(5, 0).click();
assertTrue("Fifth row was not selected.", getRow(5).isSelected());
assertFalse("First row was still selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Selected: DataObject[5]"));
- grid.getCell(0, 6).click();
- assertTrue("Selection event was not correct",
- logContainsText("Selected: DataObject[0]"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[5]"));
+ grid.getCell(0, 3).click();
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
toggleFirstRowSelection();
assertTrue("Selection event was not correct",
- logContainsText("Selected: null"));
+ logContainsText("SingleSelectionEvent: Selected: none"));
assertFalse("First row was still selected.", getRow(0).isSelected());
assertFalse("Fifth row was still selected.", getRow(5).isSelected());
grid.scrollToRow(600);
grid.getCell(595, 3).click();
assertTrue("Row 595 was not selected.", getRow(595).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Selected: DataObject[595]"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[595]"));
toggleFirstRowSelection();
assertFalse("Row 595 was still selected.", getRow(595).isSelected());
assertTrue("First row was not selected.", getRow(0).isSelected());
- assertTrue("Selection event was not correct",
- logContainsText("Selected: DataObject[0]"));
+ assertTrue("Selection event was not correct", logContainsText(
+ "SingleSelectionEvent: Selected: DataObject[0]"));
}
private void toggleFirstRowSelection() {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicsTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicsTest.java
index 55098eb768..ff6789f600 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridBasicsTest.java
@@ -26,6 +26,8 @@ import com.vaadin.v7.tests.components.grid.basicfeatures.GridBasicFeaturesTest.C
*/
public abstract class GridBasicsTest extends MultiBrowserTest {
+ public static final int ROWS = 1000;
+
/* Identical List of test data */
private List<DataObject> testData;
@@ -131,7 +133,7 @@ public abstract class GridBasicsTest extends MultiBrowserTest {
return 5;
} else {
int half = columnHeader.getSize().getWidth() / 2;
- return half + (half / 2);
+ return half + half / 2;
}
}
@@ -197,8 +199,7 @@ public abstract class GridBasicsTest extends MultiBrowserTest {
List<WebElement> elements = sidebar
.findElements(By.className("column-hiding-toggle"));
for (WebElement e : elements) {
- if ((e.getText().toLowerCase())
- .startsWith("column " + columnIndex)) {
+ if (e.getText().toLowerCase().startsWith("column " + columnIndex)) {
return e;
}
}
@@ -214,4 +215,17 @@ public abstract class GridBasicsTest extends MultiBrowserTest {
getGridVerticalScrollbar())).intValue();
}
+ protected void setSelectionModelMulti() {
+ selectMenuPath("Component", "State", "Selection model", "multi");
+ }
+
+ protected void setSelectionModelSingle() {
+ selectMenuPath("Component", "State", "Selection model", "single");
+ }
+
+ // TODO enable once select all is added
+ // protected void setSelectionModelNone() {
+ // selectMenuPath("Component", "State", "Selection model", "none");
+ // }
+
}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridSelectAllCellTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridSelectAllCellTest.java
deleted file mode 100644
index 6b1feed7c1..0000000000
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridSelectAllCellTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.vaadin.v7.tests.components.grid;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
-
-import java.io.IOException;
-
-import org.junit.Test;
-import org.openqa.selenium.By;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.interactions.Actions;
-
-import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.testbench.customelements.GridElement;
-
-public class GridSelectAllCellTest extends MultiBrowserTest {
-
- @Override
- public void setup() throws Exception {
- super.setup();
-
- openTestURL();
- }
-
- @Test
- public void selectAllCellCanBeClicked() throws IOException {
- GridElement.GridCellElement selectAllCell = $(GridElement.class).first()
- .getHeaderCell(0, 0);
-
- new Actions(getDriver()).moveToElement(selectAllCell, 2, 2).click()
- .perform();
-
- WebElement selectAllCheckbox = selectAllCell
- .findElement(By.cssSelector("input"));
- assertThat(selectAllCheckbox.isSelected(), is(true));
- }
-}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/SelectDuringInitTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/SelectDuringInitTest.java
deleted file mode 100644
index 052aae5a60..0000000000
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/SelectDuringInitTest.java
+++ /dev/null
@@ -1,37 +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.Test;
-
-import com.vaadin.testbench.parallel.TestCategory;
-import com.vaadin.tests.tb3.SingleBrowserTest;
-import com.vaadin.testbench.customelements.GridElement;
-
-@TestCategory("grid")
-public class SelectDuringInitTest extends SingleBrowserTest {
-
- @Test
- public void testSelectDuringInit() {
- openTestURL();
-
- GridElement grid = $(GridElement.class).first();
-
- Assert.assertTrue(grid.getRow(1).isSelected());
- }
-
-}