Skip to content

Commit

Permalink
Refactored fragile column reorder tests for Grid
Browse files Browse the repository at this point in the history
Change-Id: I72fd2b09269d5dfc689d8b1f213f46989adf8bfe
  • Loading branch information
pleku committed Mar 31, 2015
1 parent eeb5e8c commit 3eb8110
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 87 deletions.
Expand Up @@ -36,6 +36,10 @@
@TestCategory("grid")
public abstract class GridBasicFeaturesTest extends MultiBrowserTest {

public enum CellSide {
LEFT, RIGHT;
}

@Override
protected boolean requireWindowFocusForIE() {
return true;
Expand Down Expand Up @@ -172,25 +176,52 @@ protected GridCellElement getDefaultColumnHeader(int index) {
}

protected void dragAndDropDefaultColumnHeader(int draggedColumnHeaderIndex,
int onTopOfColumnHeaderIndex, int xOffsetFromColumnTopLeftCorner) {
int onTopOfColumnHeaderIndex, CellSide cellSide) {
GridCellElement columnHeader = getDefaultColumnHeader(onTopOfColumnHeaderIndex);
new Actions(getDriver())
.clickAndHold(getDefaultColumnHeader(draggedColumnHeaderIndex))
.moveToElement(
getDefaultColumnHeader(onTopOfColumnHeaderIndex),
xOffsetFromColumnTopLeftCorner, 0).release().perform();
columnHeader,
getHorizontalOffsetForDragAndDrop(columnHeader,
cellSide), 0).release().perform();
}

private int getHorizontalOffsetForDragAndDrop(GridCellElement columnHeader,
CellSide cellSide) {
if (cellSide == CellSide.LEFT) {
return 5;
} else {
int half = columnHeader.getSize().getWidth() / 2;
return half + (half / 2);
}
}

protected void dragAndDropColumnHeader(int headerRow,
int draggedColumnHeaderIndex, int onTopOfColumnHeaderIndex,
int xOffsetFromColumnTopLeftCorner) {
CellSide cellSide) {
GridCellElement headerCell = getGridElement().getHeaderCell(headerRow,
onTopOfColumnHeaderIndex);
new Actions(getDriver())
.clickAndHold(
getGridElement().getHeaderCell(headerRow,
draggedColumnHeaderIndex))
.moveToElement(
headerCell,
getHorizontalOffsetForDragAndDrop(headerCell, cellSide),
0).release().perform();
}

protected void dragAndDropColumnHeader(int headerRow,
int draggedColumnHeaderIndex, int onTopOfColumnHeaderIndex,
int horizontalOffset) {
GridCellElement headerCell = getGridElement().getHeaderCell(headerRow,
onTopOfColumnHeaderIndex);
new Actions(getDriver())
.clickAndHold(
getGridElement().getHeaderCell(headerRow,
onTopOfColumnHeaderIndex),
xOffsetFromColumnTopLeftCorner, 0).release().perform();
draggedColumnHeaderIndex))
.moveToElement(headerCell, horizontalOffset, 0).release()
.perform();
}

protected void assertColumnIsSorted(int index) {
Expand Down
Expand Up @@ -390,16 +390,16 @@ public void testColumnHidability_reorderingColumns_updatesColumnToggleOrder() {
clickSidebarOpenButton();

toggleColumnReorder();
dragAndDropColumnHeader(0, 3, 0, 5);
dragAndDropColumnHeader(0, 3, 0, CellSide.LEFT);

assertColumnHeaderOrder(3, 0, 1, 2, 4);
clickSidebarOpenButton();
verifyColumnHidingTogglesOrder(3, 0, 1, 4);

clickSidebarOpenButton();
dragAndDropColumnHeader(0, 1, 3, 100);
dragAndDropColumnHeader(0, 4, 0, 5);
dragAndDropColumnHeader(0, 3, 0, 5);
dragAndDropColumnHeader(0, 1, 3, CellSide.RIGHT);
dragAndDropColumnHeader(0, 4, 0, CellSide.LEFT);
dragAndDropColumnHeader(0, 3, 0, CellSide.LEFT);

assertColumnHeaderOrder(2, 4, 3, 1, 0);
clickSidebarOpenButton();
Expand All @@ -413,7 +413,7 @@ public void testColumnHidingAndReorder_reorderingOverHiddenColumn_orderIsKept()
toggleHideColumnAPI(0);
assertColumnHeaderOrder(1, 2, 3, 4, 5);

dragAndDropColumnHeader(0, 1, 0, 5);
dragAndDropColumnHeader(0, 1, 0, CellSide.LEFT);
assertColumnHeaderOrder(2, 1, 3, 4, 5);

toggleHideColumnAPI(0);
Expand All @@ -423,7 +423,7 @@ public void testColumnHidingAndReorder_reorderingOverHiddenColumn_orderIsKept()
assertColumnHeaderOrder(0, 2, 3, 4, 5);

// right side of hidden column
dragAndDropColumnHeader(0, 0, 2, 5);
dragAndDropColumnHeader(0, 0, 2, CellSide.LEFT);
assertColumnHeaderOrder(2, 0, 3, 4, 5);

toggleHideColumnAPI(1);
Expand All @@ -433,7 +433,7 @@ public void testColumnHidingAndReorder_reorderingOverHiddenColumn_orderIsKept()
assertColumnHeaderOrder(2, 1, 3, 4, 5);

// left side of hidden column
dragAndDropColumnHeader(0, 0, 1, 100);
dragAndDropColumnHeader(0, 0, 1, CellSide.RIGHT);
assertColumnHeaderOrder(1, 2, 3, 4, 5);

toggleHideColumnAPI(0);
Expand All @@ -448,7 +448,7 @@ public void testColumnHidingAndReorder_reorderingWithMultipleHiddenColumns_works
toggleHideColumnAPI(3);
assertColumnHeaderOrder(0, 1, 4, 5, 6);

dragAndDropDefaultColumnHeader(0, 2, 5);
dragAndDropDefaultColumnHeader(0, 2, CellSide.LEFT);
assertColumnHeaderOrder(1, 0, 4, 5, 6);

toggleHideColumnAPI(3);
Expand All @@ -461,10 +461,10 @@ public void testColumnHidingAndReorder_reorderingWithMultipleHiddenColumns_works
toggleHideColumnAPI(4);
assertColumnHeaderOrder(1, 2, 3, 5, 6);

dragAndDropDefaultColumnHeader(4, 3, 2);
dragAndDropDefaultColumnHeader(4, 3, CellSide.LEFT);
assertColumnHeaderOrder(1, 2, 3, 6, 5);

dragAndDropDefaultColumnHeader(4, 2, 100);
dragAndDropDefaultColumnHeader(4, 2, CellSide.RIGHT);
assertColumnHeaderOrder(1, 2, 3, 5, 6);

toggleHideColumnAPI(0);
Expand Down

0 comments on commit 3eb8110

Please sign in to comment.