Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java72
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());
}

Back to the top