diff --git a/iTrust/WebRoot/loginMenu.jsp b/iTrust/WebRoot/loginMenu.jsp index 1760757f3c8f57fd476c0eb73ce6d59083cf37e2..38d20c40b23567559c35875466f36538da721d76 100644 --- a/iTrust/WebRoot/loginMenu.jsp +++ b/iTrust/WebRoot/loginMenu.jsp @@ -43,7 +43,7 @@ function fillLoginFields(u,p) { <br /><br /> <a style="font-size: 80%;" href="/iTrust/util/resetPassword.jsp">Reset Password</a> <a> </a> - <a style="font-size: 80%;" href="/iTrust/util/PreRegisterPatient.jsp">Pre-Register</a> + <a style="font-size: 80%;" href="/iTrust/util/PreRegisterPatient.jsp" id="preregister_link">Pre-Register</a> </form> <% diff --git a/iTrust/WebRoot/util/PreRegisterPatient.jsp b/iTrust/WebRoot/util/PreRegisterPatient.jsp index 5a99c5e52e5df5a8b2dee6eb3f9d286a0137c127..03ecc8872140027f5c5d785530af380e59b220b2 100755 --- a/iTrust/WebRoot/util/PreRegisterPatient.jsp +++ b/iTrust/WebRoot/util/PreRegisterPatient.jsp @@ -189,7 +189,7 @@ to recover the password.</div> <br /> -<input type="submit" style="font-size: 16pt; font-weight: bold;" value="Patient Pre-Register"> +<input type="submit" style="font-size: 16pt; font-weight: bold;" value="Patient Pre-Register" id="submit_preregister"> </form> <br /> </div> diff --git a/iTrust/test/edu/ncsu/csc/itrust/selenium/PreRegisterPatientTest.java b/iTrust/test/edu/ncsu/csc/itrust/selenium/PreRegisterPatientTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0633b193d6621d963adeb3fed20042521dbd0ed5 --- /dev/null +++ b/iTrust/test/edu/ncsu/csc/itrust/selenium/PreRegisterPatientTest.java @@ -0,0 +1,103 @@ +package edu.ncsu.csc.itrust.selenium; + +import org.openqa.selenium.*; +import java.util.concurrent.TimeUnit; +import org.openqa.selenium.htmlunit.HtmlUnitDriver; + + + +import edu.ncsu.csc.itrust.enums.TransactionType; + +public class PreRegisterPatientTest extends iTrustSeleniumTest { + + protected WebDriver driver; + + @Override + protected void setUp() throws Exception { + super.setUp(); + gen.clearAllTables(); + gen.standardData(); + + driver = new HtmlUnitDriver(); + driver.manage().timeouts().implicitlyWait(DEFAULT_TIMEOUT, TimeUnit.SECONDS); + } + + private void goToPreRegister() { + // Go to preregister page + driver.get(ADDRESS); + driver.findElement(By.id("preregister_link")).click(); + } + + public void testPreRegisterPatientButton() throws Exception { + goToPreRegister(); + assertEquals("iTrust - PreRegister Patient", driver.getTitle()); + } + + public void testPreRegisterPatientSuccessRequired() throws Exception { + goToPreRegister(); + + // Fill the form + driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys("fname"); + driver.findElement(By.xpath("//input[@name='lastName']")).sendKeys("lname"); + driver.findElement(By.xpath("//input[@name='email']")).sendKeys("name@email.com"); + driver.findElement(By.xpath("//input[@name='password']")).sendKeys("Password123"); + driver.findElement(By.xpath("//input[@name='verifyPassword']")).sendKeys("Password123"); + + // Submit + driver.findElement(By.id("submit_preregister")).click(); + + assertTrue(driver.findElement(By.xpath("//body")).getText().contains("New Pre-registered Patient Information")); + } + + public void testMissingElements() { + goToPreRegister(); + + // Check that all elements have the required attribute + assertTrue( + Boolean.parseBoolean(driver.findElement(By.xpath("//input[@name='firstName']")).getAttribute("required")) + && Boolean.parseBoolean(driver.findElement(By.xpath("//input[@name='lastName']")).getAttribute("required")) + && Boolean.parseBoolean(driver.findElement(By.xpath("//input[@name='email']")).getAttribute("required")) + && Boolean.parseBoolean(driver.findElement(By.xpath("//input[@name='password']")).getAttribute("required")) + && Boolean.parseBoolean(driver.findElement(By.xpath("//input[@name='verifyPassword']")).getAttribute("required")) + ); + + // Make sure that the form does not submit + driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys(""); + driver.findElement(By.xpath("//input[@name='lastName']")).sendKeys("lname"); + driver.findElement(By.xpath("//input[@name='email']")).sendKeys("name@email.com"); + driver.findElement(By.xpath("//input[@name='password']")).sendKeys("Password123"); + driver.findElement(By.xpath("//input[@name='verifyPassword']")).sendKeys("Password123"); + + driver.findElement(By.id("submit_preregister")).click(); + + assertFalse(driver.findElement(By.xpath("//body")).getText().contains("New Pre-registered Patient Information")); + } + + public void testInvalidName() { + goToPreRegister(); + + driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys("123abc"); + driver.findElement(By.xpath("//input[@name='lastName']")).sendKeys("lname"); + driver.findElement(By.xpath("//input[@name='email']")).sendKeys("name@email.com"); + driver.findElement(By.xpath("//input[@name='password']")).sendKeys("Password123"); + driver.findElement(By.xpath("//input[@name='verifyPassword']")).sendKeys("Password123"); + + driver.findElement(By.id("submit_preregister")).click(); + + assertTrue(driver.findElement(By.xpath("//body")).getText().contains("This form has not been validated correctly")); + } + + public void testInvalidEmail() { + goToPreRegister(); + + driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys("fname"); + driver.findElement(By.xpath("//input[@name='lastName']")).sendKeys("lname"); + driver.findElement(By.xpath("//input[@name='email']")).sendKeys("not-an-email"); + driver.findElement(By.xpath("//input[@name='password']")).sendKeys("Password123"); + driver.findElement(By.xpath("//input[@name='verifyPassword']")).sendKeys("Password123"); + + driver.findElement(By.id("submit_preregister")).click(); + + assertTrue(driver.findElement(By.xpath("//body")).getText().contains("This form has not been validated correctly")); + } +} \ No newline at end of file