diff options
Diffstat (limited to 'uitest/src/com/vaadin')
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")); + } + } + +} |