diff options
Diffstat (limited to 'server/src/test')
-rw-r--r-- | server/src/test/java/com/vaadin/tests/components/grid/GridDropTargetTest.java | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridDropTargetTest.java b/server/src/test/java/com/vaadin/tests/components/grid/GridDropTargetTest.java new file mode 100644 index 0000000000..d5de0ad808 --- /dev/null +++ b/server/src/test/java/com/vaadin/tests/components/grid/GridDropTargetTest.java @@ -0,0 +1,152 @@ +package com.vaadin.tests.components.grid; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.vaadin.shared.ui.grid.DropMode; +import com.vaadin.ui.Grid; +import com.vaadin.ui.components.grid.GridDropTarget; + +public class GridDropTargetTest { + + private Grid<String> grid; + private GridDropTarget<String> target; + + @Before + public void setup() { + grid = new Grid<>(); + grid.addColumn(s -> s).setId("1"); + grid.addColumn(s -> s).setId("2"); + target = new GridDropTarget<>(grid, DropMode.BETWEEN); + } + + @Test + public void dropAllowedOnSortedGridRows_defaultValue_isTrue() { + Assert.assertTrue("Default drop allowed should be backwards compatible", + target.isDropAllowedOnSortedGridRows()); + } + + @Test + public void dropAllowedOnSortedGridRows_notAllowed_changesDropModeWhenSorted() { + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.sort("1"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + grid.sort("2"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + grid.clearSortOrder(); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.clearSortOrder(); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.sort("2"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + } + + @Test + public void dropAllowedOnSortedGridRows_sortedGridIsDisallowed_modeChangesToOnGrid() { + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.sort("1"); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(true); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + } + + @Test + public void dropAllowedOnSortedGridRows_notAllowedBackToAllowed_changesBackToUserDefinedMode() { + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.sort("1"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(true); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.clearSortOrder(); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + } + + @Test + public void dropAllowedOnSortedGridRows_swappingAllowedDropOnSortedOffAndOn() { + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(true); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(true); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + } + + @Test + public void dropAllowedOnSortedGridRows_changingDropModeWhileSorted_replacesPreviouslyCachedButDoesntOverride() { + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(false); + + Assert.assertEquals(DropMode.BETWEEN, target.getDropMode()); + + grid.sort("1"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + target.setDropMode(DropMode.ON_TOP); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + Assert.assertFalse("Changing drop mode should not have any effect here", + target.isDropAllowedOnSortedGridRows()); + + grid.clearSortOrder(); + + Assert.assertEquals(DropMode.ON_TOP, target.getDropMode()); + + grid.sort("1"); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + target.setDropMode(DropMode.ON_TOP_OR_BETWEEN); + + Assert.assertEquals(DropMode.ON_GRID, target.getDropMode()); + + target.setDropAllowedOnSortedGridRows(true); + + Assert.assertEquals(DropMode.ON_TOP_OR_BETWEEN, target.getDropMode()); + } +} |