summaryrefslogtreecommitdiff
path: root/js/test/Ice/info/Client.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/test/Ice/info/Client.js')
-rw-r--r--js/test/Ice/info/Client.js190
1 files changed, 190 insertions, 0 deletions
diff --git a/js/test/Ice/info/Client.js b/js/test/Ice/info/Client.js
new file mode 100644
index 00000000000..cd866ca535b
--- /dev/null
+++ b/js/test/Ice/info/Client.js
@@ -0,0 +1,190 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+(function(module, require, exports)
+{
+ var Ice = require("ice").Ice;
+ var IceSSL = require("ice").IceSSL;
+ var Test = require("Test").Test;
+ var Promise = Ice.Promise;
+
+ function allTests(communicator, out)
+ {
+ var p = new Ice.Promise();
+ var test = function(b)
+ {
+ if(!b)
+ {
+ try
+ {
+ throw new Error("test failed");
+ }
+ catch(err)
+ {
+ p.fail(err);
+ throw err;
+ }
+ }
+ };
+
+ var base, testIntf;
+
+ var defaultHost = communicator.getProperties().getPropertyWithDefault("Ice.Default.Host");
+
+ return Promise.try(
+ function()
+ {
+ out.write("testing proxy endpoint information... ");
+ var ref = "test -t:default -h tcphost -p 10000 -t 1200 -z --sourceAddress 10.10.10.10:" +
+ "opaque -e 1.8 -t 100 -v ABCD";
+ var p1 = communicator.stringToProxy(ref);
+
+ var endps = p1.ice_getEndpoints();
+
+ var ipEndpoint = endps[0].getInfo();
+ test(ipEndpoint.host == "tcphost");
+ test(ipEndpoint.port == 10000);
+ test(ipEndpoint.timeout == 1200);
+ test(ipEndpoint.sourceAddress == "10.10.10.10");
+ test(ipEndpoint.compress);
+ test(!ipEndpoint.datagram());
+ test(ipEndpoint.type() == Ice.TCPEndpointType && !ipEndpoint.secure() ||
+ ipEndpoint.type() == Ice.WSEndpointType && !ipEndpoint.secure() ||
+ ipEndpoint.type() == Ice.WSSEndpointType && ipEndpoint.secure());
+
+ var opaqueEndpoint = endps[1].getInfo();
+ test(opaqueEndpoint.rawEncoding.equals(new Ice.EncodingVersion(1, 8)));
+ }
+ ).then(
+ function()
+ {
+ out.writeLine("ok");
+
+ out.write("testing connection endpoint information... ");
+ base = communicator.stringToProxy("test:default -p 12010");
+ testIntf = Test.TestIntfPrx.uncheckedCast(base);
+
+ var ipinfo;
+ return base.ice_getConnection().then(
+ function(conn)
+ {
+ ipinfo = conn.getEndpoint().getInfo();
+ test(ipinfo.port == 12010);
+ test(!ipinfo.compress);
+ test(ipinfo.host == defaultHost);
+
+ return testIntf.getEndpointInfoAsContext();
+ }
+ ).then(
+ function(ctx)
+ {
+ test(ctx.get("host") == ipinfo.host);
+ test(ctx.get("compress") == "false");
+ var port = parseInt(ctx.get("port"));
+ test(port > 0);
+ }
+ );
+ }
+ ).then(
+ function()
+ {
+ out.writeLine("ok");
+
+ out.write("testing connection information... ");
+
+ var info, ctx, connection;
+ return base.ice_getConnection().then(
+ function(conn)
+ {
+ connection = conn;
+ connection.setBufferSize(1024, 2048);
+
+ info = connection.getInfo();
+ test(!info.incoming);
+ test(info.adapterName.length == 0);
+ if(connection.type() != "ws" && connection.type() != "wss")
+ {
+ test(info.localPort > 0);
+ }
+ test(info.remotePort == 12010);
+ if(defaultHost == "127.0.0.1")
+ {
+ test(info.remoteAddress == defaultHost);
+ if(connection.type() != "ws" && connection.type() != "wss")
+ {
+ test(info.localAddress == defaultHost);
+ }
+ }
+ //test(info.rcvSize >= 1024);
+ test(info.sndSize >= 2048);
+
+ return testIntf.getConnectionInfoAsContext();
+ }
+ ).then(
+ function(c)
+ {
+ ctx = c;
+
+ test(ctx.get("incoming") == "true");
+ test(ctx.get("adapterName") == "TestAdapter");
+ if(connection.type() != "ws" && connection.type() != "wss")
+ {
+ test(ctx.get("remoteAddress") == info.localAddress);
+ test(ctx.get("localAddress") == info.remoteAddress);
+ test(parseInt(ctx.get("remotePort")) == info.localPort);
+ test(parseInt(ctx.get("localPort")) == info.remotePort);
+ }
+
+ if(connection.type() == "ws" || connection.type() == "wss")
+ {
+ //test(info.headers["Upgrade"] == "websocket");
+ //test(info.headers.get("Connection") == "Upgrade");
+ //test(info.headers.get("Sec-WebSocket-Protocol") == "ice.zeroc.com");
+ //test(info.headers.get("Sec-WebSocket-Accept") != null);
+
+ test(ctx.get("ws.Upgrade") == "websocket");
+ test(ctx.get("ws.Connection") == "Upgrade");
+ test(ctx.get("ws.Sec-WebSocket-Protocol") == "ice.zeroc.com");
+ test(ctx.get("ws.Sec-WebSocket-Version") == "13");
+ test(ctx.get("ws.Sec-WebSocket-Key") != null);
+ }
+ }
+ );
+ }
+ ).then(
+ function()
+ {
+ out.writeLine("ok");
+
+ return testIntf.shutdown();
+ }
+ );
+ }
+
+ var run = function(out, id)
+ {
+ var communicator = Ice.initialize(id);
+ return Promise.try(
+ function()
+ {
+ return allTests(communicator, out);
+ }
+ ).finally(
+ function()
+ {
+ communicator.destroy();
+ }
+ );
+ };
+ exports.__test__ = run;
+ exports.__runServer__ = true;
+}
+(typeof(global) !== "undefined" && typeof(global.process) !== "undefined" ? module : undefined,
+ typeof(global) !== "undefined" && typeof(global.process) !== "undefined" ? require : window.Ice.__require,
+ typeof(global) !== "undefined" && typeof(global.process) !== "undefined" ? exports : window));