summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis <denis@vaadin.com>2017-01-02 13:43:29 +0200
committerIlia Motornyi <elmot@vaadin.com>2017-01-02 13:43:29 +0200
commitadbe38eea2174322e637c56399493b62a1fdd444 (patch)
treef65ad48906710d99d38486b248a35e6d7b432d39
parent9c6831bab067ccdb47c3063f2e77d3c0e7fe3440 (diff)
downloadvaadin-framework-adbe38eea2174322e637c56399493b62a1fdd444.tar.gz
vaadin-framework-adbe38eea2174322e637c56399493b62a1fdd444.zip
Grid UI tests migration P2.
Fixes vaadin/framework8-issues#588
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSize.java)4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridCheckBoxDisplay.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplay.java)41
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java (renamed from uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandler.java)4
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridCellFocusOnResetSizeWidget.java (renamed from uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridCellFocusOnResetSizeWidget.java)13
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridDataChangeHandlerWidget.java (renamed from uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridDataChangeHandlerWidget.java)9
-rw-r--r--uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/PureGWTTestApplication.java309
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSizeTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSizeTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridCheckBoxDisplayTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplayTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridClientDataChangeHandlerTest.java (renamed from uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandlerTest.java)2
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java6
10 files changed, 361 insertions, 31 deletions
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSize.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java
index 40d3ff3df1..bfe3244554 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSize.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.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.GridCellFocusOnResetSizeWidget;
+import com.vaadin.tests.widgetset.client.grid.GridCellFocusOnResetSizeWidget;
import com.vaadin.tests.widgetset.server.TestWidgetComponent;
@Widgetset(TestingWidgetSet.NAME)
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplay.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCheckBoxDisplay.java
index 60019fc201..a09aba038c 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplay.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridCheckBoxDisplay.java
@@ -13,36 +13,53 @@
* 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.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
+import com.vaadin.data.Binder;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
-import com.vaadin.v7.data.util.BeanItemContainer;
-import com.vaadin.v7.ui.Grid;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.Column;
+import com.vaadin.ui.TextField;
public class GridCheckBoxDisplay extends AbstractReindeerTestUI {
private static final long serialVersionUID = -5575892909354637168L;
- private BeanItemContainer<Todo> todoContainer = new BeanItemContainer<>(
- Todo.class);
@Override
protected void setup(VaadinRequest request) {
- todoContainer.addBean(new Todo("Done task", true));
- todoContainer.addBean(new Todo("Not done", false));
+ List<Todo> items = Arrays.asList(new Todo("Done task", true),
+ new Todo("Not done", false));
- Grid grid = new Grid(todoContainer);
+ Grid<Todo> grid = new Grid<>();
grid.setSizeFull();
- grid.setColumnOrder("done", "task");
- grid.getColumn("done").setWidth(75);
- grid.getColumn("task").setExpandRatio(1);
+ TextField taskField = new TextField();
+ CheckBox doneField = new CheckBox();
+ Binder<Todo> binder = new Binder<>();
+
+ binder.bind(taskField, Todo::getTask, Todo::setTask);
+ binder.bind(doneField, Todo::isDone, Todo::setDone);
+
+ grid.getEditor().setBinder(binder);
+ grid.getEditor().setEnabled(true);
+
+ Column<Todo, String> column = grid
+ .addColumn(todo -> String.valueOf(todo.isDone()));
+ column.setWidth(75);
+ column.setEditorComponent(doneField);
+
+ grid.addColumn(Todo::getTask).setExpandRatio(1)
+ .setEditorComponent(taskField);
grid.setSelectionMode(Grid.SelectionMode.SINGLE);
- grid.setEditorEnabled(true);
+ grid.setItems(items);
getLayout().addComponent(grid);
getLayout().setExpandRatio(grid, 1);
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandler.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java
index b8f272f6bf..50f7e40837 100644
--- a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandler.java
+++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.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.GridDataChangeHandlerWidget;
+import com.vaadin.tests.widgetset.client.grid.GridDataChangeHandlerWidget;
import com.vaadin.tests.widgetset.server.TestWidgetComponent;
@Widgetset(TestingWidgetSet.NAME)
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridCellFocusOnResetSizeWidget.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridCellFocusOnResetSizeWidget.java
index d2dbf78739..b5e1e824eb 100644
--- a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridCellFocusOnResetSizeWidget.java
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridCellFocusOnResetSizeWidget.java
@@ -13,7 +13,7 @@
* 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.List;
@@ -23,10 +23,10 @@ import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.vaadin.client.data.DataChangeHandler;
import com.vaadin.client.data.DataSource;
+import com.vaadin.client.renderers.HtmlRenderer;
+import com.vaadin.client.widget.grid.selection.SelectionModel;
+import com.vaadin.client.widgets.Grid;
import com.vaadin.shared.Registration;
-import com.vaadin.v7.client.renderers.HtmlRenderer;
-import com.vaadin.v7.client.widgets.Grid;
-import com.vaadin.v7.client.widgets.Grid.SelectionMode;
public class GridCellFocusOnResetSizeWidget
extends PureGWTTestApplication<Grid<String[]>> {
@@ -90,7 +90,8 @@ public class GridCellFocusOnResetSizeWidget
private class Col extends Grid.Column<String, String[]> {
public Col(String header) {
- super(header, new HtmlRenderer());
+ super(header);
+ setRenderer(new HtmlRenderer());
}
@Override
@@ -103,7 +104,7 @@ public class GridCellFocusOnResetSizeWidget
public GridCellFocusOnResetSizeWidget() {
super(new Grid<String[]>());
grid = getTestedWidget();
- grid.setSelectionMode(SelectionMode.NONE);
+ grid.setSelectionModel(new SelectionModel.NoSelectionModel<>());
grid.setWidth("300px");
grid.addColumn(new Col("Foo"));
final MyDataSource dataSource = new MyDataSource();
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridDataChangeHandlerWidget.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridDataChangeHandlerWidget.java
index a354580645..35562c9000 100644
--- a/uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridDataChangeHandlerWidget.java
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridDataChangeHandlerWidget.java
@@ -13,7 +13,7 @@
* 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.Arrays;
import java.util.List;
@@ -24,9 +24,8 @@ import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.SimplePanel;
import com.vaadin.client.data.AbstractRemoteDataSource;
-import com.vaadin.v7.client.widget.grid.datasources.ListDataSource;
-import com.vaadin.v7.client.widgets.Grid;
-import com.vaadin.v7.client.widgets.Grid.Column;
+import com.vaadin.client.widget.grid.datasources.ListDataSource;
+import com.vaadin.client.widgets.Grid;
public class GridDataChangeHandlerWidget extends Composite {
@@ -95,7 +94,7 @@ public class GridDataChangeHandlerWidget extends Composite {
panel.setWidget(grid);
grid.setDataSource(new RemoteDelayedDataSource(
Arrays.asList("A", "B", "C", "D", "E")));
- grid.addColumn(new Column<String, String>("letter") {
+ grid.addColumn(new Grid.Column<String, String>("letter") {
@Override
public String getValue(String row) {
return row;
diff --git a/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/PureGWTTestApplication.java b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/PureGWTTestApplication.java
new file mode 100644
index 0000000000..d1a410e7af
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/PureGWTTestApplication.java
@@ -0,0 +1,309 @@
+/*
+ * 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.widgetset.client.grid;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.LayoutPanel;
+import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.Panel;
+import com.vaadin.client.ui.SubPartAware;
+
+/**
+ * Pure GWT Test Application base for testing features of a single widget;
+ * provides a menu system and convenience method for adding items to it.
+ *
+ * @since
+ * @author Vaadin Ltd
+ */
+public abstract class PureGWTTestApplication<T> extends DockLayoutPanel
+ implements SubPartAware {
+
+ /**
+ * Class describing a menu item with an associated action
+ */
+ public static class Command {
+ private final String title;
+ private final ScheduledCommand command;
+
+ /**
+ * Creates a Command object, which is used as an action entry in the
+ * Menu
+ *
+ * @param t
+ * a title string
+ * @param cmd
+ * a scheduled command that is executed when this item is
+ * selected
+ */
+ public Command(String t, ScheduledCommand cmd) {
+ title = t;
+ command = cmd;
+ }
+
+ /**
+ * Returns the title of this command item
+ *
+ * @return a title string
+ */
+ public final String getTitle() {
+ return title;
+ }
+
+ /**
+ * Returns the actual scheduled command of this command item
+ *
+ * @return a scheduled command
+ */
+ public final ScheduledCommand getCommand() {
+ return command;
+ }
+ }
+
+ /**
+ * A menu object, providing a complete system for building a hierarchical
+ * menu bar system.
+ */
+ public static class Menu {
+
+ private final String title;
+ private final MenuBar menubar;
+ private final List<Menu> children;
+ private final List<Command> items;
+
+ /**
+ * Create base-level menu, without a title. This is the root menu bar,
+ * which can be attached to a client application window. All other Menus
+ * should be added as child menus to this Menu, in order to maintain a
+ * nice hierarchy.
+ */
+ private Menu() {
+ title = "";
+ menubar = new MenuBar();
+ menubar.getElement().setId("menu");
+ children = new ArrayList<>();
+ items = new ArrayList<>();
+ }
+
+ /**
+ * Create a sub-menu, with a title.
+ *
+ * @param title
+ */
+ public Menu(String title) {
+ this.title = title;
+ menubar = new MenuBar(true);
+ children = new ArrayList<>();
+ items = new ArrayList<>();
+ }
+
+ /**
+ * Return the GWT {@link MenuBar} object that provides the widget for
+ * this Menu
+ *
+ * @return a menubar object
+ */
+ public MenuBar getMenuBar() {
+ return menubar;
+ }
+
+ /**
+ * Returns the title of this menu entry
+ *
+ * @return a title string
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * Adds a child menu entry to this menu. The title for this entry is
+ * taken from the Menu object argument.
+ *
+ * @param m
+ * another Menu object
+ */
+ public void addChildMenu(Menu m) {
+ menubar.addItem(m.title, m.menubar);
+ children.add(m);
+ }
+
+ /**
+ * Tests for the existence of a child menu by title at this level of the
+ * menu hierarchy
+ *
+ * @param title
+ * a title string
+ * @return true, if this menu has a direct child menu with the specified
+ * title, otherwise false
+ */
+ public boolean hasChildMenu(String title) {
+ return getChildMenu(title) != null;
+ }
+
+ /**
+ * Gets a reference to a child menu with a certain title, that is a
+ * direct child of this menu level.
+ *
+ * @param title
+ * a title string
+ * @return a Menu object with the specified title string, or null, if
+ * this menu doesn't have a direct child with the specified
+ * title.
+ */
+ public Menu getChildMenu(String title) {
+ for (Menu m : children) {
+ if (m.title.equals(title)) {
+ return m;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Adds a command item to the menu. When the entry is clicked, the
+ * command is executed.
+ *
+ * @param cmd
+ * a command object.
+ */
+ public void addCommand(Command cmd) {
+ menubar.addItem(cmd.title, cmd.command);
+ items.add(cmd);
+ }
+
+ /**
+ * Tests for the existence of a {@link Command} that is the direct child
+ * of this level of menu.
+ *
+ * @param title
+ * the command's title
+ * @return true, if this menu level includes a command item with the
+ * specified title. Otherwise false.
+ */
+ public boolean hasCommand(String title) {
+ return getCommand(title) != null;
+ }
+
+ /**
+ * Gets a reference to a {@link Command} item that is the direct child
+ * of this level of menu.
+ *
+ * @param title
+ * the command's title
+ * @return a command, if found in this menu level, otherwise null.
+ */
+ public Command getCommand(String title) {
+ for (Command c : items) {
+ if (c.title.equals(title)) {
+ return c;
+ }
+ }
+ return null;
+ }
+ }
+
+ /**
+ * Base level menu object, provides visible menu bar
+ */
+ private final Menu menu;
+ private final T testedWidget;
+
+ /**
+ * This constructor creates the basic menu bar and adds it to the top of the
+ * parent {@link DockLayoutPanel}
+ */
+ protected PureGWTTestApplication(T widget) {
+ super(Unit.PX);
+ Panel menuPanel = new LayoutPanel();
+ menu = new Menu();
+ menuPanel.add(menu.getMenuBar());
+ addNorth(menuPanel, 25);
+ testedWidget = widget;
+ }
+
+ /**
+ * Connect an item to the menu structure
+ *
+ * @param cmd
+ * a scheduled command; see google's docs
+ * @param menupath
+ * path to the item
+ */
+ public void addMenuCommand(String title, ScheduledCommand cmd,
+ String... menupath) {
+ Menu m = createMenuPath(menupath);
+
+ m.addCommand(new Command(title, cmd));
+ }
+
+ /**
+ * Create a menu path, if one doesn't already exist, and return the last
+ * menu in the series.
+ *
+ * @param path
+ * a varargs list or array of strings describing a menu path,
+ * e.g. "File", "Recent", "User Files", which would result in the
+ * File menu having a submenu called "Recent" which would have a
+ * submenu called "User Files".
+ * @return the last Menu object specified by the path
+ */
+ private Menu createMenuPath(String... path) {
+ Menu m = menu;
+
+ for (String p : path) {
+ Menu sub = m.getChildMenu(p);
+
+ if (sub == null) {
+ sub = new Menu(p);
+ m.addChildMenu(sub);
+ }
+ m = sub;
+ }
+
+ return m;
+ }
+
+ @Override
+ public Element getSubPartElement(String subPart) {
+ if (testedWidget instanceof SubPartAware) {
+ return ((SubPartAware) testedWidget).getSubPartElement(subPart);
+ }
+ return null;
+ }
+
+ @Override
+ public String getSubPartName(Element subElement) {
+ if (testedWidget instanceof SubPartAware) {
+ return ((SubPartAware) testedWidget).getSubPartName(subElement);
+ }
+ return null;
+ }
+
+ /**
+ * Gets the tested widget.
+ *
+ * @return tested widget
+ */
+ public T getTestedWidget() {
+ return testedWidget;
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSizeTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSizeTest.java
index 98d5b250fc..e58d940a3d 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSizeTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSizeTest.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/v7/tests/components/grid/GridCheckBoxDisplayTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCheckBoxDisplayTest.java
index 87c7a7cf72..57229c9a4d 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplayTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridCheckBoxDisplayTest.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 org.junit.Assert;
import org.junit.Test;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandlerTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridClientDataChangeHandlerTest.java
index 1ff8de9100..d0d8868b72 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandlerTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridClientDataChangeHandlerTest.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;
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
index 7969e55f66..090ed06690 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
+++ b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
@@ -25,15 +25,19 @@ import org.junit.Test;
import com.vaadin.testbench.By;
import com.vaadin.testbench.customelements.GridElement;
import com.vaadin.testbench.elements.NotificationElement;
+import com.vaadin.testbench.elementsbase.ServerClass;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.v7.tests.components.grid.GridCellFocusOnResetSizeTest.MyGridElement;
@TestCategory("grid")
public class GridDefaultTextRendererTest extends MultiBrowserTest {
private GridElement grid;
+ @ServerClass("com.vaadin.tests.widgetset.server.TestWidgetComponent")
+ public static class MyGridElement extends GridElement {
+ }
+
@Before
public void init() {
setDebug(true);