package de.unigoettingen.sub.commons.ocr.web.testutil;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import org.junit.Before;
import org.junit.Test;
import com.gargoylesoftware.htmlunit.TextPage;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import de.unigoettingen.sub.commons.ocr.web.TestSuiteForJspsAndServlets;
public class IndexJspTestPart {
private static int jettyPort = TestSuiteForJspsAndServlets.jettyPort;
private HtmlForm form;
@Before
public void setUp() throws Exception {
WebClient webClient = new WebClient();
HtmlPage jsp = webClient.getPage("http://localhost:" + jettyPort + "/index.jsp");
form = jsp.getFormByName("startOcr");
}
@Test
public void shouldContainAllInputFields() {
form.getInputByName("inputFolder");
form.getInputByName("outputFolder");
assertThat("No textType radio buttons found", form.getRadioButtonsByName("textType"), is(not(empty())));
form.getSelectByName("languages");
form.getSelectByName("outputFormats");
form.getInputByName("email");
form.getSelectByName("ocrEngine");
form.getInputByName("user");
form.getInputByName("submit");
}
@Test
public void submittingTheFormShouldPostAllParameters() throws Exception {
form.getInputByName("inputFolder").setValueAttribute("/home/test/in");
form.getInputByName("outputFolder").setValueAttribute("/home/test/out");
form.getRadioButtonsByName("textType").get(1).click();
form.getSelectByName("languages").setSelectedAttribute("en", true);
form.getSelectByName("outputFormats").setSelectedAttribute("XML", true);
form.getInputByName("email").setValueAttribute("mail@test.de");
form.getSelectByName("ocrEngine").setSelectedAttribute("gbvFraktur", true);
form.getInputByName("user").setValueAttribute("user1");
form.getInputByName("password").setValueAttribute("passwd");
HtmlSubmitInput button = form.getInputByName("submit");
TextPage fakeServlet = button.click();
String textFromFakeServlet = fakeServlet.getContent();
assertThat(textFromFakeServlet, containsString("/home/test/in"));
assertThat(textFromFakeServlet, containsString("/home/test/out"));
assertThat(textFromFakeServlet, containsString("GOTHIC"));
assertThat(textFromFakeServlet, containsString("en"));
assertThat(textFromFakeServlet, containsString("XML"));
assertThat(textFromFakeServlet, containsString("mail@test.de"));
assertThat(textFromFakeServlet, containsString("gbvFraktur"));
assertThat(textFromFakeServlet, containsString("user1"));
assertThat(textFromFakeServlet, containsString("passwd"));
}
}