|
18 | 18 |
|
19 | 19 | import java.io.File; |
20 | 20 | import java.io.IOException; |
| 21 | +import java.io.InputStream; |
21 | 22 |
|
22 | 23 | import javax.servlet.ServletException; |
23 | 24 | import javax.servlet.http.HttpServletRequest; |
|
30 | 31 | import org.eclipse.jetty.server.handler.AbstractHandler; |
31 | 32 | import org.testng.annotations.Test; |
32 | 33 |
|
33 | | -/** |
34 | | - * @author Benjamin Hanzelmann |
35 | | - */ |
36 | | -public class PutLargeFileTest extends AbstractBasicTest { |
37 | | - |
38 | | - @Test(groups = "standalone") |
39 | | - public void testPutLargeFile() throws Exception { |
40 | | - |
41 | | - File file = createTempFile(1024 * 1024); |
| 34 | +public class PutFileTest extends AbstractBasicTest { |
42 | 35 |
|
| 36 | + private void put(int fileSize) throws Exception { |
| 37 | + File file = createTempFile(fileSize); |
43 | 38 | int timeout = (int) file.length() / 1000; |
44 | | - |
45 | | - try (AsyncHttpClient client = asyncHttpClient(config().setConnectTimeout(timeout))) { |
| 39 | + try (AsyncHttpClient client = asyncHttpClient(config().setRequestTimeout(timeout))) { |
46 | 40 | Response response = client.preparePut(getTargetUrl()).setBody(file).execute().get(); |
47 | 41 | assertEquals(response.getStatusCode(), 200); |
48 | 42 | } |
49 | 43 | } |
50 | 44 |
|
51 | 45 | @Test(groups = "standalone") |
52 | | - public void testPutSmallFile() throws Exception { |
53 | | - |
54 | | - File file = createTempFile(1024); |
| 46 | + public void testPutLargeFile() throws Exception { |
| 47 | + put(1024 * 1024); |
| 48 | + } |
55 | 49 |
|
56 | | - try (AsyncHttpClient client = asyncHttpClient()) { |
57 | | - Response response = client.preparePut(getTargetUrl()).setBody(file).execute().get(); |
58 | | - assertEquals(response.getStatusCode(), 200); |
59 | | - } |
| 50 | + @Test(groups = "standalone") |
| 51 | + public void testPutSmallFile() throws Exception { |
| 52 | + put(1024); |
60 | 53 | } |
61 | 54 |
|
62 | 55 | @Override |
63 | 56 | public AbstractHandler configureHandler() throws Exception { |
64 | 57 | return new AbstractHandler() { |
65 | 58 |
|
66 | | - public void handle(String arg0, Request arg1, HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { |
| 59 | + public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { |
67 | 60 |
|
68 | | - resp.setStatus(200); |
69 | | - resp.getOutputStream().flush(); |
70 | | - resp.getOutputStream().close(); |
| 61 | + InputStream is = baseRequest.getInputStream(); |
| 62 | + int read = 0; |
| 63 | + do { |
| 64 | + // drain upload |
| 65 | + read = is.read(); |
| 66 | + } while (read >= 0); |
71 | 67 |
|
72 | | - arg1.setHandled(true); |
| 68 | + response.setStatus(200); |
| 69 | + response.getOutputStream().flush(); |
| 70 | + response.getOutputStream().close(); |
| 71 | + baseRequest.setHandled(true); |
73 | 72 | } |
74 | 73 | }; |
75 | 74 | } |
|
0 commit comments