summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin')
-rw-r--r--uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatio.java108
-rw-r--r--uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatioTest.java53
-rw-r--r--uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCells.java146
-rw-r--r--uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCellsTest.java57
4 files changed, 364 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatio.java b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatio.java
new file mode 100644
index 0000000000..c20148743a
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatio.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2000-2013 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.gridlayout;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+
+public class GridLayoutExpandRatio extends AbstractTestUI {
+ HorizontalLayout layout;
+ GridLayout gridLayout;
+ GridLayout gridLayout2;
+ private static final int ROWS = 5;
+ private static final int COLS = 5;
+ private Label[][] labels;
+
+ @Override
+ protected void setup(VaadinRequest request) {
+
+ labels = new Label[ROWS][COLS];
+ layout = new HorizontalLayout();
+ gridLayout = new GridLayout(ROWS, COLS);
+ layout.setImmediate(true);
+ gridLayout.setImmediate(true);
+ gridLayout2 = new GridLayout(4, 4);
+ for (int i = 0; i < ROWS; i++) {
+ for (int j = 0; j < COLS; j++) {
+ Label label = new Label("Slot " + i + " " + j);
+ label.setImmediate(true);
+ labels[i][j] = label;
+ gridLayout.addComponent(label, j, i);
+ if (!(i == 2 || j == 2)) {
+ Label label2 = new Label("Slot " + i + " " + j);
+ gridLayout2.addComponent(label2);
+ }
+ }
+ }
+ gridLayout.setHeight("500px");
+ gridLayout.setWidth("500px");
+ gridLayout.setSpacing(true);
+
+ gridLayout2.setHeight("500px");
+ gridLayout2.setWidth("500px");
+ gridLayout2.setSpacing(true);
+ addComponent(layout);
+ HorizontalLayout space = new HorizontalLayout();
+ space.setWidth("100px");
+ layout.addComponent(gridLayout);
+ layout.addComponent(space);
+ layout.addComponent(gridLayout2);
+
+ setExpandRatio();
+ addComponent(new Button("Hide/show both middle Column and row",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ hideComponetns();
+ }
+ }));
+ }
+
+ private void hideComponetns() {
+ for (int i = 0; i < ROWS; i++) {
+ for (int j = 0; j < COLS; j++) {
+ if (i == 2 || j == 2) {
+ if (labels[i][j].isVisible()) {
+ labels[i][j].setVisible(false);
+ } else {
+ labels[i][j].setVisible(true);
+ }
+ }
+ }
+ }
+ }
+
+ private void setExpandRatio() {
+ gridLayout.setRowExpandRatio(2, 5);
+ gridLayout2.setRowExpandRatio(1, 5);
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8855;
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "If row/column doesn't have elements but have an expand ratio set, it should be shown as a empty row/column";
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatioTest.java b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatioTest.java
new file mode 100644
index 0000000000..7d5ad1fbc4
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExpandRatioTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2000-2013 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.gridlayout;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.GridLayoutElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class GridLayoutExpandRatioTest extends MultiBrowserTest {
+ @Test
+ public void gridLayoutExpandRatioTest() {
+ openTestURL();
+ GridLayoutElement gridLayout5x5 = $(GridLayoutElement.class).get(0);
+ GridLayoutElement gridLayout4x4 = $(GridLayoutElement.class).get(1);
+ ButtonElement hidingButton = $(ButtonElement.class).get(0);
+ hidingButton.click();
+ List<WebElement> slots5x5 = gridLayout5x5.findElements(By
+ .className("v-gridlayout-slot"));
+ List<WebElement> slots4x4 = gridLayout4x4.findElements(By
+ .className("v-gridlayout-slot"));
+ assertEquals("Different amount of slots", slots5x5.size(),
+ slots4x4.size());
+ for (int i = 0; i < slots5x5.size(); i++) {
+ WebElement compared = slots5x5.get(i);
+ WebElement actual = slots4x4.get(i);
+ assertEquals("Different top coordinate for element " + i,
+ compared.getCssValue("top"), actual.getCssValue("top"));
+ assertEquals("Different left coordinate for element " + i,
+ compared.getCssValue("left"), actual.getCssValue("left"));
+ }
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCells.java b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCells.java
new file mode 100644
index 0000000000..16b3742c64
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCells.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2000-2013 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.gridlayout;
+
+import java.util.Random;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+
+public class GridLayoutHideMiddleCells extends AbstractTestUI {
+ GridLayout gridLayout;
+ GridLayout gridLayout2;
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final int ROWS = 5;
+ final int COLS = 5;
+
+ final Label[][] labels = new Label[ROWS][COLS];
+ VerticalLayout mainLayout = new VerticalLayout();
+ HorizontalLayout horLayout = new HorizontalLayout();
+ gridLayout = new GridLayout(ROWS, COLS);
+ gridLayout2 = new GridLayout(4, 4);
+ for (int i = 0; i < 5; i++) {
+ for (int j = 0; j < 5; j++) {
+ Label label = new Label("Slot " + i + " " + j);
+ labels[i][j] = label;
+ gridLayout.addComponent(label);
+ if (!(i == 2 || j == 2)) {
+ Label label2 = new Label("Slot " + i + " " + j);
+ gridLayout2.addComponent(label2);
+ }
+ }
+ }
+ setContent(mainLayout);
+ gridLayout.setHeight("500px");
+ gridLayout.setWidth("500px");
+ gridLayout.setSpacing(true);
+
+ addComponent(gridLayout);
+ addComponent(gridLayout2);
+ mainLayout.addComponent(horLayout);
+ gridLayout2.setHeight("500px");
+ gridLayout2.setWidth("500px");
+ gridLayout2.setSpacing(true);
+ horLayout.addComponent(gridLayout);
+ horLayout.addComponent(gridLayout2);
+
+ mainLayout.addComponent(new Button(
+ "Hide/show both middle Column and row",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ for (int i = 0; i < ROWS; i++) {
+ for (int j = 0; j < COLS; j++) {
+ if (j == 2 || i == 2) {
+ if (labels[i][j].isVisible()) {
+ labels[i][j].setVisible(false);
+ } else {
+ labels[i][j].setVisible(true);
+ }
+ }
+ }
+ }
+ }
+ }));
+ mainLayout.addComponent(new Button("Hide/show middle Column",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ for (int i = 0; i < ROWS; i++) {
+ if (labels[i][2].isVisible()) {
+ labels[i][2].setVisible(false);
+ } else {
+ labels[i][2].setVisible(true);
+ }
+ }
+ }
+ }));
+ mainLayout.addComponent(new Button("Hide/show middle Row",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ for (int j = 0; j < COLS; j++) {
+ if (labels[2][j].isVisible()) {
+ labels[2][j].setVisible(false);
+ } else {
+ labels[2][j].setVisible(true);
+ }
+ }
+ }
+
+ }));
+ mainLayout.addComponent(new Button("Hide Random button",
+ new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ // TODO Auto-generated method stub
+ Random rand = new Random();
+ int i = rand.nextInt(ROWS);
+ int j = rand.nextInt(COLS);
+ if (labels[i][j].isVisible()) {
+ labels[i][j].setVisible(false);
+ } else {
+ labels[i][j].setVisible(true);
+ }
+ }
+ }));
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 8855;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
+ */
+ @Override
+ protected String getTestDescription() {
+ return "Changing the number of visible fields a GridLayout with spacing should not cause additional empty space on the place of invisible fields";
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCellsTest.java b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCellsTest.java
new file mode 100644
index 0000000000..d0225275f7
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutHideMiddleCellsTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2000-2013 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.gridlayout;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.GridLayoutElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class GridLayoutHideMiddleCellsTest extends MultiBrowserTest {
+ @Test
+ public void gridLayoutInvisibleElementsTest() {
+ openTestURL();
+ GridLayoutElement gridLayout5x5 = $(GridLayoutElement.class).get(0);
+ GridLayoutElement gridLayout4x4 = $(GridLayoutElement.class).get(1);
+ ButtonElement hidingButton = $(ButtonElement.class).get(0);
+ hidingButton.click();
+ List<WebElement> slots5x5 = gridLayout5x5.findElements(By
+ .className("v-gridlayout-slot"));
+ List<WebElement> slots4x4 = gridLayout4x4.findElements(By
+ .className("v-gridlayout-slot"));
+ assertEquals("Different amount of slots", slots5x5.size(),
+ slots4x4.size());
+
+ for (int i = 0; i < slots5x5.size(); i++) {
+ assertEquals("Different left coordinate for element " + i, slots5x5
+ .get(i).getCssValue("left"),
+ slots4x4.get(i).getCssValue("left"));
+ }
+ for (int i = 0; i < slots5x5.size(); i++) {
+ assertEquals("Different top coordinate for element " + i, slots5x5
+ .get(i).getCssValue("top"),
+ slots4x4.get(i).getCssValue("top"));
+ }
+ }
+
+}