test/jdk/java/net/httpclient/websocket/WebSocketTest.java
branchhttp-client-branch
changeset 56055 7d387d151a3e
parent 56052 da2aa3c773c9
child 56057 ab28f851bd8c
equal deleted inserted replaced
56054:352e845ae744 56055:7d387d151a3e
    56             = IllegalArgumentException.class;
    56             = IllegalArgumentException.class;
    57     private static final Class<IllegalStateException> ISE
    57     private static final Class<IllegalStateException> ISE
    58             = IllegalStateException.class;
    58             = IllegalStateException.class;
    59 
    59 
    60     @Test
    60     @Test
       
    61     public void abort() throws IOException {
       
    62         try (DummyWebSocketServer server = new DummyWebSocketServer()) {
       
    63             server.open();
       
    64             WebSocket ws = newHttpClient()
       
    65                     .newWebSocketBuilder()
       
    66                     .buildAsync(server.getURI(), new WebSocket.Listener() {
       
    67                         @Override
       
    68                         public void onOpen(WebSocket webSocket) { /* no initial request */ }
       
    69                     })
       
    70                     .join();
       
    71 
       
    72             ws.abort();
       
    73             // Each consecutive abort MUST be a no-op:
       
    74             ws.abort();
       
    75             assertTrue(ws.isInputClosed());
       
    76             assertTrue(ws.isOutputClosed());
       
    77             assertEquals(ws.getSubprotocol(), "");
       
    78             ws.abort();
       
    79             assertTrue(ws.isInputClosed());
       
    80             assertTrue(ws.isOutputClosed());
       
    81             assertEquals(ws.getSubprotocol(), "");
       
    82             // At this point request MUST be a no-op:
       
    83             ws.request(1);
       
    84             ws.request(Long.MAX_VALUE);
       
    85             // Throws IAE regardless of whether WebSocket is closed or not:
       
    86             assertThrows(IAE, () -> ws.request(Integer.MIN_VALUE));
       
    87             assertThrows(IAE, () -> ws.request(Long.MIN_VALUE));
       
    88             assertThrows(IAE, () -> ws.request(-1));
       
    89             assertThrows(IAE, () -> ws.request(0));
       
    90         }
       
    91     }
       
    92 
       
    93     @Test
    61     public void testNull() throws IOException {
    94     public void testNull() throws IOException {
    62         try (DummyWebSocketServer server = new DummyWebSocketServer()) {
    95         try (DummyWebSocketServer server = new DummyWebSocketServer()) {
    63             server.open();
    96             server.open();
    64             WebSocket ws = newHttpClient()
    97             WebSocket ws = newHttpClient()
    65                     .newWebSocketBuilder()
    98                     .newWebSocketBuilder()
   195             assertCompletesExceptionally(IAE, ws.sendClose(65536, "a reason"));
   228             assertCompletesExceptionally(IAE, ws.sendClose(65536, "a reason"));
   196             assertCompletesExceptionally(IAE, ws.sendClose(Integer.MAX_VALUE, "a reason"));
   229             assertCompletesExceptionally(IAE, ws.sendClose(Integer.MAX_VALUE, "a reason"));
   197             assertCompletesExceptionally(IAE, ws.sendClose(Integer.MIN_VALUE, "a reason"));
   230             assertCompletesExceptionally(IAE, ws.sendClose(Integer.MIN_VALUE, "a reason"));
   198 
   231 
   199             assertThrows(IAE, () -> ws.request(Integer.MIN_VALUE));
   232             assertThrows(IAE, () -> ws.request(Integer.MIN_VALUE));
       
   233             assertThrows(IAE, () -> ws.request(Long.MIN_VALUE));
   200             assertThrows(IAE, () -> ws.request(-1));
   234             assertThrows(IAE, () -> ws.request(-1));
   201             assertThrows(IAE, () -> ws.request(0));
   235             assertThrows(IAE, () -> ws.request(0));
   202         }
   236         }
   203     }
   237     }
   204 
   238