test('app runs', function (t) { t.timeoutAfter(10e3); setup.resetTestDataDir(); const app = setup.createApp(); setup.waitForLoad(app, t) .then(() => app.browserWindow.focus()) .then(() => setup.screenshotCreateOrCompare(app, t, 'app-index')) .then(() => setup.endTest(app, t), err => setup.endTest(app, t, err || 'error')); });
test('Serving a file with serve()', function (t) { t.plan(2) t.timeoutAfter(4000) var testFile = path.join(__dirname, 'tcp.js') var inputFile = fs.readFileSync(testFile) var nc = new NetcatServer() nc.port(2392).listen().serve(testFile).on('close', function () { t.ok(true, 'server closed (no keepalive)') }) var concatStream = concat(function (file) { t.equal(file.toString(), inputFile.toString(), 'client got expected file') }) var nc2 = new NetcatClient() nc2.addr('127.0.0.1').port(2392).connect().pipe(concatStream) })
test('Server/Client: traffic pipe filter()', function (t) { t.plan(2) t.timeoutAfter(2000) var toUpperCase = function (chunk, enc, cb) { // transform fn var out = chunk.toString().toUpperCase() this.push(Buffer.from(out)) cb(null) } var srvGotData = concat(function (data) { t.equal(data.toString(), 'CLIENT DATA', 'server got filtered data') }) var nc = new NetcatServer() nc.port(2402).filter(toUpperCase).serve(Buffer.from('server data')).pipe(srvGotData).listen() var clientGotData = concat(function (data) { t.equal(data.toString(), 'SERVER DATA', 'client got filtered data') }) var nc2 = new NetcatClient() nc2.port(2402).filter(toUpperCase).connect(function () { this.send('client data') }).pipe(clientGotData) })
test('Serving a raw Buffer', function (t) { t.plan(2) t.timeoutAfter(4000) var nc = new NetcatServer() nc.port(2592).listen().serve(Buffer.from('Hello World')).on('close', function () { t.ok(true, 'server closed (no keepalive)') }) var concatStream = concat(function (buf) { t.equal(buf.toString(), 'Hello World', 'client got expected Buffer') }) var nc2 = new NetcatClient() nc2.addr('127.0.0.1').port(2592).connect().pipe(concatStream) })
test('Server rx encoding utf8', function (t) { t.plan(4) t.timeoutAfter(3000) var nc = new NetcatServer() t.equal(nc._encoding, null, 'no encoding by default') nc.udp().enc('utf8').port(2101).listen().on('data', function (rinfo, data) { t.equal(nc._encoding, 'utf8', 'server got expected encoding set') t.equal(typeof data, 'string', 'got expected data type') t.equal(data, 'hello', 'server got expected data') nc.close() nc2.close() }) var nc2 = new NetcatClient() nc2.udp().port(2101).init().send('hello', '127.0.0.1') })
test('Client hex dump', function (t) { t.plan(6) t.timeoutAfter(5000) var concatDump = concat(function (dump) { console.log(dump.toString()) t.ok(dump.toString().indexOf('>') !== -1, 'got outcoming hex dump') }) var nc = new NetcatServer() nc.udp().port(2102).listen().on('data', function (rinfo, data) { t.equal(rinfo.family, 'IPv4', 'got expected IP version') t.ok(Buffer.isBuffer(data), 'got expected data type') t.equal(data.toString(), 'At least 16 bytez', 'got expected data') nc.close() }).on('close', function () { t.ok(true, 'server got expected close event') }) var nc2 = new NetcatClient() nc2.udp().port(2102).wait(1000).out(concatDump).init().send('At least 16 bytez', '127.0.0.1').on('close', function () { t.ok(true, 'client got expected close event') }) })
test('Server sending a packet with loopback', function (t) { t.plan(4) t.timeoutAfter(3000) var nc = new NetcatServer() t.equal(nc._loopback, false, 'no loopback by default') nc.udp().port(2103).serve(Buffer.from('hello myself')).on('data', function (rinfo, msg) { t.fail('got unexpected msg') }).listen() var nc2 = new NetcatServer() nc2.udp().port(2104).loopback().wait(1000).serve(Buffer.from('hello myself')).on('data', function (rinfo, msg) { t.equal(nc2._loopback, true, 'loopback is true') t.ok(rinfo.loopback, 'got loopback msg') t.equal(msg.toString(), 'hello myself', 'got expected loopback msg') nc.close() }).listen() })
test('Server waitTime parameter', function (t) { t.plan(6) t.timeoutAfter(4000) var nc = new NetcatServer() nc.port(2593).k().wait(1000).listen().serve(Buffer.from('Hello World')).on('waitTimeout', function () { t.ok(true, 'server closed (by waitTime)') }).on('close', function () { t.ok(true, 'server got close event') }).on('data', function (sock, buf) { t.ok(sock, 'got socket instance') t.equal(buf.toString(), 'yoyo', 'got expected data from client') }) var nc2 = new NetcatClient() nc2.addr('127.0.0.1').port(2593).connect().send('yoyo').on('data', function (d) { t.equal(d.toString(), 'Hello World', 'got expected data from server') }).on('close', function () { t.ok(true, 'client got close event (because server closed)') }) })
test('Serving an instance of stream', function (t) { t.plan(2) t.timeoutAfter(4000) var testFile = path.join(__dirname, 'tcp.js') var inputFile = fs.readFileSync(testFile) var inputStream = fs.createReadStream(testFile) var nc = new NetcatServer() nc.port(2492).listen().serve(inputStream).on('close', function () { t.ok(true, 'server closed (no keepalive)') }) var concatStream = concat(function (file) { t.equal(file.toString(), inputFile.toString(), 'client got expected stream') }) var nc2 = new NetcatClient() nc2.addr('127.0.0.1').port(2492).connect().pipe(concatStream) })
test('Transfer a file (stream)', function (t) { t.plan(2) t.timeoutAfter(5000) var nc = new NetcatServer() var testFile = path.join(__dirname, 'udp.js') var inputFile = fs.readFileSync(testFile) var concatStream = concat(function (file) { t.equal(file.toString(), inputFile.toString(), 'server got expected file') }) // waitTime to close after 1 sec of inactivity since the last msg nc.udp().port(2105).wait(1000).listen().pipe(concatStream) .on('close', function () { t.ok(true, 'server closed event') nc2.close() }) var nc2 = new NetcatClient() nc2.udp().destination('127.0.0.1').port(2105).init() fs.createReadStream(testFile).pipe(nc2.stream()) })
test('Client: send raw buffer', function (t) { t.plan(5) t.timeoutAfter(4000) var nc = new NetcatServer() var nc2 = new NetcatClient() nc.port(2291).listen().on('data', function (socket, data) { t.ok(socket.id, 'Socket got an ID assigned') t.ok(Buffer.isBuffer(data), 'got expected data type (Buffer)') t.deepEqual(data, Buffer.from('hello world'), 'got expected data') close() }) nc2.addr('127.0.0.1').port(2291).connect(function () { t.equal(this, nc2, 'Got client instance') console.log('Sending Buffer') this.send(Buffer.from('hello world')) }) function close () { nc.close(function () { t.ok(true, 'close server') }) } })
test('Server listen and client send packets', function (t) { t.plan(5) t.timeoutAfter(5000) var nc = new NetcatServer() nc.udp().port(2100).listen().on('data', function (rinfo, data) { t.equal(rinfo.family, 'IPv4', 'got expected IP version') t.ok(Buffer.isBuffer(data), 'got expected data type') t.equal(data.toString(), 'hello', 'got expected data') nc.close() }).on('close', function () { t.ok(true, 'server got expected close event') }) var nc2 = new NetcatClient() nc2.udp().port(2100).wait(1000).init().send('hello', '127.0.0.1').on('close', function () { t.ok(true, 'client got expected close event') }) })
test('Server: traffic pipe filter()', function (t) { t.plan(1) t.timeoutAfter(2000) var toUpperCase = function (chunk, enc, cb) { // transform fn var out = chunk.toString().toUpperCase() this.push(Buffer.from(out)) cb(null) } var srvGotData = concat(function (data) { t.equal(data.toString(), 'CLIENT DATA', 'server got filtered data') }) var nc = new NetcatServer() nc.udp().port(2099).filter(toUpperCase).wait(1000).pipe(srvGotData).listen() var nc2 = new NetcatClient() nc2.udp().port(2099).init().wait(500).send('client data') })
test('Client waitTime parameter', function (t) { t.plan(6) t.timeoutAfter(4000) var nc = new NetcatServer() nc.port(2594).k().listen().serve(Buffer.from('Hello World')).on('waitTimeout', function () { t.fail('server should not be closed by waitTime') }).on('close', function () { t.ok(true, 'server got close event') }).on('data', function (sock, buf) { t.ok(sock, 'got socket instance') t.equal(buf.toString(), 'yoyo', 'got expected data from client') }) // client close after 2 sec of inactivity var nc2 = new NetcatClient() nc2.addr('127.0.0.1').wait(2000).port(2594).connect().send('yoyo').on('data', function (d) { t.equal(d.toString(), 'Hello World', 'got expected data from server') }).on('waitTimeout', function () { t.ok(true, 'client closed (by waitTime)') nc.close() }).on('close', function () { t.ok(true, 'client got close event') }) })
test('Transfer a file (stream)', function (t) { t.plan(2) t.timeoutAfter(4000) var nc = new NetcatServer() var testFile = path.join(__dirname, 'tcp.js') var inputFile = fs.readFileSync(testFile) var concatStream = concat(function (file) { t.equal(file.toString(), inputFile.toString(), 'server got expected file') }) nc.port(2191).listen().pipe(concatStream).on('close', function () { t.ok(true, 'server closed (no keepalive)') }) var nc2 = new NetcatClient() fs.createReadStream(testFile).pipe(nc2.addr('127.0.0.1').port(2191).connect().stream()) })