diff options
Diffstat (limited to 'jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java')
-rw-r--r-- | jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java | 72 |
1 files changed, 57 insertions, 15 deletions
diff --git a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java index a9152fcb39..45b007f712 100644 --- a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java +++ b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java @@ -22,6 +22,8 @@ import static org.hamcrest.Matchers.*; import java.net.InetSocketAddress; import java.net.URI; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -32,6 +34,8 @@ import org.eclipse.jetty.websocket.api.UpgradeRequest; import org.eclipse.jetty.websocket.client.blockhead.BlockheadServer; import org.eclipse.jetty.websocket.client.blockhead.BlockheadServer.ServerConnection; import org.eclipse.jetty.websocket.common.WebSocketFrame; +import org.eclipse.jetty.websocket.common.frames.TextFrame; +import org.eclipse.jetty.websocket.common.io.FutureWriteCallback; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -73,7 +77,7 @@ public class WebSocketClientTest @Test(expected = IllegalArgumentException.class) public void testAddExtension_NotInstalled() throws Exception { - TrackingSocket cliSock = new TrackingSocket(); + JettyTrackingSocket cliSock = new JettyTrackingSocket(); client.getPolicy().setIdleTimeout(10000); @@ -89,7 +93,7 @@ public class WebSocketClientTest @Test public void testBasicEcho_FromClient() throws Exception { - TrackingSocket cliSock = new TrackingSocket(); + JettyTrackingSocket cliSock = new JettyTrackingSocket(); client.getPolicy().setIdleTimeout(10000); @@ -112,7 +116,45 @@ public class WebSocketClientTest Assert.assertThat("client.connectionManager.sessions.size",client.getConnectionManager().getSessions().size(),is(1)); - cliSock.getSession().getRemote().sendStringByFuture("Hello World!"); + cliSock.getSession().getRemote().sendString("Hello World!",null); + srvSock.echoMessage(1,TimeUnit.MILLISECONDS,500); + // wait for response from server + cliSock.waitForMessage(500,TimeUnit.MILLISECONDS); + + cliSock.assertMessage("Hello World!"); + } + + @Test + public void testBasicEcho_UsingCallback() throws Exception + { + JettyTrackingSocket cliSock = new JettyTrackingSocket(); + + client.getPolicy().setIdleTimeout(10000); + + URI wsUri = server.getWsUri(); + ClientUpgradeRequest request = new ClientUpgradeRequest(); + request.setSubProtocols("echo"); + Future<Session> future = client.connect(cliSock,wsUri,request); + + final ServerConnection srvSock = server.accept(); + srvSock.upgrade(); + + Session sess = future.get(500,TimeUnit.MILLISECONDS); + Assert.assertThat("Session",sess,notNullValue()); + Assert.assertThat("Session.open",sess.isOpen(),is(true)); + Assert.assertThat("Session.upgradeRequest",sess.getUpgradeRequest(),notNullValue()); + Assert.assertThat("Session.upgradeResponse",sess.getUpgradeResponse(),notNullValue()); + + cliSock.assertWasOpened(); + cliSock.assertNotClosed(); + + Assert.assertThat("client.connectionManager.sessions.size",client.getConnectionManager().getSessions().size(),is(1)); + + FutureWriteCallback callback = new FutureWriteCallback(); + + cliSock.getSession().getRemote().sendString("Hello World!",callback); + callback.get(1,TimeUnit.SECONDS); + srvSock.echoMessage(1,TimeUnit.MILLISECONDS,500); // wait for response from server cliSock.waitForMessage(500,TimeUnit.MILLISECONDS); @@ -123,7 +165,7 @@ public class WebSocketClientTest @Test public void testBasicEcho_FromServer() throws Exception { - TrackingSocket wsocket = new TrackingSocket(); + JettyTrackingSocket wsocket = new JettyTrackingSocket(); Future<Session> future = client.connect(wsocket,server.getWsUri()); // Server @@ -138,7 +180,7 @@ public class WebSocketClientTest Assert.assertThat("Session.upgradeResponse",sess.getUpgradeResponse(),notNullValue()); // Have server send initial message - srvSock.write(WebSocketFrame.text("Hello World")); + srvSock.write(new TextFrame().setPayload("Hello World")); // Verify connect future.get(500,TimeUnit.MILLISECONDS); @@ -155,7 +197,7 @@ public class WebSocketClientTest fact.start(); try { - TrackingSocket wsocket = new TrackingSocket(); + JettyTrackingSocket wsocket = new JettyTrackingSocket(); URI wsUri = server.getWsUri(); Future<Session> future = client.connect(wsocket,wsUri); @@ -195,7 +237,7 @@ public class WebSocketClientTest { int bufferSize = 512; - TrackingSocket wsocket = new TrackingSocket(); + JettyTrackingSocket wsocket = new JettyTrackingSocket(); URI wsUri = server.getWsUri(); Future<Session> future = client.connect(wsocket,wsUri); @@ -233,7 +275,7 @@ public class WebSocketClientTest fact.start(); try { - TrackingSocket wsocket = new TrackingSocket(); + JettyTrackingSocket wsocket = new JettyTrackingSocket(); URI wsUri = server.getWsUri().resolve("/test?snack=cashews&amount=handful&brand=off"); Future<Session> future = client.connect(wsocket,wsUri); @@ -249,15 +291,15 @@ public class WebSocketClientTest UpgradeRequest req = session.getUpgradeRequest(); Assert.assertThat("Upgrade Request",req,notNullValue()); - Map<String, String[]> parameterMap = req.getParameterMap(); + Map<String, List<String>> parameterMap = req.getParameterMap(); Assert.assertThat("Parameter Map",parameterMap,notNullValue()); - Assert.assertThat("Parameter[snack]",parameterMap.get("snack"),is(new String[] - { "cashews" })); - Assert.assertThat("Parameter[amount]",parameterMap.get("amount"),is(new String[] - { "handful" })); - Assert.assertThat("Parameter[brand]",parameterMap.get("brand"),is(new String[] - { "off" })); + Assert.assertThat("Parameter[snack]",parameterMap.get("snack"),is(Arrays.asList(new String[] + { "cashews" }))); + Assert.assertThat("Parameter[amount]",parameterMap.get("amount"),is(Arrays.asList(new String[] + { "handful" }))); + Assert.assertThat("Parameter[brand]",parameterMap.get("brand"),is(Arrays.asList(new String[] + { "off" }))); Assert.assertThat("Parameter[cost]",parameterMap.get("cost"),nullValue()); } |