diff options
author | Leif Åstrand <leif@vaadin.com> | 2015-03-20 16:51:45 +0200 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2015-03-20 16:51:45 +0200 |
commit | 7fa43952ca1b1e26afe79f5c0a75f9e735431be0 (patch) | |
tree | 7464dac0d98c1127bef647d12f1237e77b87bc30 /uitest | |
parent | 04272699b8f429a2bc3b8f0a41e20a604213895e (diff) | |
download | vaadin-framework-7fa43952ca1b1e26afe79f5c0a75f9e735431be0.tar.gz vaadin-framework-7fa43952ca1b1e26afe79f5c0a75f9e735431be0.zip |
Use special logic for allocating selection col widths (#17091)
Change-Id: I2d0a80a26e8211d6f5e9110e1476f857803b4d3f
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java | 21 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java | 34 |
2 files changed, 54 insertions, 1 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java b/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java index 1dfc7bcf11..b04745f17a 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutData.java @@ -15,21 +15,41 @@ */ package com.vaadin.tests.components.grid; +import java.util.EnumSet; + +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.data.Property.ValueChangeListener; 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.Grid; +import com.vaadin.ui.Grid.SelectionMode; +import com.vaadin.ui.NativeSelect; import com.vaadin.ui.VerticalLayout; public class GridColumnWidthsWithoutData extends AbstractTestUI { + private SelectionMode selectionMode = SelectionMode.NONE; private Grid grid = createGrid(true); @Override protected void setup(VaadinRequest request) { addComponent(grid); + NativeSelect selectionModeSelector = new NativeSelect("Selection mode", + EnumSet.allOf(SelectionMode.class)); + selectionModeSelector.setValue(selectionMode); + selectionModeSelector.setNullSelectionAllowed(false); + selectionModeSelector.addValueChangeListener(new ValueChangeListener() { + @Override + public void valueChange(ValueChangeEvent event) { + selectionMode = (SelectionMode) event.getProperty().getValue(); + grid.setSelectionMode(selectionMode); + } + }); + addComponent(selectionModeSelector); + addComponent(new Button("Recreate without data", new Button.ClickListener() { @Override @@ -72,6 +92,7 @@ public class GridColumnWidthsWithoutData extends AbstractTestUI { grid.addColumn("foo"); grid.addColumn("bar"); grid.setWidth("300px"); + grid.setSelectionMode(selectionMode); if (withData) { addDataToGrid(grid); diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java b/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java index dd63d6abc9..c215fa0a59 100644 --- a/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/GridColumnWidthsWithoutDataTest.java @@ -23,6 +23,7 @@ import org.junit.Test; import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement.GridCellElement; +import com.vaadin.testbench.elements.NativeSelectElement; import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.tests.tb3.SingleBrowserTest; @@ -49,7 +50,7 @@ public class GridColumnWidthsWithoutDataTest extends SingleBrowserTest { } @Test - public void restWidthsWhenInitiallyEmpty() { + public void testWidthsWhenInitiallyEmpty() { setDebug(true); openTestURL(); $(ButtonElement.class).caption("Recreate without data").first().click(); @@ -74,6 +75,37 @@ public class GridColumnWidthsWithoutDataTest extends SingleBrowserTest { isElementPresent(NotificationElement.class)); } + @Test + public void testMultiSelectWidths() { + setDebug(true); + openTestURL(); + $(NativeSelectElement.class).caption("Selection mode").first() + .selectByText("Multi"); + + GridElement grid = $(GridElement.class).first(); + + int sum = sumUsedWidths(grid); + + // 295 instead of 300 to avoid rounding issues + Assert.assertTrue("Only " + sum + " out of 300px was used", sum > 295); + + $(ButtonElement.class).caption("Recreate without data").first().click(); + + grid = $(GridElement.class).first(); + sum = sumUsedWidths(grid); + + // 295 instead of 300 to avoid rounding issues + Assert.assertTrue("Only " + sum + " out of 300px was used", sum > 295); + } + + private int sumUsedWidths(GridElement grid) { + int sum = 0; + for (int i : getColWidths(grid)) { + sum += i; + } + return sum; + } + private static void assertSameWidths(int[] expected, int[] actual) { Assert.assertEquals("Arrays have differing lengths", expected.length, actual.length); |