Skip to content
Snippets Groups Projects
EditApptTest.java 3.29 KiB
package edu.ncsu.csc.itrust.selenium;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

import edu.ncsu.csc.itrust.enums.TransactionType;

public class EditApptTest extends iTrustSeleniumTest{
  private HtmlUnitDriver driver;
  private StringBuffer verificationErrors = new StringBuffer();

  @Before
  public void setUp() throws Exception {
	super.setUp();
	gen.clearAllTables();
	gen.standardData();
    driver = new HtmlUnitDriver();
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
  }

  @Test
  public void testSetPassedDate() throws Exception {
	  gen.uc22();
	  driver = (HtmlUnitDriver)login("9000000000", "pw");
	  driver.setJavascriptEnabled(true);
	  assertEquals("iTrust - HCP Home", driver.getTitle());
	  driver.findElement(By.linkText("View My Appointments")).click();
	  assertLogged(TransactionType.APPOINTMENT_ALL_VIEW, 9000000000L, 0L, "");
	  driver.findElements(By.tagName("td")).get(35).findElement(By.tagName("a")).click();
	  driver.findElement(By.name("schedDate")).clear();
	  driver.findElement(By.name("schedDate")).sendKeys("10/10/2009");
	  driver.findElement(By.id("changeButton")).click();
	  assertTrue(driver.getPageSource().contains("The scheduled date of this appointment"));
	  assertTrue(driver.getPageSource().contains("has already passed")); 
	  assertNotLogged(TransactionType.APPOINTMENT_EDIT, 9000000000L, 100L, "");
  }

  @Test
  public void testRemoveAppt() throws Exception {
	  gen.uc22();
	  driver = (HtmlUnitDriver)login("9000000000", "pw");
	  driver.setJavascriptEnabled(true);
	  assertEquals("iTrust - HCP Home", driver.getTitle());
	  driver.findElement(By.linkText("View My Appointments")).click();
	  assertLogged(TransactionType.APPOINTMENT_ALL_VIEW, 9000000000L, 0L, "");
	  driver.findElements(By.tagName("td")).get(23).findElement(By.tagName("a")).click();
	  driver.findElement(By.id("removeButton")).click();
	  assertTrue(driver.getPageSource().contains("Success: Appointment removed"));
	  assertLoggedNoSecondary(TransactionType.APPOINTMENT_REMOVE, 9000000000L, 0L, "");
  }
  
  @Test
  public void testEditAppt() throws Exception {
	  driver = (HtmlUnitDriver)login("9000000000", "pw");
	  driver.setJavascriptEnabled(true);
    assertEquals("iTrust - HCP Home", driver.getTitle());
    driver.findElement(By.linkText("View My Appointments")).click();
    assertLogged(TransactionType.APPOINTMENT_ALL_VIEW, 9000000000L, 0L, "");
    List<WebElement> rows = driver.findElements(By.tagName("td"));
    //should be the last one
    WebElement mine = rows.get(rows.size() - 1);
    mine.findElement(By.tagName("a")).click();
    assertTrue(driver.getPageSource().contains("Andy Programmer"));
    driver.findElement(By.name("comment")).clear();
    driver.findElement(By.name("comment")).sendKeys("New comment!");
    driver.findElement(By.id("changeButton")).click();
    assertTrue(driver.getPageSource().contains("Success: Appointment changed"));
    assertLogged(TransactionType.APPOINTMENT_EDIT, 9000000000L, 2L, "");
  }
 
  
  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }
}