package net.rrm.ehour.it.driver;
import net.rrm.ehour.it.WicketBy;
import org.joda.time.LocalDate;
import org.openqa.selenium.WebElement;
import static net.rrm.ehour.it.AbstractScenario.BASE_URL;
import static net.rrm.ehour.it.AbstractScenario.Driver;
import static net.rrm.ehour.it.driver.ItUtil.*;
import static org.junit.Assert.assertEquals;
public class TimesheetLockDriver {
private TimesheetLockDriver() {
}
public static void navigateToAdminLocks() {
Driver.get(BASE_URL + "/eh/op/lock");
}
public static void newLock(LocalDate startDate, LocalDate endDate) {
navigateToAdminLocks();
setStartDate(startDate);
setEndDate(endDate);
}
public static void excludeUser(int index) {
findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_excludedUsers_modify")).click();
waitForPresence("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_excludedUsers_hide");
findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_excludedUsers_userSelect_allBorder_allBorder__body_users_" + index)).click();
waitForPresence("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_excludedUsers_userSelect_selectedContainer_selectedUsers_0_name");
}
public static void editLock(int index, String name) {
findElement(WicketBy.wicketPath("entrySelectorFrame_entrySelectorFrame__body_lockSelector_entrySelectorFrame_blueBorder_blueBorder__body_listScroll_itemList_" + index)).click();
waitForValue("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_name", name);
}
public static void assertDataSaved() {
assertServerMessage("Data saved");
}
public static void submit() {
findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_submit")).click();
}
public static void setEndDate(LocalDate endDate) {
WebElement endDateElement = findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_endDate"));
endDateElement.clear();
endDateElement.sendKeys(endDate.toString("MM/dd/YY"));
}
public static void setStartDate(LocalDate startDate) {
WebElement startDateElement = findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_startDate"));
startDateElement.clear();
startDateElement.sendKeys(startDate.toString("MM/dd/YY"));
}
public static void assertServerMessage(String msg) {
assertEquals(msg, findElement(WicketBy.wicketPath("tabs_panel_outerBorder_greySquaredFrame_outerBorder__body_lockForm_serverMessage")).getText());
}
}