MessagingUseCaseTest.java 9.65 KiB
package edu.ncsu.csc.itrust.selenium;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.Select;
import com.meterware.httpunit.HttpUnitOptions;
import edu.ncsu.csc.itrust.enums.TransactionType;
public class MessagingUseCaseTest extends iTrustSeleniumTest {
/*
* The URL for iTrust, change as needed
*/
/**ADDRESS*/
public static final String ADDRESS = "http://localhost:8080/iTrust/";
private WebDriver driver;
@Override
protected void setUp() throws Exception {
super.setUp();
gen.clearAllTables();
gen.standardData();
HttpUnitOptions.setScriptingEnabled(false);
// turn off htmlunit warnings
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF);
java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);
}
public void testHCPSendMessage() throws Exception {
driver = login("9000000000", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Message Outbox")).click();
assertLogged(TransactionType.OUTBOX_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Compose a Message")).click();
driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
driver.findElement(By.xpath("//input[@value='2']")).submit();
driver.findElement(By.name("subject")).clear();
driver.findElement(By.name("subject")).sendKeys("Visit Request");
driver.findElement(By.name("messageBody")).clear();
driver.findElement(By.name("messageBody")).sendKeys("We really need to have a visit.");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
assertLogged(TransactionType.MESSAGE_SEND, 9000000000L, 2L, "");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
String stamp = dateFormat.format(date);
assertTrue(driver.getPageSource().contains("My Sent Messages"));
driver.findElement(By.linkText("Message Outbox")).click();
assertTrue(driver.getPageSource().contains("Visit Request"));
assertTrue(driver.getPageSource().contains("Andy Programmer"));
assertTrue(driver.getPageSource().contains(stamp));
assertLogged(TransactionType.OUTBOX_VIEW, 9000000000L, 0L, "");
driver = login("2", "pw");
assertLogged(TransactionType.HOME_VIEW, 2L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 2L, 0L, "");
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains("Visit Request"));
assertTrue(driver.getPageSource().contains(stamp));
}
public void testPatientSendReply() throws Exception {
driver = login("2", "pw");
assertLogged(TransactionType.HOME_VIEW, 2L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 2L, 0L, "");
driver.findElement(By.linkText("Read")).click();
assertLogged(TransactionType.MESSAGE_VIEW, 2L, 9000000000L, "");
driver.findElement(By.linkText("Reply")).click();
driver.findElement(By.name("messageBody")).clear();
driver.findElement(By.name("messageBody")).sendKeys("Which office visit did you update?");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
assertLogged(TransactionType.MESSAGE_SEND, 2L, 9000000000L, "");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
String stamp = dateFormat.format(date);
driver.findElement(By.linkText("Message Outbox")).click();
assertTrue(driver.getPageSource().contains("RE: Office Visit Updated"));
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains(stamp));
assertLogged(TransactionType.OUTBOX_VIEW, 2L, 0L, "");
driver = login("9000000000", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 9000000000L, 0L, "");
assertTrue(driver.getPageSource().contains("Andy Programmer"));
assertTrue(driver.getPageSource().contains("RE: Office Visit Updated"));
assertTrue(driver.getPageSource().contains(stamp));
}
public void testPatientSendMessageMultiRecipients() throws Exception {
gen.messagingCcs();
driver = login("1", "pw");
assertLogged(TransactionType.HOME_VIEW, 1L, 0L, "");
driver.findElement(By.linkText("Compose a Message")).click();
final Select selectBox = new Select(driver.findElement(By.name("dlhcp")));
selectBox.selectByValue("9000000003");
//selectComboValue("dlhcp", "9000000003", driver);
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
driver.findElement(By.name("cc")).clear();
driver.findElement(By.name("cc")).sendKeys("9000000000");
driver.findElement(By.name("subject")).clear();
driver.findElement(By.name("subject")).sendKeys("This is a message to multiple recipients");
driver.findElement(By.name("messageBody")).clear();
driver.findElement(By.name("messageBody")).sendKeys("We really need to have a visit!");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
assertTrue(driver.getPageSource().contains("Gandalf Stormcrow"));
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains("This is a message to multiple recipients"));
}
public void testPatientSendReplyMultipleRecipients() throws Exception {
driver = login("2", "pw");
assertLogged(TransactionType.HOME_VIEW, 2L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 2L, 0L, "");
driver.findElement(By.linkText("Read")).click();
assertLogged(TransactionType.MESSAGE_VIEW, 2L, 9000000000L, "");
driver.findElement(By.linkText("Reply")).click();
driver.findElement(By.name("cc")).click();
driver.findElement(By.name("messageBody")).clear();
driver.findElement(By.name("messageBody")).sendKeys("Which office visit did you update?");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
String stamp = dateFormat.format(date);
driver.findElement(By.linkText("Message Outbox")).click();
assertTrue(driver.getPageSource().contains("RE: Office Visit Updated"));
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains("Gandalf Stormcrow"));
assertTrue(driver.getPageSource().contains(stamp));
assertLogged(TransactionType.OUTBOX_VIEW, 2L, 0L, "");
driver = login("9000000000", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 9000000000L, 0L, "");
assertTrue(driver.getPageSource().contains("Andy Programmer"));
assertTrue(driver.getPageSource().contains("RE: Office Visit Updated"));
assertTrue(driver.getPageSource().contains(stamp));
driver = login("9000000003", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000003L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 9000000003L, 0L, "");
assertTrue(driver.getPageSource().contains("Andy Programmer"));
assertTrue(driver.getPageSource().contains("RE: Office Visit Updated"));
assertTrue(driver.getPageSource().contains(stamp));
}
public void testHCPSendReplySingleCCRecipient() throws Exception {
gen.clearMessages();
gen.messages6();
driver = login("9000000000", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 9000000000L, 0L, "");
driver.findElement(By.linkText("Read")).click();
assertLogged(TransactionType.MESSAGE_VIEW, 9000000000L, 22L, "Viewed Message: 3");
driver.findElement(By.linkText("Reply")).click();
driver.findElement(By.name("cc")).click();
driver.findElement(By.name("messageBody")).clear();
driver.findElement(By.name("messageBody")).sendKeys("I will not be able to make my next schedulded appointment. Is there anyone who can book another time?");
driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
assertLogged(TransactionType.MESSAGE_SEND, 9000000000L, 22L, "9000000007");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
String stamp = dateFormat.format(date);
driver.findElement(By.linkText("Message Outbox")).click();
assertTrue(driver.getPageSource().contains("RE: Appointment rescheduling"));
assertTrue(driver.getPageSource().contains("Fozzie Bear"));
assertTrue(driver.getPageSource().contains("Beaker Beaker"));
assertTrue(driver.getPageSource().contains(stamp));
assertLogged(TransactionType.OUTBOX_VIEW, 9000000000L, 0L, "");
driver = login("22", "pw");
assertLogged(TransactionType.HOME_VIEW, 22L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 22L, 0L, "");
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains("RE: Appointment rescheduling"));
assertTrue(driver.getPageSource().contains(stamp));
driver = login("9000000007", "pw");
assertLogged(TransactionType.HOME_VIEW, 9000000007L, 0L, "");
driver.findElement(By.linkText("Message Inbox")).click();
assertLogged(TransactionType.INBOX_VIEW, 9000000007L, 0L, "");
assertTrue(driver.getPageSource().contains("Kelly Doctor"));
assertTrue(driver.getPageSource().contains("RE: Appointment rescheduling"));
assertTrue(driver.getPageSource().contains(stamp));
}
}