cometextensionstest.java

来自「jetty SERVER連接資料庫用的軟體」· Java 代码 · 共 139 行

JAVA
139
字号
package org.mortbay.cometd.jquery;import org.mozilla.javascript.ScriptableObject;import org.testng.annotations.Test;/** * @version $Revision: 1453 $ $Date: 2009-02-25 05:57:20 -0600 (Wed, 25 Feb 2009) $ */public class CometExtensionsTest extends CometTest{    @Test    public void testRegisterUnregister() throws Exception    {        evaluateScript("$.cometd.setLogLevel('debug');");        evaluateScript("var inCount = 0;");        evaluateScript("var outCount = 0;");        evaluateScript("$.cometd.registerExtension('testin', {" +                "incoming: function(message) { ++inCount; }" +                "});");        evaluateScript("$.cometd.registerExtension('testout', {" +                "outgoing: function(message) { ++outCount; }" +                "});");        evaluateScript("$.cometd.registerExtension('testempty', {});");        evaluateScript("$.cometd.init('" + cometURL + "')");        Thread.sleep(500); // Wait for the long poll        Number inCount = get("inCount");        Number outCount = get("outCount");        assert inCount.intValue() == 2; // handshake, connect1        assert outCount.intValue() == 3; // handshake, connect1, connect2        Boolean unregistered = evaluateScript("$.cometd.unregisterExtension('testin');");        assert unregistered;        unregistered = evaluateScript("$.cometd.unregisterExtension('testout');");        assert unregistered;        evaluateScript("$.cometd.publish('/echo', 'ping');");        Thread.sleep(500); // Wait for the publish to return        inCount = get("inCount");        outCount = get("outCount");        assert inCount.intValue() == 2;        assert outCount.intValue() == 3;        evaluateScript("$.cometd.disconnect();");        Thread.sleep(500); // Wait for the disconnect to return    }    @Test    public void testExtensions() throws Exception    {        evaluateScript("$.cometd.setLogLevel('debug');");        defineClass(Listener.class);        StringBuilder script = new StringBuilder();        script.append("var listener = new Listener();");        script.append("$.cometd.registerExtension('testext', {" +                "incoming: function(message) { listener.incoming(message); }," +                "outgoing: function(message) { listener.outgoing(message); }" +                "});");        evaluateScript(script.toString());        Listener listener = get("listener");        evaluateScript("$.cometd.init('" + cometURL + "')");        Thread.sleep(500); // Wait for the long poll        assert listener.getOutgoingMessageCount() == 3; // handshake, connect1, connect2        assert listener.getIncomingMessageCount() == 2; // handshake, connect1        listener.reset();        script.setLength(0);        script.append("var subscription = $.cometd.subscribe('/echo', window.console, window.console.debug);");        evaluateScript(script.toString());        Thread.sleep(500); // Wait for subscribe to happen        assert listener.getOutgoingMessageCount() == 1; // subscribe        assert listener.getIncomingMessageCount() == 1; // subscribe        listener.reset();        script.setLength(0);        script.append("$.cometd.publish('/echo', 'test');");        evaluateScript(script.toString());        Thread.sleep(500); // Wait for subscribe to happen        assert listener.getOutgoingMessageCount() == 1; // publish        assert listener.getIncomingMessageCount() == 2; // publish, message        listener.reset();        script.setLength(0);        script.append("$.cometd.unsubscribe(subscription);");        evaluateScript(script.toString());        Thread.sleep(500); // Wait for subscribe to happen        assert listener.getOutgoingMessageCount() == 1; // unsubscribe        assert listener.getIncomingMessageCount() == 1; // unsubscribe        listener.reset();        script.setLength(0);        script.append("$.cometd.disconnect();");        evaluateScript(script.toString());        Thread.sleep(500); // Wait for disconnect to happen        assert listener.getOutgoingMessageCount() == 1; // disconnect        assert listener.getIncomingMessageCount() == 2; // connect2, disconnect    }    public static class Listener extends ScriptableObject    {        private int outgoing;        private int incoming;        public void jsFunction_outgoing(Object message)        {            ++outgoing;        }        public void jsFunction_incoming(Object message)        {            ++incoming;        }        public String getClassName()        {            return "Listener";        }        public int getOutgoingMessageCount()        {            return outgoing;        }        public int getIncomingMessageCount()        {            return incoming;        }        public void reset()        {            incoming = 0;            outgoing = 0;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?