Re-enabled serving static files test

Changed handling of options so that polling defaults are in the respective transports
Switched to comma-first style
This commit is contained in:
Guillermo Rauch
2010-10-18 17:05:19 -03:00
parent 8b52e1f8ed
commit 080e8944a3
11 changed files with 76 additions and 65 deletions

View File

@@ -1,2 +1,2 @@
test:
./support/expresso/bin/expresso -I lib $(TESTFLAGS) tests/*
./support/expresso/bin/expresso -I lib $(TESTFLAGS) tests/*.js

View File

@@ -4,15 +4,16 @@ var urlparse = require('url').parse
, options = require('./utils').options
, encode = require('./utils').encode
, decode = require('./utils').decode
, merge = require('./utils').merge;
Client = module.exports = function(listener, req, res, options, head){
var Client = module.exports = function(listener, req, res, options, head){
process.EventEmitter.call(this);
this.listener = listener;
this.options({
this.options(merge(this.getOptions ? this.getOptions() : {}, {
timeout: 8000,
heartbeatInterval: 10000,
closeTimeout: 0
}, options);
}), options);
this.connections = 0;
this._open = false;
this._heartbeats = 0;

View File

@@ -1,19 +1,19 @@
var url = require('url'),
sys = require('sys'),
fs = require('fs'),
options = require('./utils').options,
Client = require('./client'),
clientVersion = require('./../../support/socket.io-client/lib/io').io.version,
transports = {
'flashsocket': require('./transports/flashsocket'),
'htmlfile': require('./transports/htmlfile'),
'websocket': require('./transports/websocket'),
'xhr-multipart': require('./transports/xhr-multipart'),
'xhr-polling': require('./transports/xhr-polling'),
'jsonp-polling': require('./transports/jsonp-polling')
},
var url = require('url')
, sys = require('sys')
, fs = require('fs')
, options = require('./utils').options
, Client = require('./client')
, clientVersion = require('./../../support/socket.io-client/lib/io').io.version
, transports = {
'flashsocket': require('./transports/flashsocket')
, 'htmlfile': require('./transports/htmlfile')
, 'websocket': require('./transports/websocket')
, 'xhr-multipart': require('./transports/xhr-multipart')
, 'xhr-polling': require('./transports/xhr-polling')
, 'jsonp-polling': require('./transports/jsonp-polling')
};
Listener = module.exports = function(server, options){
var Listener = module.exports = function(server, options){
process.EventEmitter.call(this);
var self = this;
this.server = server;
@@ -21,18 +21,7 @@ Listener = module.exports = function(server, options){
origins: '*:*',
resource: 'socket.io',
transports: ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'],
transportOptions: {
'xhr-polling': {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
},
'jsonp-polling': {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
}
},
transportOptions: {},
log: function(message){
sys.log(message);
}

View File

@@ -1,9 +1,9 @@
var net = require('net'),
WebSocket = require('./websocket'),
listeners = [],
netserver,
var net = require('net')
, WebSocket = require('./websocket')
, listeners = []
, netserver;
Flashsocket = module.exports = function(){
var Flashsocket = module.exports = function(){
WebSocket.apply(this, arguments);
};

View File

@@ -1,7 +1,7 @@
var Client = require('../client'),
qs = require('querystring'),
var Client = require('../client')
, qs = require('querystring');
HTMLFile = module.exports = function(){
var HTMLFile = module.exports = function(){
Client.apply(this, arguments);
};

View File

@@ -6,6 +6,14 @@ JSONPPolling = module.exports = function(){
require('sys').inherits(JSONPPolling, XHRPolling);
JSONPPolling.prototype.getOptions = function(){
return {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
};
};
JSONPPolling.prototype._onConnect = function(req, res){
this._index = req.url.match(/\/([0-9]+)\/?$/).pop();
XHRPolling.prototype._onConnect.call(this, req, res);

View File

@@ -1,8 +1,8 @@
var Client = require('../client'),
url = require('url'),
Buffer = require('buffer').Buffer,
crypto = require('crypto'),
net = require('net'),
var Client = require('../client')
, url = require('url')
, Buffer = require('buffer').Buffer
, crypto = require('crypto')
, net = require('net');
WebSocket = module.exports = function(){
Client.apply(this, arguments);

View File

@@ -1,7 +1,7 @@
var Client = require('../client'),
qs = require('querystring'),
var Client = require('../client')
, qs = require('querystring');
Multipart = module.exports = function(){
var Multipart = module.exports = function(){
Client.apply(this, arguments);
};

View File

@@ -1,12 +1,20 @@
var Client = require('../client'),
qs = require('querystring'),
var Client = require('../client')
, qs = require('querystring');
Polling = module.exports = function(){
var Polling = module.exports = function(){
Client.apply(this, arguments);
};
require('sys').inherits(Polling, Client);
Polling.prototype.getOptions = function(){
return {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
};
};
Polling.prototype._onConnect = function(req, res){
var self = this, body = '';
switch (req.method){

View File

@@ -1,8 +1,8 @@
var io = require('socket.io'),
Listener = io.Listener,
Client = require('socket.io/client'),
WebSocket = require('../support/node-websocket-client/lib/websocket').WebSocket,
empty = function(){};
var io = require('socket.io')
, Listener = io.Listener
, Client = require('socket.io/client')
, WebSocket = require('../support/node-websocket-client/lib/websocket').WebSocket
, empty = function(){};
module.exports = {
@@ -16,15 +16,15 @@ module.exports = {
}, 100);
},
// 'test serving static javascript client': function(assert){
// var server = require('http').createServer(function(){}),
// sio = io.listen(server, {log: empty});
// assert.response(server,
// { url: '/socket.io/socket.io.js' },
// { body: /setPath/, headers: { 'Content-Type': 'text/javascript' }});
// assert.response(server,
// { url: '/socket.io/lib/vendor/web-socket-js/WebSocketMain.swf' },
// { headers: { 'Content-Type': 'application/x-shockwave-flash' }});
// }
'test serving static javascript client': function(assert){
var server = require('http').createServer(function(){}),
sio = io.listen(server, {log: empty});
assert.response(server,
{ url: '/socket.io/socket.io.js' },
{ body: /setPath/, headers: { 'Content-Type': 'text/javascript' }});
assert.response(server,
{ url: '/socket.io/lib/vendor/web-socket-js/WebSocketMain.swf' },
{ headers: { 'Content-Type': 'application/x-shockwave-flash' }});
}
};

View File

@@ -24,6 +24,11 @@ function client(s){
function socket(server, options){
if (!options) options = {};
options.log = false;
if (!options.transportOptions) options.transportOptions = {
'xhr-polling': {
closeTimeout: 100
}
};
return io.listen(server, options);
};