package net.rrm.ehour.it.driver; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.Select; 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; import static org.junit.Assert.assertTrue; public abstract class ReportDriver { public static void loadReportSection() { Driver.get(BASE_URL + "/eh/report"); } public static void assertGlobalCriteriaLoaded() { assertEquals("Global report", findElement("reportContainer_tabs-container_tabs_0_link_title").getText()); } public static void assertUserCriteriaLoaded() { assertEquals("Edeling, Thies report", findElement("reportContainer_tabs-container_tabs_0_link_title").getText()); } public static int countShownCustomers() { Select customers = new Select(findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.customers")); return customers.getOptions().size(); } public static int countShownProjects() { Select projects = new Select(findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.projects")); return projects.getOptions().size(); } public static void toggleActiveProjects() { WebElement check = findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.onlyActiveProjects"); check.click(); sleep(); } public static void toggleActiveCustomers() { WebElement check = findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.onlyActiveCustomers"); check.click(); } public static void sortCustomersOnCode() { Select order = new Select(findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_customerSort")); order.selectByVisibleText("Code"); } public static void toggleCustomerFilters() { findElement(By.id("customerFold")).click(); } public static void filterCustomers(String filter) { findElement(By.id("customerFilterInput")).sendKeys(filter); } public static void toggleProjectFilters() { Driver.findElement(By.id("projectFold")).click(); } public static void filterProjects(String filter) { findElement(By.id("projectFilterInput")).sendKeys(filter); } public static void sortProjectsOnCode() { Select order = new Select(findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_projectSort")); order.selectByVisibleText("Code"); } public static void clearCustomerCriterium() { findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_clearCustomer").click(); sleep(); waitUntil(CommonExpectedConditions.expectClearedDropdown("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.customers")); } public static void clearProjectCriterium() { findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_clearProject").click(); sleep(); waitUntil(CommonExpectedConditions.expectClearedDropdown("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_customerProjectsBorder_customerProjectsBorder__body_reportCriteria.userSelectedCriteria.projects")); } public static void createReport() { findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_createReport").click(); } public static void setStartDate(String startDate) { WebElement element = findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_reportCriteria.userSelectedCriteria.reportRange.dateStart"); element.clear(); element.sendKeys(startDate); } public static void setEndDate(String endDate) { WebElement element = findElement("reportContainer_panel_border_greySquaredFrame_border__body_criteriaForm_reportCriteria.userSelectedCriteria.reportRange.dateEnd"); element.clear(); element.sendKeys(endDate); } public static void navigateToDetails() { findElement("reportContainer_tabs-container_tabs_4_link").click(); String txt = findElement("reportContainer_panel_frame_reportTable_greyFrame_greyFrame__body_reportHeader").getText(); assertTrue(txt.startsWith("Report period")); sleep(); } public static void toggleOptions() { findElement(By.id("optionsFold")).click(); } public static void clickZeroBookings() { findElement("reportContainer_panel_reportTable_greyFrame_greyFrame__body_reportContent_reportOptionsPlaceholder_toggleShowZeroBookings").click(); } }