|
|
@@ -34,13 +34,20 @@ public class CalendarMonthViewDndEventTest extends DndActionsTest { |
|
|
|
public void dragAndDropEventToNextDay() { |
|
|
|
openTestURL(); |
|
|
|
|
|
|
|
WebElement event = getDriver().findElement( |
|
|
|
By.className("v-calendar-event")); |
|
|
|
WebElement calendar = findElement(By.className("v-calendar")); |
|
|
|
int calendarRight = calendar.getLocation().getX() |
|
|
|
+ calendar.getSize().getWidth(); |
|
|
|
|
|
|
|
WebElement event = findElement(By.className("v-calendar-event")); |
|
|
|
int x = event.getLocation().getX(); |
|
|
|
int width = event.getSize().getWidth(); |
|
|
|
|
|
|
|
WebElement cell = getDriver().findElement( |
|
|
|
By.className("v-calendar-month-day")); |
|
|
|
// does calendar have space on the right for one more event (i.e. day |
|
|
|
// cell on the right). |
|
|
|
boolean moveRight = event.getLocation().getX() + 2 |
|
|
|
* event.getSize().getWidth() <= calendarRight; |
|
|
|
|
|
|
|
WebElement cell = getParentCell(event, "v-calendar-month-day"); |
|
|
|
|
|
|
|
int cellY = cell.getLocation().getY(); |
|
|
|
int cellHeight = cell.getSize().getHeight(); |
|
|
@@ -48,34 +55,65 @@ public class CalendarMonthViewDndEventTest extends DndActionsTest { |
|
|
|
long origStart = getTime("start"); |
|
|
|
long origEnd = getTime("end"); |
|
|
|
|
|
|
|
dragAndDrop(event, event.getSize().getWidth() + 5, 0); |
|
|
|
if (moveRight) { |
|
|
|
dragAndDrop(event, event.getSize().getWidth() + 5, 0); |
|
|
|
} else { |
|
|
|
dragAndDrop(event, -width / 2, 0); |
|
|
|
} |
|
|
|
|
|
|
|
event = getDriver().findElement(By.className("v-calendar-event")); |
|
|
|
event = findElement(By.className("v-calendar-event")); |
|
|
|
int newX = event.getLocation().getX(); |
|
|
|
int newY = event.getLocation().getY(); |
|
|
|
|
|
|
|
Assert.assertTrue( |
|
|
|
"Moved event has wrong Y position (not the same row)", |
|
|
|
newY >= cellY && newY < cellY + cellHeight); |
|
|
|
Assert.assertTrue( |
|
|
|
"Moved event has wrong X position (not after original event)", |
|
|
|
newX >= x + width - 1); |
|
|
|
"Moved event has wrong Y position (not the same row), new Y position=" |
|
|
|
+ newY + ", cell Y position=" + cellY |
|
|
|
+ ", cell height=" + cellHeight, newY >= cellY |
|
|
|
&& newY < cellY + cellHeight); |
|
|
|
if (moveRight) { |
|
|
|
Assert.assertTrue( |
|
|
|
"Moved event has wrong X position (not after original event)", |
|
|
|
newX >= x + width - 1); |
|
|
|
} else { |
|
|
|
width = event.getSize().getWidth(); |
|
|
|
Assert.assertTrue( |
|
|
|
"Moved event has wrong X position (not after original event)", |
|
|
|
x >= newX + width - 1); |
|
|
|
} |
|
|
|
|
|
|
|
long start = getTime("start"); |
|
|
|
long end = getTime("end"); |
|
|
|
|
|
|
|
int day = 24 * 3600000; |
|
|
|
Assert.assertEquals( |
|
|
|
"Start date of moved event is not next day, same time", |
|
|
|
origStart + day, start); |
|
|
|
Assert.assertEquals( |
|
|
|
"End date of moved event is not next day, same time", origEnd |
|
|
|
+ day, end); |
|
|
|
if (moveRight) { |
|
|
|
Assert.assertEquals( |
|
|
|
"Start date of moved event is not next day, same time", |
|
|
|
origStart + day, start); |
|
|
|
Assert.assertEquals( |
|
|
|
"End date of moved event is not next day, same time", |
|
|
|
origEnd + day, end); |
|
|
|
} else { |
|
|
|
Assert.assertEquals( |
|
|
|
"Start date of moved event is not previous day, same time", |
|
|
|
origStart - day, start); |
|
|
|
Assert.assertEquals( |
|
|
|
"End date of moved event is not previous day, same time", |
|
|
|
origEnd - day, end); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private WebElement getParentCell(WebElement element, String style) { |
|
|
|
WebElement parent = element; |
|
|
|
do { |
|
|
|
// ".." xpath expression chooses the parent of the element |
|
|
|
parent = parent.findElement(By.xpath("..")); |
|
|
|
} while (!parent.getAttribute("class").contains(style)); |
|
|
|
return parent; |
|
|
|
} |
|
|
|
|
|
|
|
private long getTime(String style) { |
|
|
|
WebElement start = getDriver().findElement(By.className(style)); |
|
|
|
WebElement start = findElement(By.className(style)); |
|
|
|
return Long.parseLong(start.getText()); |
|
|
|
} |
|
|
|
|
|
|
|
} |