diff options
Diffstat (limited to 'alarm/node_modules/node-forge/tests/socketPool.html')
-rw-r--r-- | alarm/node_modules/node-forge/tests/socketPool.html | 299 |
1 files changed, 299 insertions, 0 deletions
diff --git a/alarm/node_modules/node-forge/tests/socketPool.html b/alarm/node_modules/node-forge/tests/socketPool.html new file mode 100644 index 0000000..33a095f --- /dev/null +++ b/alarm/node_modules/node-forge/tests/socketPool.html @@ -0,0 +1,299 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <link type="text/css" rel="stylesheet" media="all" href="screen.css" /> + <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> + <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> + <script type="text/javascript" src="forge/util.js"></script> + <script type="text/javascript" src="forge/socket.js"></script> + <script type="text/javascript" src="forge/log.js"></script> + + <script type="text/javascript"> + //<![CDATA[ + // logging category + var cat = 'forge.tests.socketPool'; + + // feedback types + var ERROR = ''; + var USER = 'user'; + var SOCKETPOOL = 'socketpool' + var SOCKET = 'socket' + + function addFeedback(type, text) + { + var row = $('<tr/>') + .append($('<td/>').html(' ')) + .append($('<td/>').html(' ')) + .append($('<td/>').html(' ')); + switch(type) + { + case USER: + row.children().eq(0).html(text); + break; + case SOCKETPOOL: + row.children().eq(1).html(text); + break; + case SOCKET: + row.children().eq(2).html(text); + break; + default: + var msg = 'ERROR: bad feedback type:' + type; + row.children().eq(1).html(msg); + forge.log.error(cat, msg); + } + $('#feedback').append(row); + forge.log.debug(cat, '[' + type + ']', text); + }; + + function _setState(stateSel) + { + $('.sp-control').filter(stateSel).removeAttr('disabled'); + $('.sp-control').filter(':not(' + stateSel + ')').attr('disabled', 'disabled'); + $('.sp-state').filter(stateSel).addClass('sp-state-on'); + $('.sp-state').filter(':not(' + stateSel + ')').removeClass('sp-state-on'); + }; + + function setState(state) + { + switch(state) + { + case 'ready': + _setState('.sp-ready'); + break; + case 'initialized': + _setState('.sp-ready,.sp-initialized'); + break; + case 'created': + _setState('.sp-ready,.sp-initialized,.sp-created'); + break; + case 'connected': + _setState('.sp-ready,.sp-initialized,.sp-created,.sp-connected'); + break; + default: + addFeedback(ERROR, 'ERROR: bad state: ' + state); + }; + }; + + window.forge.socketPool = + { + ready: function() + { + $(document).ready(function() { + addFeedback(SOCKETPOOL, 'Ready'); + setState('ready'); + }); + } + }; + + swfobject.embedSWF( + "forge/SocketPool.swf", "socketPool", "0", "0", "9.0.0", + false, {}, {allowscriptaccess: 'always'}, {}); + + // local alias + var net = window.forge.net; + + // socket to use + var socket; + + $(document).ready(function() { + addFeedback(USER, 'Ready'); + $('#host').val(window.location.hostname); + $('#port').val(window.location.port); + }); + + function sp_init() + { + net.createSocketPool({ + flashId: 'socketPool', + policyPort: parseInt($('#policyPort').val()), + msie: false + }); + addFeedback(SOCKETPOOL, 'Initialized'); + setState('initialized'); + return false; + }; + + function sp_cleanup() + { + net.destroySocketPool({flashId: 'socketPool'}); + addFeedback(SOCKETPOOL, 'Cleaned up'); + setState('ready'); + return false; + }; + + function sp_create() + { + socket = net.createSocket({ + flashId: 'socketPool', + connected: function(e) + { + forge.log.debug(cat, 'connected', e); + addFeedback(SOCKET, 'Connected'); + }, + closed: function(e) + { + forge.log.debug(cat, 'closed', e); + addFeedback(SOCKET, 'Closed. Type: ' + e.type); + setState('created'); + }, + data: function(e) + { + forge.log.debug(cat, 'data received', e); + forge.log.debug(cat, 'bytes available', socket.bytesAvailable()); + addFeedback(SOCKET, + 'Data available: ' + + socket.bytesAvailable() +' bytes'); + var bytes = socket.receive(e.bytesAvailable); + forge.log.debug(cat, 'bytes received', bytes); + }, + error: function(e) + { + forge.log.error(cat, 'error', e); + addFeedback(SOCKET, 'Error: ' + e); + } + }); + addFeedback(SOCKETPOOL, 'Created socket'); + setState('created'); + return false; + }; + + function sp_destroy() + { + socket.destroy(); + addFeedback(USER, 'Request socket destroy'); + setState('initialized'); + return false; + }; + + function sp_connect() + { + socket.connect({ + host: $('#host').val(), + port: parseInt($('#port').val()), + policyPort: parseInt($('#policyPort').val()) + }); + addFeedback(USER, 'Request socket connect'); + setState('connected'); + }; + + function sp_isConnected() + { + var connected = socket.isConnected(); + addFeedback(USER, 'Socket connected check: ' + connected); + }; + + function sp_send() + { + socket.send('GET ' + $('#path').val() + ' HTTP/1.0\r\n\r\n'); + addFeedback(USER, 'Send GET request'); + }; + + function sp_close() + { + socket.close(); + addFeedback(USER, 'Requst socket close'); + setState('created'); + }; + //]]> + </script> + </head> + <body> + <div class="nav"><a href="index.html">Forge Tests</a> / SocketPool</div> + + <div class="header"> + <h1>SocketPool Test</h1> + </div> + + <div class="content"> + <!-- div used to hold the flash socket pool implemenation --> + <div id="socketPool"> + <p>Could not load the flash SocketPool.</p> + </div> + + <fieldset class="section"> + <ul> + <li>This page tests a single socket connection to the local test server.</li> + <li>Note that the selected server must serve a Flash cross-domain policy file on the selected policy port.</li> + <li>Additional output available in the JavaScript console.</li> + </ul> + </fieldset> + + <fieldset class="section"> + <legend>State</legend> + <p>State: + <span class="sp-state sp-ready">Ready</span> » + <span class="sp-state sp-initialized">Initialized</span> » + <span class="sp-state sp-created">Created</span> » + <span class="sp-state sp-connected">Connected</span> + </p> + </fieldset> + + <fieldset class="section"> + <legend>Controls</legend> + <div id="controls"> + <table> + <tr><th>Action</th><th>Description</th></tr> + <tr> + <td><button id="init" disabled="disabled" class="sp-control sp-ready" + onclick="javascript:return sp_init();">init</button></td> + <td>Initialize SocketPool system.</td> + </tr> + <tr> + <td><button id="cleanup" disabled="disabled" class="sp-control sp-initialized" + onclick="javascript:return sp_cleanup();">cleanup</button></td> + <td>Cleanup SocketPool system.</td> + </tr> + <tr> + <td><button id="create" disabled="disabled" class="sp-control sp-initialized" + onclick="javascript:return sp_create();">create socket</button></td> + <td>Create a new test socket.</td> + </tr> + <tr> + <td><button id="destroy" disabled="disabled" class="sp-control sp-created" + onclick="javascript:return sp_destroy();">destroy socket</button></td> + <td>Destroy the test socket.</td> + </tr> + <tr> + <td><button id="connect" disabled="disabled" class="sp-control sp-created" + onclick="javascript:return sp_connect();">connect</button></td> + <td>Connect the socket to + host: <input id="host"/> + port: <input id="port"/> + policy port: <input id="policyPort" value="19945"/> + </td> + </tr> + <tr> + <td><button id="isConnected" disabled="disabled" class="sp-control sp-created" + onclick="javascript:return sp_isConnected();">is connected</button></td> + <td>Check if socket is connected.</td> + </tr> + <tr> + <td><button id="send" disabled="disabled" class="sp-control sp-connected" + onclick="javascript:return sp_send();">send</button></td> + <td>Send a GET request for + path: <input id="path" value="/"/> + </td> + </tr> + <tr> + <td><button id="close" disabled="disabled" class="sp-control sp-connected" + onclick="javascript:return sp_close();">close</button></td> + <td>Close the test socket.</td> + </tr> + </table> + </div> + </fieldset> + + <fieldset class="section"> + <legend>Feedback</legend> + <table id="feedback"> + <tr> + <th>User</th> + <th>SocketPool</th> + <th>Socket</th> + </tr> + </table> + </fieldset> + </div> + </body> +</html> |