Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/BasicEndpointTest.java')
-rw-r--r--jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/BasicEndpointTest.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/BasicEndpointTest.java b/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/BasicEndpointTest.java
new file mode 100644
index 0000000000..e06c5514c8
--- /dev/null
+++ b/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/BasicEndpointTest.java
@@ -0,0 +1,89 @@
+//
+// ========================================================================
+// Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
+// ------------------------------------------------------------------------
+// All rights reserved. This program and the accompanying materials
+// are made available under the terms of the Eclipse Public License v1.0
+// and Apache License v2.0 which accompanies this distribution.
+//
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
+//
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
+//
+// You may elect to redistribute this code under either of these licenses.
+// ========================================================================
+//
+
+package org.eclipse.jetty.websocket.jsr356.server;
+
+import java.net.URI;
+import java.util.Queue;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import javax.websocket.Endpoint;
+import javax.websocket.server.ServerContainer;
+
+import org.eclipse.jetty.toolchain.test.TestingDir;
+import org.eclipse.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.websocket.api.Session;
+import org.eclipse.jetty.websocket.client.WebSocketClient;
+import org.eclipse.jetty.websocket.jsr356.server.samples.echo.BasicEchoEndpoint;
+import org.eclipse.jetty.websocket.jsr356.server.samples.echo.BasicEchoEndpointConfigContextListener;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+/**
+ * Example of an {@link Endpoint} extended echo server added programmatically via the
+ * {@link ServerContainer#addEndpoint(javax.websocket.server.ServerEndpointConfig)}
+ */
+public class BasicEndpointTest
+{
+ @Rule
+ public TestingDir testdir = new TestingDir();
+
+ @Test
+ public void testEcho() throws Exception
+ {
+ WSServer wsb = new WSServer(testdir,"app");
+ wsb.copyWebInf("basic-echo-endpoint-config-web.xml");
+ // the endpoint (extends javax.websocket.Endpoint)
+ wsb.copyClass(BasicEchoEndpoint.class);
+ // the configuration (adds the endpoint)
+ wsb.copyClass(BasicEchoEndpointConfigContextListener.class);
+
+ try
+ {
+ wsb.start();
+ URI uri = wsb.getServerBaseURI();
+
+ WebAppContext webapp = wsb.createWebAppContext();
+ wsb.deployWebapp(webapp);
+ // wsb.dump();
+
+ WebSocketClient client = new WebSocketClient();
+ try
+ {
+ client.start();
+ JettyEchoSocket clientEcho = new JettyEchoSocket();
+ Future<Session> future = client.connect(clientEcho,uri.resolve("echo"));
+ // wait for connect
+ future.get(1,TimeUnit.SECONDS);
+ clientEcho.sendMessage("Hello World");
+ Queue<String> msgs = clientEcho.awaitMessages(1);
+ Assert.assertEquals("Expected message","Hello World",msgs.poll());
+ }
+ finally
+ {
+ client.stop();
+ }
+ }
+ finally
+ {
+ wsb.stop();
+ }
+ }
+}

Back to the top