forked from socketio/socket.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
io.test.js
125 lines (99 loc) · 2.57 KB
/
io.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*!
* socket.io-node
* Copyright(c) 2011 LearnBoost <[email protected]>
* MIT Licensed
*/
/**
* Test dependencies.
*/
var sio = require('../')
, fs = require('fs')
, http = require('http')
, https = require('https')
, should = require('./common')
, ports = 15000;
/**
* Test.
*/
module.exports = {
'test that protocol version is present': function (done) {
sio.protocol.should.be.a('number');
done();
},
'test that default transports are present': function (done) {
sio.Manager.defaultTransports.should.be.an.instanceof(Array);
done();
},
'test that version is present': function (done) {
sio.version.should.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/);
done();
},
'test listening with a port': function (done) {
var cl = client(++ports)
, io = create(cl);
io.server.should.be.an.instanceof(http.Server);
cl.get('/', function (res, data) {
res.statusCode.should.eql(200);
data.should.eql('Welcome to socket.io.');
cl.end();
io.server.close();
done();
});
},
'test listening with a server': function (done) {
var server = http.createServer()
, io = sio.listen(server)
, port = ++ports
, cl = client(port);
server.listen(port);
cl.get('/socket.io', function (res, data) {
res.statusCode.should.eql(200);
data.should.eql('Welcome to socket.io.');
cl.end();
server.close();
done();
});
},
'test listening with a https server': function (done) {
var server = https.createServer({
key: fs.readFileSync(__dirname + '/fixtures/key.key')
, cert: fs.readFileSync(__dirname + '/fixtures/cert.crt')
}, function () { })
, io = sio.listen(server)
, port = ++ports;
server.listen(port);
var req = require('https').get({
host: 'localhost'
, port: port
, path: '/socket.io'
}, function (res) {
res.statusCode.should.eql(200);
var buf = '';
res.on('data', function (data) {
buf += data;
});
res.on('end', function () {
buf.should.eql('Welcome to socket.io.');
res.socket.end();
server.close();
done();
});
});
},
'test listening with no arguments listens on 80': function (done) {
try {
var io = sio.listen()
, cl = client(80);
cl.get('/socket.io', function (res) {
res.statusCode.should.eql(200);
cl.end();
io.server.close();
done();
});
done();
} catch (e) {
e.should.match(/EACCES/);
done();
}
}
};