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

import static org.junit.Assert.*;

import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

import edu.ncsu.csc.itrust.enums.TransactionType;
import edu.ncsu.csc.itrust.unit.DBBuilder;
import edu.ncsu.csc.itrust.unit.testutils.TestDAOFactory;

/**
 * Selenium test conversion for HttpUnit HealthDataChartTest
 */

@SuppressWarnings("unused")
public class HealthDataChartTest extends iTrustSeleniumTest {
	
	private HtmlUnitDriver driver;

	@Before
	protected void setUp() throws Exception {
		super.setUp();
		gen.clearAllTables();
		gen.standardData();	
		driver = new HtmlUnitDriver();
		driver.get("http://localhost:8080/iTrust/");
		
	}

	/*
	 * Test ability to view line chart for patient weight
	 */
	public void testGetWeightLineChart() throws Exception {
		
		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		assertEquals("iTrust - HCP Home", driver.getTitle());
		assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
		
		driver.findElement(By.cssSelector("a[href='/iTrust/auth/hcp-uap/viewBasicHealth.jsp']")).click();
		assertEquals("iTrust - Please Select a Patient", driver.getTitle());
		
		driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
		driver.findElement(By.xpath("//input[@value='2']")).submit();
		assertLogged(TransactionType.HCP_VIEW_BASIC_HEALTH_METRICS, 9000000000L, 2L, "");
		
		driver.findElement(By.id("viewWeightChart")).click();
		assertEquals("iTrust - Weight Chart", driver.getTitle());
		assertLogged(TransactionType.BASIC_HEALTH_CHARTS_VIEW, 9000000000L, 2L, "Weight");
	}
	
	/*
	 * Test if patient BMI is viewable
	 */
	public void testCalculateBMI() throws Exception {
		
		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		assertEquals("iTrust - HCP Home", driver.getTitle());
		assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
		
		driver.findElement(By.cssSelector("a[href='/iTrust/auth/hcp-uap/viewBasicHealth.jsp']")).click();
		assertEquals("iTrust - Please Select a Patient", driver.getTitle());
		driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
		driver.findElement(By.xpath("//input[@value='2']")).submit();
		assertLogged(TransactionType.HCP_VIEW_BASIC_HEALTH_METRICS, 9000000000L, 2L, "");
		
		assertTrue(driver.getPageSource().contains("Andy Programmer's Basic Adult Health History"));
		element = driver.findElement(By.id("HealthRecordsTable"));
		
		boolean matchedOctober = false;
		boolean matchedAugust = false; 
		
		if(element.getText().contains("2007-08-12 08:34:58.0") && element.getText().contains("37.34"))
			matchedAugust = true;
		else if(element.getText().contains("2007-10-30 10:54:22.0") && element.getText().contains("38.24"))
			matchedOctober = true;
		
	}
	
	/*
	 * Test ability to view line chart for patient height
	 */
	public void testGetHeightLineChart() throws Exception {
		
		WebElement element;
		
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).sendKeys("pw");
		
		driver.findElement(By.cssSelector("input[type='submit']")).click();
		assertEquals("iTrust - HCP Home", driver.getTitle());
		assertLogged(TransactionType.HOME_VIEW, 9000000000L, 0L, "");
		
		driver.findElement(By.cssSelector("a[href='/iTrust/auth/hcp-uap/viewBasicHealth.jsp']")).click();
		assertEquals("iTrust - Please Select a Patient", driver.getTitle());
		
		driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
		driver.findElement(By.xpath("//input[@value='2']")).submit();
		assertLogged(TransactionType.HCP_VIEW_BASIC_HEALTH_METRICS, 9000000000L, 2L, "");
		
		driver.findElement(By.id("viewHeightChart")).click();
		assertEquals("iTrust - Height Chart", driver.getTitle());
		assertLogged(TransactionType.BASIC_HEALTH_CHARTS_VIEW, 9000000000L, 2L, "Height");	
	}

	@After
	public void tearDown() throws Exception {
		driver.quit();
	}
}