You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by cd...@apache.org on 2017/12/14 14:32:43 UTC

[26/50] [abbrv] incubator-edgent git commit: [Edgent-438] improve WebSocketClientTest's skip-if-cant-connect

[Edgent-438] improve WebSocketClientTest's skip-if-cant-connect

Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/718ff63b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/718ff63b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/718ff63b

Branch: refs/heads/master
Commit: 718ff63b5ec1194d138233e7f8481bb205818132
Parents: f46dd81
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Mon Nov 20 17:21:50 2017 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Mon Nov 20 17:21:50 2017 -0500

----------------------------------------------------------------------
 .../WebSocketClientConnectTestHelper.java       | 46 ++++++++++++++++++++
 .../javax/websocket/WebSocketClientTest.java    | 26 ++++-------
 2 files changed, 55 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/718ff63b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java
----------------------------------------------------------------------
diff --git a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java
new file mode 100644
index 0000000..f6ffc12
--- /dev/null
+++ b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientConnectTestHelper.java
@@ -0,0 +1,46 @@
+package org.apache.edgent.test.connectors.wsclient.javax.websocket;
+
+import java.net.URI;
+import java.util.Properties;
+
+import javax.websocket.ClientEndpoint;
+import javax.websocket.ContainerProvider;
+import javax.websocket.OnError;
+import javax.websocket.Session;
+import javax.websocket.WebSocketContainer;
+
+import org.eclipse.jetty.util.component.LifeCycle;
+
+@ClientEndpoint 
+public class WebSocketClientConnectTestHelper {
+  
+  @OnError
+  public void onError(Session client, Throwable t) {
+    System.err.println("Unable to connect to WebSocket server: "+t.getMessage());
+  }
+
+  public static void connectToServer(Properties config) throws Exception {
+    // Verify we can create a real websocket connection to the server.
+    //
+    // We do the following instead of a simple socket connect
+    // because in at least one location, the websocket connect/upgrade
+    // fails with: expecting 101 got 403 (Forbidden).
+    // There's something about that location that's not
+    // allowing a websocket to be created to the (public) server.
+    // Everything works fine from other locations.
+    //
+    String wsUri = config.getProperty("ws.uri");
+    URI uri = new URI(wsUri);
+    WebSocketContainer container = ContainerProvider.getWebSocketContainer();
+    try {
+      Session session = container.connectToServer(WebSocketClientConnectTestHelper.class,  uri);
+      session.close();
+    }
+    finally {
+      if (container instanceof LifeCycle) {
+        ((LifeCycle)container).stop();
+      }
+    }
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/718ff63b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
----------------------------------------------------------------------
diff --git a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
index 4ef65c9..b256bfe 100644
--- a/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
+++ b/connectors/websocket/src/test/java/org/apache/edgent/test/connectors/wsclient/javax/websocket/WebSocketClientTest.java
@@ -23,8 +23,6 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeTrue;
 
-import java.net.InetSocketAddress;
-import java.net.Socket;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
@@ -772,21 +770,15 @@ public class WebSocketClientTest extends ConnectorTestBase {
     }
     
     private void skipTestIfCantConnect(Properties config) throws Exception {
-        String wsUri = config.getProperty("ws.uri");
-        // Skip tests if the WebSocket server can't be contacted.
-        try {
-            URI uri = new URI(wsUri);
-            int port = uri.getPort();
-            if (port == -1)
-                port = uri.getScheme().equals("ws") ? 80 : 443;
-            Socket s = new Socket();
-            s.connect(new InetSocketAddress(uri.getHost(), port), 5*1000/*cn-timeout-msec*/);
-            s.close();
-        } catch (Exception e) {
-            System.err.println("Unable to connect to WebSocket server "+wsUri+" : "+e.getMessage());
-            e.printStackTrace();
-            assumeTrue(false);
-        }
+      String wsUri = config.getProperty("ws.uri");
+      try {
+          WebSocketClientConnectTestHelper.connectToServer(config);
+      } catch (Exception e) {
+          System.err.println("Unable to connect to WebSocket server "+wsUri+" : "+e.getMessage());
+          e.printStackTrace();
+          System.err.println("skipTestIfCantConnect(): SKIPPING TEST");
+          assumeTrue(false);
+      }
     }
     
     @Test