LabelsTest.java 10.48 KiB
package edu.ncsu.csc.itrust.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.support.ui.Select;
public class LabelsTest extends iTrustSeleniumTest {
/**
* Sets up the standard testing data.
*/
public void setUp() throws Exception {
super.setUp();
gen.standardData();
}
/**
* Tests a patient can create a new label when there
* are no other labels
*/
public void testCreateLabel() throws Exception{
WebDriver driver = new HtmlUnitDriver();
driver = login("1", "pw"); //login as Random Person
//go to label management page
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
//add a label name, use default label color - white/#FFFFFF
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
labelName.submit();
//table contains text boxes for editting purposes
//so we need to get the value inside the textbox
labelName = driver.findElement(By.name("Label:0"));
assertEquals("Test", labelName.getAttribute(VALUE));
}
/**
* Tests a patient can edit a label
*/
public void testEditLabel() throws Exception {
//need to enable javascript
HtmlUnitDriver driver = new HtmlUnitDriver();
driver = (HtmlUnitDriver)login("1", "pw"); //login as Random Person
driver.setJavascriptEnabled(true);
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
driver.setJavascriptEnabled(true);
//add a label name, use default label color - white/#FFFFFF
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
//edit the label name field and submit
WebElement editButton = driver.findElement(By.cssSelector("input[value='Edit Entry']"));
editButton.click();
labelName = driver.findElement(By.name("Label:0"));
labelName.clear();
labelName.sendKeys("Updated");
WebElement submitButton = driver.findElement(By.cssSelector("input[value='Submit']"));
submitButton.click();
//table contains text boxes for editting purposes
//so we need to get the value inside the textbox
labelName = driver.findElement(By.name("Label:0"));
assertEquals("Updated", labelName.getAttribute(VALUE));
}
/**
* Tests a patient can delete a label
*/
public void testDeleteLabel() throws Exception {
//need to enable javascript
HtmlUnitDriver driver = new HtmlUnitDriver();
driver = (HtmlUnitDriver)login("1", "pw"); //login as Random Person
driver.setJavascriptEnabled(true);
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
driver.setJavascriptEnabled(true);
//add a "Test" label
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
//add "Test 2" label
labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test 2");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
driver.findElement(By.cssSelector("input[value='Delete Label']")).click();
labelName = driver.findElement(By.name("Label:0"));
assertEquals("Test 2", labelName.getAttribute(VALUE));
}
/**
* Tests a patient can apply a label to their food diary
*/
public void testApplyLabeltoFood() throws Exception {
//need to enable javascript
HtmlUnitDriver driver = new HtmlUnitDriver();
driver = (HtmlUnitDriver)login("1", "pw"); //login as Random Person
driver.setJavascriptEnabled(true);
//view my food diary so we can add a new entry
driver.findElement(By.linkText("My Food Diary")).click();
assertEquals("iTrust - View My Food Diary", driver.getTitle());
driver.findElement(By.linkText("Add an entry to your Food Diary.")).click();
assertEquals("Add a Food Entry", driver.getTitle());
//now fill in all of the info and submit
WebElement dateEaten = driver.findElement(By.name("dateEatenStr"));
dateEaten.clear();
dateEaten.sendKeys("02/04/2015");
Select meal = new Select(driver.findElement(By.name("mealType")));
meal.selectByValue("Dinner");
WebElement food = driver.findElement(By.name("food"));
food.clear();
food.sendKeys("Fruity Pebbles");
WebElement servings = driver.findElement(By.name("servings"));
servings.clear();
servings.sendKeys("7");
WebElement cals = driver.findElement(By.name("calories"));
cals.clear();
cals.sendKeys("110");
WebElement fat = driver.findElement(By.name("fat"));
fat.clear();
fat.sendKeys("1");
WebElement sodium = driver.findElement(By.name("sodium"));
sodium.clear();
sodium.sendKeys("170");
WebElement carbs = driver.findElement(By.name("carb"));
carbs.clear();
carbs.sendKeys("24");
WebElement fiber = driver.findElement(By.name("fiber"));
fiber.clear();
fiber.sendKeys("0");
WebElement sugar = driver.findElement(By.name("sugar"));
sugar.clear();
sugar.sendKeys("11");
WebElement protein = driver.findElement(By.name("protein"));
protein.clear();
protein.sendKeys("1");
driver.findElement(By.cssSelector("input[value='Add entry to Food Diary']")).click();
assertEquals("iTrust - View My Food Diary", driver.getTitle());
//navigate to My Labels page
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
driver.setJavascriptEnabled(true);
//add a "Test" label
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
//Select food diary, label, start and end dates and apply the label
Select diary = new Select(driver.findElement(By.name("diaries")));
Select label = new Select(driver.findElement(By.name("labels")));
diary.selectByValue("food");
label.selectByIndex(0);
WebElement startDate = driver.findElement(By.name("startDate"));
startDate.clear();
startDate.sendKeys("02/04/2015");
WebElement endDate = driver.findElement(By.name("endDate"));
endDate.clear();
endDate.sendKeys("02/04/2015");
driver.findElement(By.cssSelector("input[value='Apply Label']")).click();
//go back to view my food diary
driver.findElement(By.linkText("My Food Diary")).click();
assertEquals("iTrust - View My Food Diary", driver.getTitle());
//make sure the label was applied
Select appliedLabel = new Select(driver.findElement(By.name("LabelEntry:0")));
WebElement appliedLabelName = appliedLabel.getFirstSelectedOption();
assertEquals("Test", appliedLabelName.getText());
}
/**
* Tests a patient can apply a label to their exercise diary
*/
public void testApplyLabeltoExercise() throws Exception {
//need to enable javascript
HtmlUnitDriver driver = new HtmlUnitDriver();
driver = (HtmlUnitDriver)login("1", "pw"); //login as Random Person
driver.setJavascriptEnabled(true);
//navigate to My Labels page
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
driver.setJavascriptEnabled(true);
//add a "Test" label
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
//Select exercise diary, label, start and end dates and apply the label
Select diary = new Select(driver.findElement(By.name("diaries")));
Select label = new Select(driver.findElement(By.name("labels")));
diary.selectByValue("exercise");
label.selectByIndex(0);
WebElement startDate = driver.findElement(By.name("startDate"));
startDate.clear();
startDate.sendKeys("12/14/2012");
WebElement endDate = driver.findElement(By.name("endDate"));
endDate.clear();
endDate.sendKeys("12/14/2012");
driver.findElement(By.cssSelector("input[value='Apply Label']")).click();
//go to view my exercise diary
driver.findElement(By.linkText("My Exercise Diary")).click();
assertEquals("iTrust - View My Exercise Diary", driver.getTitle());
//make sure the label was applied
Select appliedLabel = new Select(driver.findElement(By.name("LabelEntry:0")));
WebElement appliedLabelName = appliedLabel.getFirstSelectedOption();
assertEquals("Test", appliedLabelName.getText());
}
/**
* Tests a patient can apply a label to their sleep diary
*/
public void testApplyLabeltoSleep() throws Exception {
//need to enable javascript
HtmlUnitDriver driver = new HtmlUnitDriver();
driver = (HtmlUnitDriver)login("1", "pw"); //login as Random Person
driver.setJavascriptEnabled(true);
//navigate to My Labels page
driver.findElement(By.linkText("My Labels")).click();
assertEquals("iTrust - My Labels", driver.getTitle());
driver.setJavascriptEnabled(true);
//add a "Test" label
WebElement labelName = driver.findElement(By.name("createLabelName"));
labelName.clear();
labelName.sendKeys("Test");
driver.findElement(By.cssSelector("input[value='Create Label']")).click();
//Select sleep diary, label, start and end dates and apply the label
Select diary = new Select(driver.findElement(By.name("diaries")));
Select label = new Select(driver.findElement(By.name("labels")));
diary.selectByValue("sleep");
label.selectByIndex(0);
WebElement startDate = driver.findElement(By.name("startDate"));
startDate.clear();
startDate.sendKeys("12/14/2012");
WebElement endDate = driver.findElement(By.name("endDate"));
endDate.clear();
endDate.sendKeys("12/14/2012");
driver.findElement(By.cssSelector("input[value='Apply Label']")).click();
//go to view my sleep diary
driver.findElement(By.linkText("My Sleep Diary")).click();
assertEquals("iTrust - View My Sleep Diary", driver.getTitle());
//make sure the label was applied
Select appliedLabel = new Select(driver.findElement(By.name("LabelEntry:0")));
WebElement appliedLabelName = appliedLabel.getFirstSelectedOption();
assertEquals("Test", appliedLabelName.getText());
}
}