aboutsummaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorPekka Hyvönen <pekka@vaadin.com>2015-03-03 11:15:06 +0200
committerPekka Hyvönen <pekka@vaadin.com>2015-03-04 09:24:00 +0200
commitde2172eda96ca3f34b2ab4e2e926b13957c113de (patch)
treeddd7e7cddfd47cf33b0837f8486097e92de89481 /uitest
parent40916228681314c843b32e59fc91bbec18548332 (diff)
downloadvaadin-framework-de2172eda96ca3f34b2ab4e2e926b13957c113de.tar.gz
vaadin-framework-de2172eda96ca3f34b2ab4e2e926b13957c113de.zip
Limit dnd-reorder of columns inside spanned headers. (#16643)
Doesn't take footers into account, yet. Change-Id: I9c62ca97bcbdb852f2fe7ad7ea2e7de0f0ed02f8
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java11
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnReorderTest.java118
2 files changed, 129 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
index 13f32fd2a2..0e4f0272dd 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
@@ -78,6 +78,11 @@ public abstract class GridBasicFeaturesTest extends MultiBrowserTest {
getGridVerticalScrollbar());
}
+ protected void scrollGridHorizontallyTo(double px) {
+ executeScript("arguments[0].scrollLeft = " + px,
+ getGridHorizontalScrollbar());
+ }
+
protected int getGridVerticalScrollPos() {
return ((Number) executeScript("return arguments[0].scrollTop",
getGridVerticalScrollbar())).intValue();
@@ -126,6 +131,12 @@ public abstract class GridBasicFeaturesTest extends MultiBrowserTest {
By.xpath("//div[contains(@class, \"v-grid-scroller-vertical\")]"));
}
+ protected WebElement getGridHorizontalScrollbar() {
+ return getDriver()
+ .findElement(
+ By.xpath("//div[contains(@class, \"v-grid-scroller-horizontal\")]"));
+ }
+
/**
* Reloads the page without restartApplication. This occasionally breaks
* stuff.
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnReorderTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnReorderTest.java
index 6e5eda43f1..39c6082bed 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnReorderTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnReorderTest.java
@@ -235,6 +235,124 @@ public class GridColumnReorderTest extends GridBasicClientFeaturesTest {
assertColumnHeaderOrder(1, 2, 0, 3, 4);
}
+ @Test
+ public void testColumnReorder_cellInsideASpannedHeader_cantBeDroppedOutsideSpannedArea() {
+ // given
+ toggleColumnReorder();
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Row 2", "Join columns 1, 2");
+ assertColumnHeaderOrder(0, 1, 2, 3, 4);
+
+ // when
+ dragAndDropColumnHeader(0, 2, 0, 20);
+
+ // then
+ assertColumnHeaderOrder(0, 2, 1, 3, 4);
+ }
+
+ @Test
+ public void testColumnReorder_cellInsideTwoCrossingSpanningHeaders_cantTouchThis() {
+ // given
+ toggleColumnReorder();
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Row 2", "Join column cells 0, 1");
+ selectMenuPath("Component", "Header", "Row 3", "Join columns 1, 2");
+ dragAndDropColumnHeader(0, 3, 0, 10);
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+
+ // when
+ dragAndDropColumnHeader(0, 2, 0, 10);
+
+ // then
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+ }
+
+ @Test
+ public void testColumnReorder_cellsInsideSpannedHeaderAndBlockedByOtherSpannedCells_cantTouchThose() {
+ // given
+ toggleColumnReorder();
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Row 2", "Join column cells 0, 1");
+ selectMenuPath("Component", "Header", "Row 3", "Join columns 1, 2");
+ dragAndDropColumnHeader(0, 3, 0, 10);
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+
+ // when then
+ dragAndDropColumnHeader(0, 1, 3, 10);
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+
+ dragAndDropColumnHeader(1, 2, 1, 10);
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+
+ dragAndDropColumnHeader(2, 1, 3, -10);
+ assertColumnHeaderOrder(3, 0, 1, 2, 4);
+ }
+
+ @Test
+ public void testColumnReorder_cellsInsideSpannedHeaderAndBlockedByOtherSpannedCells_reorderingLimited() {
+ // given
+ toggleColumnReorder();
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Row 2", "Join columns 3, 4, 5");
+ dragAndDropColumnHeader(0, 0, 4, 100);
+ selectMenuPath("Component", "Header", "Row 3", "Join columns 1, 2");
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 4, 5);
+
+ // when then
+ dragAndDropColumnHeader(0, 1, 4, 10);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 4, 5);
+
+ dragAndDropColumnHeader(0, 2, 4, 10);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 4, 5);
+
+ dragAndDropColumnHeader(0, 3, 4, 80);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 5, 4);
+
+ dragAndDropColumnHeader(0, 4, 2, 100);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 4, 5);
+
+ dragAndDropColumnHeader(2, 3, 4, 80);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 5, 4);
+
+ dragAndDropColumnHeader(2, 4, 2, 100);
+ scrollGridHorizontallyTo(0);
+ assertColumnHeaderOrder(1, 2, 3, 4, 5);
+ }
+
+ @Test
+ public void testColumnReorder_cellsInsideTwoAdjacentSpannedHeaders_reorderingLimited() {
+ // given
+ toggleColumnReorder();
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Append row");
+ selectMenuPath("Component", "Header", "Row 2", "Join columns 3, 4, 5");
+ dragAndDropColumnHeader(0, 0, 4, 100);
+ scrollGridHorizontallyTo(0);
+ dragAndDropColumnHeader(0, 1, 4, 80);
+ scrollGridHorizontallyTo(0);
+ selectMenuPath("Component", "Header", "Row 3", "Join columns 1, 2");
+ assertColumnHeaderOrder(1, 3, 4, 5, 2);
+
+ // when then
+ dragAndDropColumnHeader(0, 1, 3, 80);
+ assertColumnHeaderOrder(1, 4, 3, 5, 2);
+
+ dragAndDropColumnHeader(0, 2, 4, 10);
+ assertColumnHeaderOrder(1, 4, 3, 5, 2);
+
+ dragAndDropColumnHeader(0, 2, 0, 10);
+ assertColumnHeaderOrder(1, 3, 4, 5, 2);
+ }
+
private void toggleColumnReorder() {
selectMenuPath("Component", "State", "Column Reordering");
}