|
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