From eda78d7a7636bf6089a4edaeea4311350ef75845 Mon Sep 17 00:00:00 2001 From: David Dias Date: Tue, 15 Mar 2016 11:14:55 +0000 Subject: [PATCH] add websockets to the battery of tests, everything checks out --- package.json | 1 + tests/swarm-test.js | 74 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 68 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index aa0fb69c..0baae0b3 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "istanbul": "^0.4.2", "libp2p-spdy": "^0.2.3", "libp2p-tcp": "^0.4.0", + "libp2p-websockets": "^0.2.0", "mocha": "^2.4.5", "multiaddr": "^1.3.0", "peer-id": "^0.6.0", diff --git a/tests/swarm-test.js b/tests/swarm-test.js index 1d5107e6..69dfd350 100644 --- a/tests/swarm-test.js +++ b/tests/swarm-test.js @@ -8,6 +8,7 @@ const multiaddr = require('multiaddr') const Peer = require('peer-info') const Swarm = require('../src') const TCP = require('libp2p-tcp') +const WebSockets = require('libp2p-websockets') const bl = require('bl') const spdy = require('libp2p-spdy') @@ -174,18 +175,77 @@ describe('transport - tcp', function () { }) }) -describe('transport - udt', function () { +describe('transport - websockets', function () { this.timeout(10000) - before((done) => { done() }) + var swarmA + var swarmB + var peerA = new Peer() + var peerB = new Peer() - it.skip('add', (done) => {}) - it.skip('listen', (done) => {}) - it.skip('dial', (done) => {}) - it.skip('close', (done) => {}) + before((done) => { + peerA.multiaddr.add(multiaddr('/ip4/127.0.0.1/tcp/9888/websockets')) + peerB.multiaddr.add(multiaddr('/ip4/127.0.0.1/tcp/9999/websockets')) + swarmA = new Swarm(peerA) + swarmB = new Swarm(peerB) + done() + }) + + it('add', (done) => { + swarmA.transport.add('ws', new WebSockets()) + expect(Object.keys(swarmA.transports).length).to.equal(1) + swarmB.transport.add('ws', new WebSockets(), () => { + expect(Object.keys(swarmB.transports).length).to.equal(1) + done() + }) + }) + + it('listen', (done) => { + var count = 0 + swarmA.transport.listen('ws', {}, (conn) => { + conn.pipe(conn) + }, ready) + swarmB.transport.listen('ws', {}, (conn) => { + conn.pipe(conn) + }, ready) + + function ready () { + if (++count === 2) { + expect(peerA.multiaddrs.length).to.equal(1) + expect(peerA.multiaddrs[0]).to.deep.equal(multiaddr('/ip4/127.0.0.1/tcp/9888/websockets')) + expect(peerB.multiaddrs.length).to.equal(1) + expect(peerB.multiaddrs[0]).to.deep.equal(multiaddr('/ip4/127.0.0.1/tcp/9999/websockets')) + done() + } + } + }) + + it('dial', (done) => { + const conn = swarmA.transport.dial('ws', multiaddr('/ip4/127.0.0.1/tcp/9999/websockets'), (err, conn) => { + expect(err).to.not.exist + }) + conn.pipe(bl((err, data) => { + expect(err).to.not.exist + done() + })) + conn.write('hey') + conn.end() + }) + + it('close', (done) => { + var count = 0 + swarmA.transport.close('ws', closed) + swarmB.transport.close('ws', closed) + + function closed () { + if (++count === 2) { + done() + } + } + }) }) -describe('transport - websockets', function () { +describe('transport - utp', function () { this.timeout(10000) before((done) => { done() })