package de.unigoettingen.sub.commons.ocr.web.testutil;
import static org.junit.Assert.assertEquals;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.gargoylesoftware.htmlunit.HttpMethod;
import com.gargoylesoftware.htmlunit.TextPage;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.util.NameValuePair;
import de.unigoettingen.sub.commons.ocr.web.TestSuiteForJspsAndServlets;
public class OcrServletTestPart {
private static int jettyPort = TestSuiteForJspsAndServlets.jettyPort;
private WebClient webClient;
private WebRequest request;
private List<NameValuePair> params;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Before
public void setUp() throws Exception {
webClient = new WebClient();
request = new WebRequest(new URL("http://localhost:" + jettyPort + "/ocr-servlet-child"), HttpMethod.POST);
params = new ArrayList<NameValuePair>();
}
@Test
public void servletShouldStartOcr() throws Exception {
params.add(new NameValuePair("fakeValidationMessage", "OK"));
request.setRequestParameters(params);
TextPage page = webClient.getPage(request);
assertEquals("Forwarded to view: ocr-started.jsp", page.getContent());
}
@Test
public void servletShouldDenyOcr() throws Exception {
params.add(new NameValuePair("fakeValidationMessage", "Error"));
request.setRequestParameters(params);
TextPage page = webClient.getPage(request);
assertEquals("Forwarded to view: invalid-parameters.jsp", page.getContent());
}
@Test
public void twoSubsequentOkRequests() throws Exception {
params.add(new NameValuePair("fakeValidationMessage", "OK"));
request.setRequestParameters(params);
TextPage page = webClient.getPage(request);
assertEquals("Forwarded to view: ocr-started.jsp", page.getContent());
TextPage page2 = webClient.getPage(request);
assertEquals("Forwarded to view: ocr-started.jsp", page2.getContent());
}
// TODO: probably an unnecessary test
@Test
public void twoParallelOkRequests() throws Exception {
new Thread(
new Runnable() {
private WebClient webClient1;
private WebRequest request1;
private List<NameValuePair> params1;
public void run() {
try {
webClient1 = new WebClient();
request1 = new WebRequest(new URL("http://localhost:" + jettyPort + "/ocr-servlet-child"), HttpMethod.POST);
params1 = new ArrayList<NameValuePair>();
params1.add(new NameValuePair("fakeValidationMessage", "OK"));
request1.setRequestParameters(params1);
webClient1.getPage(request1);
} catch (Exception e) {
System.out.println("my exxxxxxxxxx: " + e);
}
}
}).start();
Thread.sleep(2);
new Thread(
new Runnable() {
private WebClient webClient2;
private WebRequest request2;
private List<NameValuePair> params2;
public void run() {
try {
webClient2 = new WebClient();
request2 = new WebRequest(new URL("http://localhost:" + jettyPort + "/ocr-servlet-child"), HttpMethod.POST);
params2 = new ArrayList<NameValuePair>();
params2.add(new NameValuePair("fakeValidationMessage", "OK"));
request2.setRequestParameters(params2);
webClient2.getPage(request2);
} catch (Exception e) {
System.out.println(e);
}
}
}).start();
// TODO: join() ?
Thread.sleep(100);
}
}