public void testAutoContinueBodyAccess() throws Exception {
RequestHandler reqHdl = new RequestHandler();
HttpServer server = new HttpServer(reqHdl);
server.start();
INonBlockingConnection con = new NonBlockingConnection("localhost", server.getLocalPort());
con.write("POST / HTTP/1.1\r\n" +
"Host: localhost\r\n" +
"User-Agent: me\r\n" +
"Expect: 100-Continue\r\n" +
"Content-Length: 2000\r\n" +
"\r\n");
while (reqHdl.getLastExchange() == null) {
QAUtil.sleep(50);
}
IHttpExchange serverExchange = reqHdl.getLastExchange();
IHttpRequest srvReq = serverExchange.getRequest();
srvReq.getHeader("Content-Length");
QAUtil.sleep(500);
try {
con.readStringByDelimiter("\r\n\r\n");
Assert.fail("BufferUnderflowException expected");
} catch (BufferUnderflowException expected) { }
srvReq.getBlockingBody().isOpen();
QAUtil.sleep(500);
Assert.assertTrue(con.readStringByDelimiter("\r\n\r\n").indexOf("100") != -1);
con.close();
server.close();
}