From 4454e6bdc13dec8198c9e5e95557fcf59f9f97e4 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 13 Apr 2017 10:25:20 +0300 Subject: Provide GridLayout size and cell elements to JS and TB (#9019) --- .../tests/elements/gridlayout/GridLayoutUI.java | 44 +++++++++++++ .../elements/gridlayout/GridLayoutUITest.java | 72 ++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 uitest/src/main/java/com/vaadin/tests/elements/gridlayout/GridLayoutUI.java create mode 100644 uitest/src/test/java/com/vaadin/tests/elements/gridlayout/GridLayoutUITest.java (limited to 'uitest') diff --git a/uitest/src/main/java/com/vaadin/tests/elements/gridlayout/GridLayoutUI.java b/uitest/src/main/java/com/vaadin/tests/elements/gridlayout/GridLayoutUI.java new file mode 100644 index 0000000000..698a64f747 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/elements/gridlayout/GridLayoutUI.java @@ -0,0 +1,44 @@ +/* + * 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.elements.gridlayout; + +import com.vaadin.annotations.Widgetset; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.Label; + +@Widgetset("com.vaadin.DefaultWidgetSet") +public class GridLayoutUI extends AbstractTestUI { + + public static final String ONE_ROW_ONE_COL = "oneRowOneCol"; + public static final String TEN_ROWS_TEN_COLS = "tenRowsTenCols"; + + @Override + protected void setup(VaadinRequest request) { + GridLayout oneRowZeroCols = new GridLayout(1, 1); + oneRowZeroCols.setId(ONE_ROW_ONE_COL); + addComponent(oneRowZeroCols); + + GridLayout tenTimesTen = new GridLayout(10, 10); + tenTimesTen.addComponent(new Label("5-5"), 5, 5); + tenTimesTen.addComponent(new Button("7-7 8-8"), 7, 7, 8, 8); + tenTimesTen.setId(TEN_ROWS_TEN_COLS); + addComponent(tenTimesTen); + } + +} diff --git a/uitest/src/test/java/com/vaadin/tests/elements/gridlayout/GridLayoutUITest.java b/uitest/src/test/java/com/vaadin/tests/elements/gridlayout/GridLayoutUITest.java new file mode 100644 index 0000000000..78d1fe8deb --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/elements/gridlayout/GridLayoutUITest.java @@ -0,0 +1,72 @@ +/* + * 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.elements.gridlayout; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.elements.GridLayoutElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +public class GridLayoutUITest extends SingleBrowserTest { + + @Test + public void getRows() { + openTestURL(); + Assert.assertEquals(1, $(GridLayoutElement.class) + .id(GridLayoutUI.ONE_ROW_ONE_COL).getRowCount()); + Assert.assertEquals(10, $(GridLayoutElement.class) + .id(GridLayoutUI.TEN_ROWS_TEN_COLS).getRowCount()); + } + + @Test + public void getColumns() { + openTestURL(); + Assert.assertEquals(1, $(GridLayoutElement.class) + .id(GridLayoutUI.ONE_ROW_ONE_COL).getColumnCount()); + Assert.assertEquals(10, $(GridLayoutElement.class) + .id(GridLayoutUI.TEN_ROWS_TEN_COLS).getColumnCount()); + } + + @Test + public void getCell() { + openTestURL(); + GridLayoutElement grid = $(GridLayoutElement.class) + .id(GridLayoutUI.TEN_ROWS_TEN_COLS); + + WebElement cell55 = grid.getCell(5, 5); + Assert.assertEquals("v-gridlayout-slot", cell55.getAttribute("class")); + Assert.assertEquals("5-5", cell55.getText()); + + try { + grid.getCell(4, 4); + Assert.fail("Should throw for empty cell"); + } catch (NoSuchElementException e) { + } + + WebElement cell77 = grid.getCell(7, 7); + Assert.assertEquals("v-gridlayout-slot", cell77.getAttribute("class")); + Assert.assertEquals("7-7 8-8", cell77.getText()); + + try { + grid.getCell(7, 8); + Assert.fail("Should throw for merged cell"); + } catch (NoSuchElementException e) { + } + } +} -- cgit v1.2.3