runner.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. require('jsclass')
  2. var WebSocket = require('../lib/faye/websocket'),
  3. fs = require('fs'),
  4. http = require('http'),
  5. https = require('https')
  6. JS.ENV.EchoServer = function() {}
  7. EchoServer.prototype.listen = function(port, ssl) {
  8. var server = ssl
  9. ? https.createServer({
  10. key: fs.readFileSync(__dirname + '/server.key'),
  11. cert: fs.readFileSync(__dirname + '/server.crt')
  12. })
  13. : http.createServer()
  14. server.addListener('upgrade', function(request, socket, head) {
  15. var ws = new WebSocket(request, socket, head, ["echo"])
  16. ws.onmessage = function(event) {
  17. ws.send(event.data)
  18. }
  19. })
  20. this._httpServer = server
  21. server.listen(port)
  22. }
  23. EchoServer.prototype.stop = function(callback, scope) {
  24. this._httpServer.addListener('close', function() {
  25. if (callback) callback.call(scope);
  26. });
  27. this._httpServer.close();
  28. }
  29. JS.Packages(function() { with(this) {
  30. autoload(/.*Spec/, {from: 'spec/faye/websocket'})
  31. }})
  32. JS.require('JS.Test', function() {
  33. JS.Test.Unit.Assertions.define("assertBufferEqual", function(array, buffer) {
  34. this.assertEqual(array.length, buffer.length);
  35. var ary = [], n = buffer.length;
  36. while (n--) ary[n] = buffer[n];
  37. this.assertEqual(array, ary);
  38. })
  39. JS.require( 'ClientSpec',
  40. 'Draft75ParserSpec',
  41. 'Draft76ParserSpec',
  42. 'HybiParserSpec',
  43. JS.Test.method('autorun'))
  44. })