summaryrefslogtreecommitdiff
path: root/test/simple/test-net-create-connection.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/simple/test-net-create-connection.js')
-rw-r--r--test/simple/test-net-create-connection.js82
1 files changed, 74 insertions, 8 deletions
diff --git a/test/simple/test-net-create-connection.js b/test/simple/test-net-create-connection.js
index 12f7f0be6..2dee02966 100644
--- a/test/simple/test-net-create-connection.js
+++ b/test/simple/test-net-create-connection.js
@@ -24,33 +24,99 @@ var assert = require('assert');
var net = require('net');
var tcpPort = common.PORT;
+var expectedConnections = 7;
var clientConnected = 0;
var serverConnected = 0;
var server = net.createServer(function(socket) {
socket.end();
- if (++serverConnected === 4) {
+ if (++serverConnected === expectedConnections) {
server.close();
}
});
+
server.listen(tcpPort, 'localhost', function() {
function cb() {
++clientConnected;
}
+ function fail(opts, errtype, msg) {
+ assert.throws(function() {
+ var client = net.createConnection(opts, cb);
+ }, function (err) {
+ return err instanceof errtype && msg === err.message;
+ });
+ }
+
net.createConnection(tcpPort).on('connect', cb);
net.createConnection(tcpPort, 'localhost').on('connect', cb);
net.createConnection(tcpPort, cb);
net.createConnection(tcpPort, 'localhost', cb);
+ net.createConnection(tcpPort + '', 'localhost', cb);
+ net.createConnection({port: tcpPort + ''}).on('connect', cb);
+ net.createConnection({port: '0x' + tcpPort.toString(16)}, cb);
+
+ fail({
+ port: true
+ }, TypeError, 'port should be a number or string: true');
+
+ fail({
+ port: false
+ }, TypeError, 'port should be a number or string: false');
+
+ fail({
+ port: []
+ }, TypeError, 'port should be a number or string: ');
+
+ fail({
+ port: {}
+ }, TypeError, 'port should be a number or string: [object Object]');
+
+ fail({
+ port: null
+ }, TypeError, 'port should be a number or string: null');
+
+ fail({
+ port: ''
+ }, RangeError, 'port should be >= 0 and < 65536: ');
+
+ fail({
+ port: ' '
+ }, RangeError, 'port should be >= 0 and < 65536: ');
- assert.throws(function () {
- net.createConnection({
- port: 'invalid!'
- }, cb);
- });
+ fail({
+ port: '0x'
+ }, RangeError, 'port should be >= 0 and < 65536: 0x');
+
+ fail({
+ port: '-0x1'
+ }, RangeError, 'port should be >= 0 and < 65536: -0x1');
+
+ fail({
+ port: NaN
+ }, RangeError, 'port should be >= 0 and < 65536: NaN');
+
+ fail({
+ port: Infinity
+ }, RangeError, 'port should be >= 0 and < 65536: Infinity');
+
+ fail({
+ port: -1
+ }, RangeError, 'port should be >= 0 and < 65536: -1');
+
+ fail({
+ port: 65536
+ }, RangeError, 'port should be >= 0 and < 65536: 65536');
});
-process.on('exit', function() {
- assert.equal(clientConnected, 4);
+// Try connecting to random ports, but do so once the server is closed
+server.on('close', function() {
+ function nop() {}
+
+ net.createConnection({port: 0}).on('error', nop);
+ net.createConnection({port: undefined}).on('error', nop);
});
+process.on('exit', function() {
+ assert.equal(clientConnected, expectedConnections);
+});