@Test(timeOut = 60000) public void onEmptyListenerTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { WebSocket websocket = null; try { websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().build()).get(); } catch (Throwable t) { fail(); } assertTrue(websocket != null); } }
@Test(timeOut = 60000, expectedExceptions = { ConnectException.class, UnresolvedAddressException.class, UnknownHostException.class }) public void onFailureTest() throws Throwable { try (AsyncHttpClient c = getAsyncHttpClient(null)) { c.prepareGet("ws://abcdefg").execute(new WebSocketUpgradeHandler.Builder().build()).get(); } catch (ExecutionException e) { if (e.getCause() != null) throw e.getCause(); else throw e; } }
@Test(timeOut = 60000) public void onTimeoutCloseTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketListener() { @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { text.set("OnClose"); latch.countDown(); } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); latch.await(); assertEquals(text.get(), "OnClose"); } }
@Test(timeOut = 60000) public void onOpen() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketListener() { @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { text.set("OnOpen"); latch.countDown(); } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); latch.await(); assertEquals(text.get(), "OnOpen"); } }
@Test public void echoTwoMessagesTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(2); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() { @Override public void onMessage(String message) { text.set(text.get() + message); latch.countDown(); } @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { websocket.sendMessage("ECHO").sendMessage("ECHO"); } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { latch.countDown(); } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); latch.await(); assertEquals(text.get(), "ECHOECHO"); } }
@Test(timeOut = 60000) public void onClose() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketListener() { @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { text.set("OnClose"); latch.countDown(); } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); websocket.close(); latch.await(); assertEquals(text.get(), "OnClose"); } }
@Test(timeOut = 60000) public void echoText() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() { @Override public void onMessage(String message) { text.set(message); latch.countDown(); } @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { latch.countDown(); } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); websocket.sendMessage("ECHO"); latch.await(); assertEquals(text.get(), "ECHO"); } }
@Test(timeOut = 60000) public void echoTextAndThenClose() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch textLatch = new CountDownLatch(1); final CountDownLatch closeLatch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); final WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() {
public void echoFragments() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() { @Override public void onMessage(String message) { text.set(message); latch.countDown(); } @Override public void onOpen(com.ning.http.client.ws.WebSocket websocket) { } @Override public void onClose(com.ning.http.client.ws.WebSocket websocket) { latch.countDown(); } @Override public void onError(Throwable t) { t.printStackTrace(); latch.countDown(); } }).build()).get(); websocket.stream("ECHO", false); websocket.stream("ECHO", true); latch.await(); assertEquals(text.get(), "ECHOECHO"); } }
@Test(timeOut = 60000) public void echoDoubleListenerText() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { final CountDownLatch latch = new CountDownLatch(2); final AtomicReference<String> text = new AtomicReference<>(""); WebSocket websocket = client.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() {