Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package edu.ncsu.csc.itrust.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class SendRemindersTest extends iTrustSeleniumTest{
protected WebDriver driver;
@Override
protected void setUp() throws Exception {
super.setUp();
gen.clearAllTables();
gen.standardData();
}
// Test sending reminders
public void testSendReminder() throws Exception {
// Login as admin
driver = login("9000000001", "pw");
assertEquals("iTrust - Admin Home", driver.getTitle());
driver.findElement(By.linkText("Send Appointment Reminders")).click();
// Send reminders
driver.findElement(By.name("withinDays")).sendKeys("10");
driver.findElement(By.name("withinDays")).submit();
assertEquals("Reminders were successfully sent",
driver.findElement(By.className("iTrustMessage")).getText());
// Create timestamp
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
String stamp = dateFormat.format(date);
// Check admin reminders outbox
driver.findElement(By.linkText("Reminder Message Outbox")).click();
assertNotNull(driver.findElement(By.className("fancyTable")));
assertTrue(driver.getPageSource().contains(stamp));
// Check a reminder message
driver.findElement(By.linkText("Read")).click();
assertTrue(driver.getPageSource().contains(stamp));
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// Logout admin and login as patient
List<WebElement> links = driver.findElements(By.tagName("a"));
int count = 0;
for(int i = 0; i < links.size(); i++) {
if(links.get(i).getAttribute("href").contains("logout"))
{
count = i;
break;
}
}
links.get(count).click();
driver = login("5", "pw");
// Check patient inbox
driver.findElement(By.linkText("Message Inbox")).click();
int index = 1;
WebElement baseTable = driver.findElement(By.cssSelector(".display.fTable"));
List<WebElement> tableRows = baseTable.findElements(By.tagName("tr"));
assertTrue(tableRows.get(index).getText().contains("System Reminder"));
assertTrue(tableRows.get(index).getText().contains("Reminder: upcoming appointment"));
index++;
assertTrue(tableRows.get(index).getText().contains("Reminder: upcoming appointment"));
assertTrue(tableRows.get(index).getText().contains(stamp));
}
// Test invalid number of days input for sending reminders
public void testInvalidSendReminder() throws Exception {
// Login as admin
driver = login("9000000001", "pw");
assertEquals("iTrust - Admin Home", driver.getTitle());
driver.findElement(By.linkText("Send Appointment Reminders")).click();
// Send reminder with negative days
driver.findElement(By.name("withinDays")).sendKeys("-4");
driver.findElement(By.name("withinDays")).submit();
assertEquals("Provide a positive number",
driver.findElement(By.className("iTrustError")).getText());
// Send reminder with non-numberic days
driver.findElement(By.name("withinDays")).sendKeys("Hello");
driver.findElement(By.name("withinDays")).submit();
assertEquals("Reminders failed to send. Please provide a positive number",
driver.findElement(By.className("iTrustError")).getText());
}
}