CauseOfDeathTrendsReportSeleniumTest.java 14.99 KiB
package edu.ncsu.csc.itrust.selenium;
import edu.ncsu.csc.itrust.enums.TransactionType;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.support.ui.Select;
public class CauseOfDeathTrendsReportSeleniumTest extends iTrustSeleniumTest {
private HtmlUnitDriver driver;
@Override
protected void setUp() throws Exception {
super.setUp();
gen.clearAllTables();
gen.standardData();
}
public void testViewCODTrendsReports_AllPatientsAllGenders() throws Exception {
driver = (HtmlUnitDriver)login("9000000000", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000000L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 4);
String cause2 = table.findElements(By.tagName("td")).get(3).getText();
double code2 = Double.parseDouble(table.findElements(By.tagName("td")).get(4).getText());
int deaths2 = Integer.parseInt(table.findElements(By.tagName("td")).get(5).getText());
assertEquals(cause2, "Diabetes with ketoacidosis");
assertEquals(code2, 250.10);
assertEquals(deaths2, 1);
}
public void testViewCODTrendsReports_AllPatientsOnlyMale() throws Exception {
driver = (HtmlUnitDriver)login("9000000000", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
new Select(driver.findElement(By.name("gender"))).selectByVisibleText("Male");
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000000L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 2);
String cause2 = table.findElements(By.tagName("td")).get(3).getText();
double code2 = Double.parseDouble(table.findElements(By.tagName("td")).get(4).getText());
int deaths2 = Integer.parseInt(table.findElements(By.tagName("td")).get(5).getText());
assertEquals(cause2, "Diabetes with ketoacidosis");
assertEquals(code2, 250.10);
assertEquals(deaths2, 1);
}
public void testViewCODTrendsReports_AllPatientsOnlyFemale() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
new Select(driver.findElement(By.name("gender"))).selectByVisibleText("Female");
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 2);
}
public void testViewCODTrendsReports_MyPatientsAllGenders() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
new Select(driver.findElement(By.name("patients"))).selectByVisibleText("My Patients");
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 4);
String cause2 = table.findElements(By.tagName("td")).get(3).getText();
double code2 = Double.parseDouble(table.findElements(By.tagName("td")).get(4).getText());
int deaths2 = Integer.parseInt(table.findElements(By.tagName("td")).get(5).getText());
assertEquals(cause2, "Diabetes with ketoacidosis");
assertEquals(code2, 250.10);
assertEquals(deaths2, 1);
}
public void testViewCODTrendsReports_MyPatientsOnlyMale() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
new Select(driver.findElement(By.name("patients"))).selectByVisibleText("My Patients");
new Select(driver.findElement(By.name("gender"))).selectByVisibleText("Male");
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 2);
String cause2 = table.findElements(By.tagName("td")).get(3).getText();
double code2 = Double.parseDouble(table.findElements(By.tagName("td")).get(4).getText());
int deaths2 = Integer.parseInt(table.findElements(By.tagName("td")).get(5).getText());
assertEquals(cause2, "Diabetes with ketoacidosis");
assertEquals(code2, 250.10);
assertEquals(deaths2, 1);
}
public void testViewCODTrendsReports_MyPatientsOnlyFemale() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
new Select(driver.findElement(By.name("patients"))).selectByVisibleText("My Patients");
new Select(driver.findElement(By.name("gender"))).selectByVisibleText("Female");
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2000");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
WebElement table = driver.findElement(By.id("causeOfDeathTrendsTable"));
String cause1 = table.findElements(By.tagName("td")).get(0).getText();
double code1 = Double.parseDouble(table.findElements(By.tagName("td")).get(1).getText());
int deaths1 = Integer.parseInt(table.findElements(By.tagName("td")).get(2).getText());
assertEquals(cause1, "Influenza");
assertEquals(code1, 487.00);
assertEquals(deaths1, 2);
}
public void testViewCODTrendsReports_EmptyDates() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("");
driver.findElement(By.name("endDate")).sendKeys("");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
assertTrue(driver.getPageSource().contains("Enter dates in MM/dd/yyyy"));
}
public void testViewCODTrendsReports_InvalidDateFormat() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01-01-2000");
driver.findElement(By.name("endDate")).sendKeys("12-31-2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
assertTrue(driver.getPageSource().contains("Enter dates in MM/dd/yyyy"));
}
public void testViewCODTrendsReports_StartDateAfterEndDate() throws Exception {
driver = (HtmlUnitDriver)login("9000000003", "pw");
// Click Diagnosis Trends
driver.findElement(By.cssSelector("h2.panel-title")).click();
driver.findElement(By.xpath("//div[@class='panel-body']/ul/li[11]")).click();
driver.findElement(By.linkText("Cause-Of-Death Trends Report")).click();
// View Cause of Death Trends Report
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
driver.findElement(By.name("startDate")).clear();
driver.findElement(By.name("startDate")).sendKeys("01/01/2021");
driver.findElement(By.name("endDate")).sendKeys("12/31/2020");
driver.findElement(By.id("view_report")).click();
assertTrue(driver.getCurrentUrl().equals(ADDRESS + "auth/hcp/causeOfDeathTrendsReport.jsp"));
assertLogged(TransactionType.DEATH_TRENDS_VIEW, 9000000003L, 0L,
"View cause-of-death trends report");
assertTrue(driver.getPageSource().contains("Start date must be before end date!"));
}
}