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") @TestCategory("grid")
public abstract class GridBasicFeaturesTest extends MultiBrowserTest { public abstract class GridBasicFeaturesTest extends MultiBrowserTest {


public enum CellSide {
LEFT, RIGHT;
}

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


protected void dragAndDropDefaultColumnHeader(int draggedColumnHeaderIndex, protected void dragAndDropDefaultColumnHeader(int draggedColumnHeaderIndex,
int onTopOfColumnHeaderIndex, int xOffsetFromColumnTopLeftCorner) { int onTopOfColumnHeaderIndex, CellSide cellSide) {
GridCellElement columnHeader = getDefaultColumnHeader(onTopOfColumnHeaderIndex);
new Actions(getDriver()) new Actions(getDriver())
.clickAndHold(getDefaultColumnHeader(draggedColumnHeaderIndex)) .clickAndHold(getDefaultColumnHeader(draggedColumnHeaderIndex))
.moveToElement( .moveToElement(
getDefaultColumnHeader(onTopOfColumnHeaderIndex), columnHeader,
xOffsetFromColumnTopLeftCorner, 0).release().perform(); 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, protected void dragAndDropColumnHeader(int headerRow,
int draggedColumnHeaderIndex, int onTopOfColumnHeaderIndex, int draggedColumnHeaderIndex, int onTopOfColumnHeaderIndex,
int xOffsetFromColumnTopLeftCorner) { CellSide cellSide) {
GridCellElement headerCell = getGridElement().getHeaderCell(headerRow,
onTopOfColumnHeaderIndex);
new Actions(getDriver()) new Actions(getDriver())
.clickAndHold( .clickAndHold(
getGridElement().getHeaderCell(headerRow, getGridElement().getHeaderCell(headerRow,
draggedColumnHeaderIndex)) draggedColumnHeaderIndex))
.moveToElement( .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, getGridElement().getHeaderCell(headerRow,
onTopOfColumnHeaderIndex), draggedColumnHeaderIndex))
xOffsetFromColumnTopLeftCorner, 0).release().perform(); .moveToElement(headerCell, horizontalOffset, 0).release()
.perform();
} }


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


toggleHideColumnAPI(0); toggleHideColumnAPI(0);
Expand Down

0 comments on commit 3eb8110

Please sign in to comment.