test/jdk/java/net/httpclient/LineBodyHandlerTest.java
branchhttp-client-branch
changeset 56070 66a9c3185028
parent 56035 2f3f5da13c4c
child 56076 9a2855e0a796
--- a/test/jdk/java/net/httpclient/LineBodyHandlerTest.java	Mon Feb 05 12:32:20 2018 +0000
+++ b/test/jdk/java/net/httpclient/LineBodyHandlerTest.java	Mon Feb 05 15:51:09 2018 +0000
@@ -81,18 +81,18 @@
  *          java.logging
  *          jdk.httpserver
  * @library /lib/testlibrary http2/server
- * @build Http2TestServer
+ * @build Http2TestServer LineBodyHandlerTest HttpServerAdapters
  * @build jdk.testlibrary.SimpleSSLContext
  * @run testng/othervm LineBodyHandlerTest
  */
 
-public class LineBodyHandlerTest {
+public class LineBodyHandlerTest implements HttpServerAdapters {
 
     SSLContext sslContext;
-    HttpServer httpTestServer;         // HTTP/1.1    [ 4 servers ]
-    HttpsServer httpsTestServer;       // HTTPS/1.1
-    Http2TestServer http2TestServer;   // HTTP/2 ( h2c )
-    Http2TestServer https2TestServer;  // HTTP/2 ( h2  )
+    HttpTestServer httpTestServer;    // HTTP/1.1    [ 4 servers ]
+    HttpTestServer httpsTestServer;   // HTTPS/1.1
+    HttpTestServer http2TestServer;   // HTTP/2 ( h2c )
+    HttpTestServer https2TestServer;  // HTTP/2 ( h2  )
     String httpURI;
     String httpsURI;
     String http2URI;
@@ -650,22 +650,25 @@
             throw new AssertionError("Unexpected null sslContext");
 
         InetSocketAddress sa = new InetSocketAddress("localhost", 0);
-        httpTestServer = HttpServer.create(sa, 0);
-        httpTestServer.createContext("/http1/echo", new Http1EchoHandler());
-        httpURI = "http://127.0.0.1:" + httpTestServer.getAddress().getPort() + "/http1/echo";
+        httpTestServer = HttpTestServer.of(HttpServer.create(sa, 0));
+        httpTestServer.addHandler(new HttpTestEchoHandler(), "/http1/echo");
+        int port = httpTestServer.getAddress().getPort();
+        httpURI = "http://127.0.0.1:" + port + "/http1/echo";
 
-        httpsTestServer = HttpsServer.create(sa, 0);
-        httpsTestServer.setHttpsConfigurator(new HttpsConfigurator(sslContext));
-        httpsTestServer.createContext("/https1/echo", new Http1EchoHandler());
-        httpsURI = "https://127.0.0.1:" + httpsTestServer.getAddress().getPort() + "/https1/echo";
+        HttpsServer httpsServer = HttpsServer.create(sa, 0);
+        httpsServer.setHttpsConfigurator(new HttpsConfigurator(sslContext));
+        httpsTestServer = HttpTestServer.of(httpsServer);
+        httpsTestServer.addHandler(new HttpTestEchoHandler(),"/https1/echo");
+        port = httpsTestServer.getAddress().getPort();
+        httpsURI = "https://127.0.0.1:" + port + "/https1/echo";
 
-        http2TestServer = new Http2TestServer("127.0.0.1", false, 0);
-        http2TestServer.addHandler(new Http2EchoHandler(), "/http2/echo");
-        int port = http2TestServer.getAddress().getPort();
+        http2TestServer = HttpTestServer.of(new Http2TestServer("127.0.0.1", false, 0));
+        http2TestServer.addHandler(new HttpTestEchoHandler(), "/http2/echo");
+        port = http2TestServer.getAddress().getPort();
         http2URI = "http://127.0.0.1:" + port + "/http2/echo";
 
-        https2TestServer = new Http2TestServer("127.0.0.1", true, 0);
-        https2TestServer.addHandler(new Http2EchoHandler(), "/https2/echo");
+        https2TestServer = HttpTestServer.of(new Http2TestServer("127.0.0.1", true, 0));
+        https2TestServer.addHandler(new HttpTestEchoHandler(), "/https2/echo");
         port = https2TestServer.getAddress().getPort();
         https2URI = "https://127.0.0.1:" + port + "/https2/echo";
 
@@ -677,8 +680,8 @@
 
     @AfterTest
     public void teardown() throws Exception {
-        httpTestServer.stop(0);
-        httpsTestServer.stop(0);
+        httpTestServer.stop();
+        httpsTestServer.stop();
         http2TestServer.stop();
         https2TestServer.stop();
     }
@@ -692,40 +695,6 @@
                     + new BigInteger(bigbytes).toString(16));
     }
 
-    static class Http1EchoHandler implements HttpHandler {
-        @Override
-        public void handle(HttpExchange t) throws IOException {
-            try (InputStream is = t.getRequestBody();
-                 OutputStream os = t.getResponseBody()) {
-                byte[] bytes = is.readAllBytes();
-                printBytes(System.out,"Bytes: ", bytes);
-                if (t.getRequestHeaders().containsKey("Content-type")) {
-                    t.getResponseHeaders().add("Content-type",
-                            t.getRequestHeaders().getFirst("Content-type"));
-                }
-                t.sendResponseHeaders(200, bytes.length);
-                os.write(bytes);
-            }
-        }
-    }
-
-    static class Http2EchoHandler implements Http2Handler {
-        @Override
-        public void handle(Http2TestExchange t) throws IOException {
-            try (InputStream is = t.getRequestBody();
-                 OutputStream os = t.getResponseBody()) {
-                byte[] bytes = is.readAllBytes();
-                printBytes(System.out,"Bytes: ", bytes);
-                if (t.getRequestHeaders().firstValue("Content-type").isPresent()) {
-                    t.getResponseHeaders().addHeader("Content-type",
-                            t.getRequestHeaders().firstValue("Content-type").get());
-                }
-                t.sendResponseHeaders(200, bytes.length);
-                os.write(bytes);
-            }
-        }
-    }
-
     private static void assertNoObtrusion(CompletableFuture<?> cf) {
         assertThrows(UnsupportedOperationException.class,
                      () -> cf.obtrudeException(new RuntimeException()));