Skip to content

Commit 61bd23f

Browse files
committed
Merge pull request #561 from einaros/master
Proper websocket test fixes, after patching node-websocket-client
2 parents dfebed3 + b3df283 commit 61bd23f

File tree

4 files changed

+48
-44
lines changed

4 files changed

+48
-44
lines changed

support/node-websocket-client/lib/websocket.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,13 @@ var WebSocket = function(url, proto, opts) {
494494
return function(req, s, head) {
495495
stream = s;
496496

497+
if (readyState == CLOSED) {
498+
stream.end();
499+
stream.destroy();
500+
stream = undefined;
501+
return;
502+
}
503+
497504
stream.on('data', function(d) {
498505
if (d.length <= 0) {
499506
return;

test/common.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ client = function (port) {
179179
*/
180180

181181
create = function (cl) {
182-
console.log('');
183182
var manager = io.listen(cl.port);
184183
manager.set('client store expiration', 0);
185184
return manager;

test/transports.flashsocket.test.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,18 @@ module.exports = {
168168
'flashsocket identifies as flashsocket': function (done) {
169169
var cl = client(++ports)
170170
, io = create(cl)
171-
, messages = 0
172171
, ws;
172+
173173
io.set('transports', ['flashsocket']);
174174
io.sockets.on('connection', function (socket) {
175175
socket.manager.transports[socket.id].name.should.equal('flashsocket');
176+
ws.finishClose();
177+
cl.end();
178+
io.flashPolicyServer.close();
179+
io.server.close();
176180
done();
177181
});
182+
178183
cl.handshake(function (sid) {
179184
ws = websocket(cl, sid, 'flashsocket');
180185
});

test/transports.websocket.test.js

Lines changed: 35 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,24 @@ var sio = require('socket.io')
1919
*/
2020

2121
module.exports = {
22-
22+
'websocket identifies as websocket': function (done) {
23+
var cl = client(++ports)
24+
, io = create(cl)
25+
, ws;
26+
27+
io.set('transports', ['websocket']);
28+
io.sockets.on('connection', function (socket) {
29+
socket.manager.transports[socket.id].name.should.equal('websocket');
30+
ws.finishClose();
31+
cl.end();
32+
io.server.close();
33+
done();
34+
});
35+
cl.handshake(function (sid) {
36+
ws = websocket(cl, sid);
37+
});
38+
},
39+
2340
'default websocket draft parser is used for unknown sec-websocket-version': function (done) {
2441
var cl = client(++ports)
2542
, io = create(cl)
@@ -28,17 +45,10 @@ module.exports = {
2845
io.set('transports', ['websocket']);
2946
io.sockets.on('connection', function (socket) {
3047
socket.manager.transports[socket.id].protocolVersion.should.equal('hixie-76');
31-
32-
socket.on('disconnect', function () {
33-
setTimeout(function () {
34-
ws.finishClose();
35-
cl.end();
36-
io.server.close();
37-
done();
38-
}, 10);
39-
});
40-
41-
socket.disconnect();
48+
ws.finishClose();
49+
cl.end();
50+
io.server.close();
51+
done();
4252
});
4353

4454
cl.handshake(function (sid) {
@@ -48,22 +58,14 @@ module.exports = {
4858

4959
'hybi-07-12 websocket draft parser is used for sec-websocket-version: 8': function (done) {
5060
var cl = client(++ports)
51-
, io = create(cl)
52-
, ws;
61+
, io = create(cl);
5362

5463
io.set('transports', ['websocket']);
5564
io.sockets.on('connection', function (socket) {
5665
socket.manager.transports[socket.id].protocolVersion.should.equal('07-12');
57-
58-
socket.on('disconnect', function () {
59-
setTimeout(function () {
60-
cl.end();
61-
io.server.close();
62-
done();
63-
}, 10);
64-
});
65-
66-
socket.disconnect();
66+
cl.end();
67+
io.server.close();
68+
done();
6769
});
6870

6971
var headers = {
@@ -87,16 +89,9 @@ module.exports = {
8789

8890
io.sockets.on('connection', function (socket) {
8991
socket.manager.transports[socket.id].protocolVersion.should.equal('16');
90-
91-
socket.on('disconnect', function () {
92-
setTimeout(function () {
93-
cl.end();
94-
io.server.close();
95-
done();
96-
}, 10);
97-
});
98-
99-
socket.disconnect();
92+
cl.end();
93+
io.server.close();
94+
done();
10095
});
10196

10297
var headers = {
@@ -131,10 +126,9 @@ module.exports = {
131126
var sid = data.split(':')[0];
132127
var url = '/socket.io/' + sio.protocol + '/websocket/' + sid;
133128
cl.get(url, {headers: headers}, function (res, data) {});
134-
res.client.onend = function() {
135-
io.server.close();
136-
done();
137-
}
129+
cl.end();
130+
io.server.close();
131+
done();
138132
});
139133
},
140134

@@ -157,10 +151,9 @@ module.exports = {
157151
var sid = data.split(':')[0];
158152
var url = '/socket.io/' + sio.protocol + '/websocket/' + sid;
159153
cl.get(url, {headers: headers}, function (res, data) {});
160-
res.client.onend = function() {
161-
io.server.close();
162-
done();
163-
}
154+
cl.end();
155+
io.server.close();
156+
done();
164157
});
165158
},
166159

0 commit comments

Comments
 (0)