X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FHttpTestCase.java;fp=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FHttpTestCase.java;h=0000000000000000000000000000000000000000;hp=bd28c91bfd2731ca3e0164269da798e01da85512;hb=d0f92829349bec782236b5ad0ef089b961cd4901;hpb=74241e3e3fcf85d3ac34d56d4551262c960e6c87 diff --git a/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/HttpTestCase.java b/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/HttpTestCase.java deleted file mode 100644 index bd28c91b..00000000 --- a/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/HttpTestCase.java +++ /dev/null @@ -1,191 +0,0 @@ -package de.halbekunst.juplo.cachecontrol; - -import com.meterware.httpunit.WebResponse; -import com.meterware.servletunit.InvocationContext; -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Enumeration; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpServletResponseWrapper; -import org.junit.Before; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author kai - */ -public abstract class HttpTestCase { - private final static Logger log = LoggerFactory.getLogger(HttpTestCase.class); - - private ServletRunner sr; - ServletUnitClient client; - int buffer = 2048; - - - @Before - public void init() throws Exception { - sr = new ServletRunner(ParameterGuessingTest.class.getResourceAsStream("/web.xml")); - client = sr.newClient(); - } - - protected WebResponse executeRequest(String uri) throws Exception { - log.debug("---------- GET: {}", uri); - InvocationContext invocation = client.newInvocation(uri); - HttpServletRequest request = invocation.getRequest(); - log.debug("Request - {}: {}", request.getMethod(), request.getProtocol()); - Enumeration headers = request.getHeaderNames(); - while (headers.hasMoreElements()) { - String header = headers.nextElement(); - Enumeration values = request.getHeaders(header); - while (values.hasMoreElements()) - log.debug("Request - {}: {}", header, values.nextElement()); - } - log.debug("Invocing service method."); - - /** - * We cannot call invocation.service(), because we have to wrap the - * response. Therefore this was coppied from InvocationContextImpl. - */ - TestHttpServletResponse wrappedResponse = new TestHttpServletResponse(invocation.getResponse()); - if (invocation.isFilterActive()) { - invocation.getFilter().doFilter(invocation.getRequest(), wrappedResponse, invocation.getFilterChain()); - } - else { - invocation.getServlet().service(invocation.getRequest(), wrappedResponse); - } - - WebResponse response = client.getResponse(invocation); - log.debug("Response - {}: {}", response.getResponseCode(), response.getResponseMessage()); - log.debug("Response - {}, {} bytes", response.getContentType(), wrappedResponse.getCount()); - for (String header : response.getHeaderFieldNames()) { - for (String value : response.getHeaderFields(header)) { - log.debug("Response - {}: {}", header, value); - } - } - return response; - } - - - class TestHttpServletResponse extends HttpServletResponseWrapper { - - private CountingServletOutputStream out; - private HttpServletResponse response; - private ServletOutputStream stream; - private PrintWriter writer; - private boolean committed = false; - - - TestHttpServletResponse(HttpServletResponse response) { - super(response); - this.response = response; - } - - - public long getCount() { - if (out == null) - return -1l; - else - return out.count; - } - - - @Override - public void flushBuffer() throws IOException { - committed = true; - super.flushBuffer(); - } - - @Override - public int getBufferSize() { - return buffer; - } - - @Override - public boolean isCommitted() { - return committed; - } - - @Override - public void reset() { - if (committed) - throw new IllegalStateException("call to reset() after response has been commited!"); - if (out != null) - out.count = 0; - super.reset(); - } - - @Override - public void resetBuffer() { - if (committed) - throw new IllegalStateException("call to resetBuffer() after response has been commited!"); - if (out != null) - out.count = 0; - super.resetBuffer(); - } - - @Override - public void setBufferSize(int size) { - if (out != null && out.count > 0) - throw new IllegalStateException("call to setBuffer() after content has been written!"); - buffer = size; - } - - @Override - public ServletOutputStream getOutputStream() throws IOException { - - if (writer != null) - throw new IllegalStateException("ServletOutputStream and PrintWriter cannot be requested both!"); - - if (stream == null) { - out = new CountingServletOutputStream(response.getOutputStream()); - stream = out; - } - - return stream; - } - - @Override - public PrintWriter getWriter() throws IOException { - - if (stream != null) - throw new IllegalStateException("ServletOutputStream and PrintWriter cannot be requested both!"); - - if (writer == null) { - out = new CountingServletOutputStream(response.getOutputStream()); - writer = new PrintWriter(out); - } - - return writer; - } - - - class CountingServletOutputStream extends ServletOutputStream { - - private ServletOutputStream out; - long count = 0l; - - - CountingServletOutputStream(ServletOutputStream out) { - this.out = out; - } - - - @Override - public void write(int i) throws IOException { - count++; - /** Simulate commit, when count is getting bigger then buffer */ - if (count == buffer + 1) { - log.debug("simulating commit because buffer overflow! buffer: {}, count: {}", buffer, count); - committed = true; - } - out.write(i); - } - } - } -} -