test/jdk/java/net/httpclient/websocket/WebSocketTest.java
changeset 49944 4690a2871b44
parent 49765 ee6f7a61f3a5
child 50681 4254bed3c09d
child 56507 2294c51eae30
equal deleted inserted replaced
49943:8e1ed2a15845 49944:4690a2871b44
    40 import java.util.List;
    40 import java.util.List;
    41 import java.util.concurrent.CompletableFuture;
    41 import java.util.concurrent.CompletableFuture;
    42 import java.util.concurrent.CompletionStage;
    42 import java.util.concurrent.CompletionStage;
    43 import java.util.concurrent.TimeUnit;
    43 import java.util.concurrent.TimeUnit;
    44 import java.util.stream.Collectors;
    44 import java.util.stream.Collectors;
    45 
    45 import static java.net.http.HttpClient.Builder.NO_PROXY;
    46 import static java.net.http.HttpClient.newHttpClient;
    46 import static java.net.http.HttpClient.newBuilder;
    47 import static java.net.http.WebSocket.NORMAL_CLOSURE;
    47 import static java.net.http.WebSocket.NORMAL_CLOSURE;
    48 import static org.testng.Assert.assertEquals;
    48 import static org.testng.Assert.assertEquals;
    49 import static org.testng.Assert.assertThrows;
    49 import static org.testng.Assert.assertThrows;
    50 
    50 
    51 public class WebSocketTest {
    51 public class WebSocketTest {
    71 
    71 
    72     @Test
    72     @Test
    73     public void illegalArgument() throws IOException {
    73     public void illegalArgument() throws IOException {
    74         server = new DummyWebSocketServer();
    74         server = new DummyWebSocketServer();
    75         server.open();
    75         server.open();
    76         webSocket = newHttpClient()
    76         webSocket = newBuilder().proxy(NO_PROXY).build()
    77                 .newWebSocketBuilder()
    77                 .newWebSocketBuilder()
    78                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
    78                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
    79                 .join();
    79                 .join();
    80 
    80 
    81         assertFails(IAE, webSocket.sendPing(ByteBuffer.allocate(126)));
    81         assertFails(IAE, webSocket.sendPing(ByteBuffer.allocate(126)));
   135 
   135 
   136     @Test
   136     @Test
   137     public void partialBinaryThenText() throws IOException {
   137     public void partialBinaryThenText() throws IOException {
   138         server = new DummyWebSocketServer();
   138         server = new DummyWebSocketServer();
   139         server.open();
   139         server.open();
   140         webSocket = newHttpClient().newWebSocketBuilder()
   140         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   141                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   141                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   142                 .join();
   142                 .join();
   143         webSocket.sendBinary(ByteBuffer.allocate(16), false).join();
   143         webSocket.sendBinary(ByteBuffer.allocate(16), false).join();
   144         assertFails(ISE, webSocket.sendText("text", false));
   144         assertFails(ISE, webSocket.sendText("text", false));
   145         assertFails(ISE, webSocket.sendText("text", true));
   145         assertFails(ISE, webSocket.sendText("text", true));
   150 
   150 
   151     @Test
   151     @Test
   152     public void partialTextThenBinary() throws IOException {
   152     public void partialTextThenBinary() throws IOException {
   153         server = new DummyWebSocketServer();
   153         server = new DummyWebSocketServer();
   154         server.open();
   154         server.open();
   155         webSocket = newHttpClient().newWebSocketBuilder()
   155         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   156                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   156                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   157                 .join();
   157                 .join();
   158 
   158 
   159         webSocket.sendText("text", false).join();
   159         webSocket.sendText("text", false).join();
   160         assertFails(ISE, webSocket.sendBinary(ByteBuffer.allocate(16), false));
   160         assertFails(ISE, webSocket.sendBinary(ByteBuffer.allocate(16), false));
   166 
   166 
   167     @Test
   167     @Test
   168     public void sendMethodsThrowIOE1() throws IOException {
   168     public void sendMethodsThrowIOE1() throws IOException {
   169         server = new DummyWebSocketServer();
   169         server = new DummyWebSocketServer();
   170         server.open();
   170         server.open();
   171         webSocket = newHttpClient()
   171         webSocket = newBuilder().proxy(NO_PROXY).build()
   172                 .newWebSocketBuilder()
   172                 .newWebSocketBuilder()
   173                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   173                 .buildAsync(server.getURI(), new WebSocket.Listener() { })
   174                 .join();
   174                 .join();
   175 
   175 
   176         webSocket.sendClose(NORMAL_CLOSURE, "ok").join();
   176         webSocket.sendClose(NORMAL_CLOSURE, "ok").join();
   219                 System.out.println("onError(" + error + ")");
   219                 System.out.println("onError(" + error + ")");
   220                 onCloseCalled.completeExceptionally(error);
   220                 onCloseCalled.completeExceptionally(error);
   221             }
   221             }
   222         };
   222         };
   223 
   223 
   224         webSocket = newHttpClient().newWebSocketBuilder()
   224         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   225                 .buildAsync(server.getURI(), listener)
   225                 .buildAsync(server.getURI(), listener)
   226                 .join();
   226                 .join();
   227 
   227 
   228         onCloseCalled.join();      // Wait for onClose to be called
   228         onCloseCalled.join();      // Wait for onClose to be called
   229         canClose.complete(null);   // Signal to the WebSocket it can close the output
   229         canClose.complete(null);   // Signal to the WebSocket it can close the output
   331             public void onError(WebSocket webSocket, Throwable error) {
   331             public void onError(WebSocket webSocket, Throwable error) {
   332                 actual.completeExceptionally(error);
   332                 actual.completeExceptionally(error);
   333             }
   333             }
   334         };
   334         };
   335 
   335 
   336         webSocket = newHttpClient().newWebSocketBuilder()
   336         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   337                 .buildAsync(server.getURI(), listener)
   337                 .buildAsync(server.getURI(), listener)
   338                 .join();
   338                 .join();
   339 
   339 
   340         List<byte[]> a = actual.join();
   340         List<byte[]> a = actual.join();
   341         assertEquals(a, expected);
   341         assertEquals(a, expected);
   405             public void onError(WebSocket webSocket, Throwable error) {
   405             public void onError(WebSocket webSocket, Throwable error) {
   406                 actual.completeExceptionally(error);
   406                 actual.completeExceptionally(error);
   407             }
   407             }
   408         };
   408         };
   409 
   409 
   410         webSocket = newHttpClient().newWebSocketBuilder()
   410         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   411                 .buildAsync(server.getURI(), listener)
   411                 .buildAsync(server.getURI(), listener)
   412                 .join();
   412                 .join();
   413 
   413 
   414         List<String> a = actual.join();
   414         List<String> a = actual.join();
   415         assertEquals(a, expected);
   415         assertEquals(a, expected);
   498                 cf.complete(null);
   498                 cf.complete(null);
   499                 collected.add(s);
   499                 collected.add(s);
   500             }
   500             }
   501         };
   501         };
   502 
   502 
   503         webSocket = newHttpClient().newWebSocketBuilder()
   503         webSocket = newBuilder().proxy(NO_PROXY).build().newWebSocketBuilder()
   504                 .buildAsync(server.getURI(), listener)
   504                 .buildAsync(server.getURI(), listener)
   505                 .join();
   505                 .join();
   506 
   506 
   507         List<String> a = actual.join();
   507         List<String> a = actual.join();
   508         assertEquals(a, expected);
   508         assertEquals(a, expected);