From 6d65ee261ae7edb6d04aca3e6ebb4c3978f96a78 Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Mon, 11 May 2020 15:00:53 +0300 Subject: Refresh DataProvider only once when reordering the grid using GridRowDragger (#11981) (#11992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #10844 Authored-by: Martín López --- .../component/grid/GridRowDraggerOneGridTest.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'server/src/test') diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridRowDraggerOneGridTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridRowDraggerOneGridTest.java index 08b647cdde..6c522abcf9 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridRowDraggerOneGridTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridRowDraggerOneGridTest.java @@ -127,6 +127,26 @@ public class GridRowDraggerOneGridTest { verifyDataProvider("1", "2", "0"); } + @Test + public void listDataProvider_calledOnlyOnce() { + + final int[] times = new int[1]; + + source.setItems("0", "1", "2"); + + source.getDataProvider().addDataProviderListener(ev -> times[0]++); + + dragger.setDropIndexCalculator(event -> { + return Integer.MAX_VALUE; + }); + + drop("1", DropLocation.ABOVE, "0"); + + verifyDataProvider("1", "2", "0"); + + Assert.assertArrayEquals("DataProvider should be invoked only once", new int[] { 1 }, times); + } + @Test public void noopSourceUpdater() { source.setItems("0", "1", "2"); -- cgit v1.2.3