jetty-9 progress on jetty-servlets test harnesses
This commit is contained in:
parent
acbf20af27
commit
bc02ce4de7
|
@ -11,151 +11,14 @@ import org.eclipse.jetty.util.StringUtil;
|
||||||
|
|
||||||
public class HttpTester
|
public class HttpTester
|
||||||
{
|
{
|
||||||
private Message _message;
|
private HttpTester(){};
|
||||||
private Request _request;
|
|
||||||
private Response _response;
|
|
||||||
|
|
||||||
public void setMethod(String method)
|
public static Request newRequest()
|
||||||
{
|
{
|
||||||
if (_request==null)
|
return new Request();
|
||||||
_request=new Request();
|
|
||||||
_message=_request;
|
|
||||||
_request._method=method;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(HttpVersion version)
|
|
||||||
{
|
|
||||||
if (_message==null)
|
|
||||||
_message=_response=new Response();
|
|
||||||
_message._version=version;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVersion(String version)
|
|
||||||
{
|
|
||||||
setVersion(HttpVersion.CACHE.get(version));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeader(String name, String value)
|
|
||||||
{
|
|
||||||
_message.put(name,value);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setURI(String uri)
|
|
||||||
{
|
|
||||||
if (_request==null)
|
|
||||||
_request=new Request();
|
|
||||||
_message=_request;
|
|
||||||
_request._uri=uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContent(String content)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_message._content=new ByteArrayOutputStream();
|
|
||||||
_message._content.write(StringUtil.getBytes(content));
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
throw new RuntimeIOException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContent(ByteBuffer content)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_message._content=new ByteArrayOutputStream();
|
|
||||||
_message._content.write(BufferUtil.toArray(content));
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
throw new RuntimeIOException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ByteBuffer generate()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
HttpGenerator generator = new HttpGenerator();
|
|
||||||
HttpGenerator.Info info = _message.getInfo();
|
|
||||||
System.err.println(info.getClass());
|
|
||||||
System.err.println(info);
|
|
||||||
|
|
||||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
||||||
ByteBuffer header=BufferUtil.allocate(8192);
|
|
||||||
ByteBuffer buffer=BufferUtil.allocate(8192);
|
|
||||||
ByteBuffer chunk=BufferUtil.allocate(16);
|
|
||||||
ByteBuffer content=_message._content==null?null:ByteBuffer.wrap(_message._content.toByteArray());
|
|
||||||
|
|
||||||
|
|
||||||
loop: while(true)
|
|
||||||
{
|
|
||||||
HttpGenerator.Result result = generator.generate(info,header,chunk,buffer,content,HttpGenerator.Action.COMPLETE);
|
|
||||||
switch(result)
|
|
||||||
{
|
|
||||||
case NEED_BUFFER:
|
|
||||||
case NEED_HEADER:
|
|
||||||
case NEED_CHUNK:
|
|
||||||
case NEED_INFO:
|
|
||||||
throw new IllegalStateException();
|
|
||||||
|
|
||||||
case FLUSH:
|
|
||||||
if (BufferUtil.hasContent(header))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(header));
|
|
||||||
BufferUtil.clear(header);
|
|
||||||
}
|
|
||||||
if (BufferUtil.hasContent(chunk))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(chunk));
|
|
||||||
BufferUtil.clear(chunk);
|
|
||||||
}
|
|
||||||
if (BufferUtil.hasContent(buffer))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(buffer));
|
|
||||||
BufferUtil.clear(buffer);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FLUSH_CONTENT:
|
|
||||||
if (BufferUtil.hasContent(header))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(header));
|
|
||||||
BufferUtil.clear(header);
|
|
||||||
}
|
|
||||||
if (BufferUtil.hasContent(chunk))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(chunk));
|
|
||||||
BufferUtil.clear(chunk);
|
|
||||||
}
|
|
||||||
if (BufferUtil.hasContent(content))
|
|
||||||
{
|
|
||||||
out.write(BufferUtil.toArray(content));
|
|
||||||
BufferUtil.clear(content);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OK:
|
|
||||||
case SHUTDOWN_OUT:
|
|
||||||
break loop;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ByteBuffer.wrap(out.toByteArray());
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
throw new RuntimeIOException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return String.format("%s %s",_request,_response);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Request parseRequest(String request)
|
public static Request parseRequest(String request)
|
||||||
{
|
{
|
||||||
|
@ -199,7 +62,42 @@ public class HttpTester
|
||||||
{
|
{
|
||||||
return _version;
|
return _version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setVersion(String version)
|
||||||
|
{
|
||||||
|
setVersion(HttpVersion.CACHE.get(version));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(HttpVersion version)
|
||||||
|
{
|
||||||
|
_version=version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_content=new ByteArrayOutputStream();
|
||||||
|
_content.write(StringUtil.getBytes(content));
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
throw new RuntimeIOException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(ByteBuffer content)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_content=new ByteArrayOutputStream();
|
||||||
|
_content.write(BufferUtil.toArray(content));
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
throw new RuntimeIOException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean parsedHeader(HttpHeader header, String name, String value)
|
public boolean parsedHeader(HttpHeader header, String name, String value)
|
||||||
{
|
{
|
||||||
|
@ -246,7 +144,83 @@ public class HttpTester
|
||||||
{
|
{
|
||||||
throw new RuntimeIOException(reason);
|
throw new RuntimeIOException(reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ByteBuffer generate()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
HttpGenerator generator = new HttpGenerator();
|
||||||
|
HttpGenerator.Info info = getInfo();
|
||||||
|
System.err.println(info.getClass());
|
||||||
|
System.err.println(info);
|
||||||
|
|
||||||
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
|
ByteBuffer header=BufferUtil.allocate(8192);
|
||||||
|
ByteBuffer buffer=BufferUtil.allocate(8192);
|
||||||
|
ByteBuffer chunk=BufferUtil.allocate(16);
|
||||||
|
ByteBuffer content=_content==null?null:ByteBuffer.wrap(_content.toByteArray());
|
||||||
|
|
||||||
|
|
||||||
|
loop: while(true)
|
||||||
|
{
|
||||||
|
HttpGenerator.Result result = generator.generate(info,header,chunk,buffer,content,HttpGenerator.Action.COMPLETE);
|
||||||
|
switch(result)
|
||||||
|
{
|
||||||
|
case NEED_BUFFER:
|
||||||
|
case NEED_HEADER:
|
||||||
|
case NEED_CHUNK:
|
||||||
|
case NEED_INFO:
|
||||||
|
throw new IllegalStateException();
|
||||||
|
|
||||||
|
case FLUSH:
|
||||||
|
if (BufferUtil.hasContent(header))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(header));
|
||||||
|
BufferUtil.clear(header);
|
||||||
|
}
|
||||||
|
if (BufferUtil.hasContent(chunk))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(chunk));
|
||||||
|
BufferUtil.clear(chunk);
|
||||||
|
}
|
||||||
|
if (BufferUtil.hasContent(buffer))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(buffer));
|
||||||
|
BufferUtil.clear(buffer);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FLUSH_CONTENT:
|
||||||
|
if (BufferUtil.hasContent(header))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(header));
|
||||||
|
BufferUtil.clear(header);
|
||||||
|
}
|
||||||
|
if (BufferUtil.hasContent(chunk))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(chunk));
|
||||||
|
BufferUtil.clear(chunk);
|
||||||
|
}
|
||||||
|
if (BufferUtil.hasContent(content))
|
||||||
|
{
|
||||||
|
out.write(BufferUtil.toArray(content));
|
||||||
|
BufferUtil.clear(content);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OK:
|
||||||
|
case SHUTDOWN_OUT:
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ByteBuffer.wrap(out.toByteArray());
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
throw new RuntimeIOException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
abstract public HttpGenerator.Info getInfo();
|
abstract public HttpGenerator.Info getInfo();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -275,6 +249,16 @@ public class HttpTester
|
||||||
return _uri;
|
return _uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMethod(String method)
|
||||||
|
{
|
||||||
|
_method=method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setURI(String uri)
|
||||||
|
{
|
||||||
|
_uri=uri;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpGenerator.RequestInfo getInfo()
|
public HttpGenerator.RequestInfo getInfo()
|
||||||
{
|
{
|
||||||
|
@ -285,6 +269,11 @@ public class HttpTester
|
||||||
{
|
{
|
||||||
return String.format("%s %s %s\n%s\n",_method,_uri,_version,super.toString());
|
return String.format("%s %s %s\n%s\n",_method,_uri,_version,super.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHeader(String name, String value)
|
||||||
|
{
|
||||||
|
put(name,value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Response extends Message implements HttpParser.ResponseHandler
|
public static class Response extends Message implements HttpParser.ResponseHandler
|
||||||
|
|
|
@ -323,7 +323,10 @@ public class Server extends HandlerWrapper implements Attributes
|
||||||
if (_connectors!=null)
|
if (_connectors!=null)
|
||||||
{
|
{
|
||||||
for (int i=_connectors.length;i-->0;)
|
for (int i=_connectors.length;i-->0;)
|
||||||
try{_connectors[i].stop();}catch(Throwable e){mex.add(e);}
|
{
|
||||||
|
if (_connectors[i]!=null)
|
||||||
|
try{_connectors[i].stop();}catch(Throwable e){mex.add(e);}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {super.doStop(); } catch(Throwable e) { mex.add(e);}
|
try {super.doStop(); } catch(Throwable e) { mex.add(e);}
|
||||||
|
|
|
@ -197,6 +197,13 @@ public class ServletTester extends AggregateLifeCycle
|
||||||
InetAddress.getLocalHost().getHostAddress()
|
InetAddress.getLocalHost().getHostAddress()
|
||||||
)+":"+connector.getLocalPort();
|
)+":"+connector.getLocalPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LocalHttpConnector createLocalConnector()
|
||||||
|
{
|
||||||
|
LocalHttpConnector connector = new LocalHttpConnector();
|
||||||
|
_server.addConnector(connector);
|
||||||
|
return connector;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -75,8 +75,8 @@ public class MultipartFilterTest
|
||||||
public void testBadPost() throws Exception
|
public void testBadPost() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester response = new HttpTester();
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
request.setMethod("POST");
|
request.setMethod("POST");
|
||||||
|
@ -97,8 +97,7 @@ public class MultipartFilterTest
|
||||||
request.setContent(content);
|
request.setContent(content);
|
||||||
|
|
||||||
|
|
||||||
response.parse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertTrue(response.getMethod()==null);
|
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,8 +106,8 @@ public class MultipartFilterTest
|
||||||
public void testPost() throws Exception
|
public void testPost() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester response = new HttpTester();
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
request.setMethod("POST");
|
request.setMethod("POST");
|
||||||
|
@ -128,8 +127,7 @@ public class MultipartFilterTest
|
||||||
|
|
||||||
request.setContent(content);
|
request.setContent(content);
|
||||||
|
|
||||||
response.parse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertTrue(response.getMethod()==null);
|
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
||||||
}
|
}
|
||||||
|
@ -139,8 +137,8 @@ public class MultipartFilterTest
|
||||||
public void testEncodedPost() throws Exception
|
public void testEncodedPost() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester response = new HttpTester();
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
request.setMethod("POST");
|
request.setMethod("POST");
|
||||||
|
@ -160,8 +158,7 @@ public class MultipartFilterTest
|
||||||
|
|
||||||
request.setContent(content);
|
request.setContent(content);
|
||||||
|
|
||||||
response.parse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertTrue(response.getMethod()==null);
|
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
||||||
}
|
}
|
||||||
|
@ -172,8 +169,8 @@ public class MultipartFilterTest
|
||||||
@Test
|
@Test
|
||||||
public void testPostWithContentTransferEncodingBase64() throws Exception {
|
public void testPostWithContentTransferEncodingBase64() throws Exception {
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester response = new HttpTester();
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
request.setMethod("POST");
|
request.setMethod("POST");
|
||||||
|
@ -194,8 +191,7 @@ public class MultipartFilterTest
|
||||||
|
|
||||||
request.setContent(content);
|
request.setContent(content);
|
||||||
|
|
||||||
response.parse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertTrue(response.getMethod()==null);
|
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
||||||
}
|
}
|
||||||
|
@ -206,8 +202,8 @@ public class MultipartFilterTest
|
||||||
@Test
|
@Test
|
||||||
public void testPostWithContentTransferEncodingQuotedPrintable() throws Exception {
|
public void testPostWithContentTransferEncodingQuotedPrintable() throws Exception {
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester response = new HttpTester();
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
request.setMethod("POST");
|
request.setMethod("POST");
|
||||||
|
@ -231,8 +227,7 @@ public class MultipartFilterTest
|
||||||
|
|
||||||
request.setContent(content);
|
request.setContent(content);
|
||||||
|
|
||||||
response.parse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertTrue(response.getMethod()==null);
|
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
assertTrue(response.getContent().indexOf("brown cow")>=0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class PutFilterTest
|
||||||
public void testHandlePut() throws Exception
|
public void testHandlePut() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester.Response response;
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test GET
|
// test GET
|
||||||
|
@ -171,7 +171,7 @@ public class PutFilterTest
|
||||||
public void testHandleDelete() throws Exception
|
public void testHandleDelete() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester.Response response;
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test PUT1
|
// test PUT1
|
||||||
|
@ -208,7 +208,7 @@ public class PutFilterTest
|
||||||
public void testHandleMove() throws Exception
|
public void testHandleMove() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester.Response response;
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test PUT1
|
// test PUT1
|
||||||
|
@ -246,13 +246,13 @@ public class PutFilterTest
|
||||||
public void testHandleOptions() throws Exception
|
public void testHandleOptions() throws Exception
|
||||||
{
|
{
|
||||||
// generated and parsed test
|
// generated and parsed test
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
HttpTester.Response response;
|
HttpTester.Response response;
|
||||||
|
|
||||||
// test PUT1
|
// test PUT1
|
||||||
request.setMethod("OPTIONS");
|
request.setMethod("OPTIONS");
|
||||||
request.setVersion("HTTP/1.0");
|
request.setVersion("HTTP/1.0");
|
||||||
request.setHeader("Host","tester");
|
request.put("Host","tester");
|
||||||
request.setURI("/context/file.txt");
|
request.setURI("/context/file.txt");
|
||||||
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
response = HttpTester.parseResponse(tester.getResponses(request.generate()));
|
||||||
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
assertEquals(HttpServletResponse.SC_OK,response.getStatus());
|
||||||
|
|
|
@ -28,10 +28,12 @@ import javax.servlet.http.HttpServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.eclipse.jetty.server.LocalHttpConnector;
|
||||||
import org.eclipse.jetty.servlet.FilterHolder;
|
import org.eclipse.jetty.servlet.FilterHolder;
|
||||||
import org.eclipse.jetty.servlet.FilterMapping;
|
import org.eclipse.jetty.servlet.FilterMapping;
|
||||||
import org.eclipse.jetty.http.HttpTester;
|
import org.eclipse.jetty.http.HttpTester;
|
||||||
import org.eclipse.jetty.servlet.ServletTester;
|
import org.eclipse.jetty.servlet.ServletTester;
|
||||||
|
import org.eclipse.jetty.util.BufferUtil;
|
||||||
import org.eclipse.jetty.util.log.Log;
|
import org.eclipse.jetty.util.log.Log;
|
||||||
import org.eclipse.jetty.util.log.Logger;
|
import org.eclipse.jetty.util.log.Logger;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
|
@ -43,7 +45,7 @@ public class QoSFilterTest
|
||||||
private static final Logger LOG = Log.getLogger(QoSFilterTest.class);
|
private static final Logger LOG = Log.getLogger(QoSFilterTest.class);
|
||||||
|
|
||||||
private ServletTester _tester;
|
private ServletTester _tester;
|
||||||
private LocalConnector[] _connectors;
|
private LocalHttpConnector[] _connectors;
|
||||||
private CountDownLatch _doneRequests;
|
private CountDownLatch _doneRequests;
|
||||||
private final int NUM_CONNECTIONS = 8;
|
private final int NUM_CONNECTIONS = 8;
|
||||||
private final int NUM_LOOPS = 6;
|
private final int NUM_LOOPS = 6;
|
||||||
|
@ -58,7 +60,7 @@ public class QoSFilterTest
|
||||||
TestServlet.__maxSleepers=0;
|
TestServlet.__maxSleepers=0;
|
||||||
TestServlet.__sleepers=0;
|
TestServlet.__sleepers=0;
|
||||||
|
|
||||||
_connectors = new LocalConnector[NUM_CONNECTIONS];
|
_connectors = new LocalHttpConnector[NUM_CONNECTIONS];
|
||||||
for(int i = 0; i < _connectors.length; ++i)
|
for(int i = 0; i < _connectors.length; ++i)
|
||||||
_connectors[i] = _tester.createLocalConnector();
|
_connectors[i] = _tester.createLocalConnector();
|
||||||
|
|
||||||
|
@ -133,7 +135,7 @@ public class QoSFilterTest
|
||||||
{
|
{
|
||||||
for (int i=0;i<NUM_LOOPS;i++)
|
for (int i=0;i<NUM_LOOPS;i++)
|
||||||
{
|
{
|
||||||
HttpTester request = new HttpTester();
|
HttpTester.Request request = HttpTester.newRequest();
|
||||||
|
|
||||||
request.setMethod("GET");
|
request.setMethod("GET");
|
||||||
request.setHeader("host", "tester");
|
request.setHeader("host", "tester");
|
||||||
|
@ -141,7 +143,7 @@ public class QoSFilterTest
|
||||||
request.setHeader("num", _num+"");
|
request.setHeader("num", _num+"");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
String responseString = _tester.getResponses(request.generate(), _connectors[_num]);
|
String responseString = _connectors[_num].getResponses(BufferUtil.toString(request.generate()));
|
||||||
if(responseString.indexOf("HTTP")!=-1)
|
if(responseString.indexOf("HTTP")!=-1)
|
||||||
{
|
{
|
||||||
_doneRequests.countDown();
|
_doneRequests.countDown();
|
||||||
|
@ -167,7 +169,7 @@ public class QoSFilterTest
|
||||||
URL url=null;
|
URL url=null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
String addr = _tester.createSocketConnector(true);
|
String addr = _tester.createConnector(true);
|
||||||
for (int i=0;i<NUM_LOOPS;i++)
|
for (int i=0;i<NUM_LOOPS;i++)
|
||||||
{
|
{
|
||||||
url=new URL(addr+"/context/test?priority="+(_num%QoSFilter.__DEFAULT_MAX_PRIORITY)+"&n="+_num+"&l="+i);
|
url=new URL(addr+"/context/test?priority="+(_num%QoSFilter.__DEFAULT_MAX_PRIORITY)+"&n="+_num+"&l="+i);
|
||||||
|
|
|
@ -18,12 +18,11 @@ import javax.servlet.DispatcherType;
|
||||||
import javax.servlet.Servlet;
|
import javax.servlet.Servlet;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.eclipse.jetty.io.ByteArrayBuffer;
|
|
||||||
import org.eclipse.jetty.servlet.FilterHolder;
|
import org.eclipse.jetty.servlet.FilterHolder;
|
||||||
import org.eclipse.jetty.servlet.ServletHolder;
|
import org.eclipse.jetty.servlet.ServletHolder;
|
||||||
import org.eclipse.jetty.servlets.GzipFilter;
|
import org.eclipse.jetty.servlets.GzipFilter;
|
||||||
import org.eclipse.jetty.testing.HttpTester;
|
import org.eclipse.jetty.http.HttpTester;
|
||||||
import org.eclipse.jetty.testing.ServletTester;
|
import org.eclipse.jetty.servlet.ServletTester;
|
||||||
import org.eclipse.jetty.toolchain.test.IO;
|
import org.eclipse.jetty.toolchain.test.IO;
|
||||||
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
||||||
import org.eclipse.jetty.toolchain.test.TestingDir;
|
import org.eclipse.jetty.toolchain.test.TestingDir;
|
||||||
|
|
Loading…
Reference in New Issue