package com.metservice.kanban.jwebunit;
import net.sourceforge.jwebunit.junit.WebTester;
public class WorkItemPage {
private final WebTester tester;
public WorkItemPage(WebTester tester) {
this.tester = tester;
}
public WorkItemPage enterName(String name) {
tester.setTextField("name", name);
return this;
}
public WorkItemPage enterNotes(String name) {
tester.setTextField("notes", name);
return this;
}
public WorkItemPage enterAverageCase(String size) {
tester.setTextField("averageCaseEstimate", size);
return this;
}
public WorkItemPage enterWorstCase(String size) {
tester.setTextField("worstCaseEstimate", size);
return this;
}
public WorkItemPage setParent(String name) {
tester.selectOption("parentId", name);
return this;
}
public WorkItemPage tickExcludeBox() {
tester.getTestingEngine().setWorkingForm("edit", 0);
tester.checkCheckbox("excluded");
return this;
}
public WorkItemPage untickExcludeBox() {
tester.getTestingEngine().setWorkingForm("edit", 0);
tester.uncheckCheckbox("excluded");
return this;
}
public BoardPage clickSaveButton() {
tester.clickButton("save-button");
return new BoardPage(tester);
}
public PrintPage clickSaveAndPrintButton() {
tester.clickButton("save-and-print-button");
return new PrintPage(tester);
}
public BoardPage clickDeleteButtonAndConfirm() {
tester.setExpectedJavaScriptConfirm("Permanently delete this work item?", true);
tester.clickButton("delete-button");
return new BoardPage(tester);
}
public WorkItemPage assertParentIs(String featureName) {
tester.assertSelectedOptionEquals("parentId", featureName);
return this;
}
public WorkItemPage assertExcludeBoxIs(Boolean excluded) {
tester.getTestingEngine().setWorkingForm("edit", 0);
if (excluded) {
tester.assertCheckboxSelected("excluded");
} else {
tester.assertCheckboxNotSelected("excluded");
}
return this;
}
public void dumpPageSourceToConsole() {
System.out.println(tester.getPageSource());
}
}