Procházet zdrojové kódy

Grid UI tests migration P2.

Fixes vaadin/framework8-issues#588
tags/8.0.0.beta2
Denis před 7 roky
rodič
revize
adbe38eea2

uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSize.java → uitest/src/main/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSize.java Zobrazit soubor

@@ -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)

uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplay.java → uitest/src/main/java/com/vaadin/tests/components/grid/GridCheckBoxDisplay.java Zobrazit soubor

@@ -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);

uitest/src/main/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandler.java → uitest/src/main/java/com/vaadin/tests/components/grid/GridClientDataChangeHandler.java Zobrazit soubor

@@ -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)

uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridCellFocusOnResetSizeWidget.java → uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridCellFocusOnResetSizeWidget.java Zobrazit soubor

@@ -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();

uitest/src/main/java/com/vaadin/tests/widgetset/client/v7/grid/GridDataChangeHandlerWidget.java → uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/GridDataChangeHandlerWidget.java Zobrazit soubor

@@ -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;

+ 309
- 0
uitest/src/main/java/com/vaadin/tests/widgetset/client/grid/PureGWTTestApplication.java Zobrazit soubor

@@ -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;
}
}

uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCellFocusOnResetSizeTest.java → uitest/src/test/java/com/vaadin/tests/components/grid/GridCellFocusOnResetSizeTest.java Zobrazit soubor

@@ -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;


uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridCheckBoxDisplayTest.java → uitest/src/test/java/com/vaadin/tests/components/grid/GridCheckBoxDisplayTest.java Zobrazit soubor

@@ -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;

uitest/src/test/java/com/vaadin/v7/tests/components/grid/GridClientDataChangeHandlerTest.java → uitest/src/test/java/com/vaadin/tests/components/grid/GridClientDataChangeHandlerTest.java Zobrazit soubor

@@ -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;


+ 5
- 1
uitest/src/test/java/com/vaadin/v7/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java Zobrazit soubor

@@ -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);

Načítá se…
Zrušit
Uložit