diff --git a/test/transport/messages.js b/test/transport/messages.js deleted file mode 100644 index 15325b3..0000000 --- a/test/transport/messages.js +++ /dev/null @@ -1,353 +0,0 @@ -'use strict'; - -var chai = require('chai'); - -var should = chai.should(); - -var bitcore = require('../..'); -var Data = require('../data/messages'); -var Messages = bitcore.transport.Messages; -var Networks = bitcore.Networks; - -describe('Messages', function() { - - describe('Version', function() { - it('should be able to create instance', function() { - var message = new Messages.Version(); - message.command.should.equal('version'); - message.version.should.equal(70000); - message.subversion.should.equal('/BitcoinX:0.1/'); - should.exist(message.nonce); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Version(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Version(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.VERSION.payload, 'hex'); - new Messages.Version().fromBuffer(payload); - }); - }); - - describe('VerAck', function() { - it('should be able to create instance', function() { - var message = new Messages.VerAck(); - message.command.should.equal('verack'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.VerAck(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.VerAck(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.VERACK.payload, 'hex'); - new Messages.VerAck().fromBuffer(payload); - }); - }); - - describe('Inventory', function() { - it('should be able to create instance', function() { - var message = new Messages.Inventory(); - message.command.should.equal('inv'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Inventory(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Inventory(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.INV.payload, 'hex'); - new Messages.Inventory().fromBuffer(payload); - }); - }); - - describe('Addresses', function() { - it('should be able to create instance', function() { - var message = new Messages.Addresses(); - message.command.should.equal('addr'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Addresses(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Addresses(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.ADDR.payload, 'hex'); - new Messages.Addresses().fromBuffer(payload); - }); - }); - - describe('Ping', function() { - it('should be able to create instance', function() { - var message = new Messages.Ping(); - message.command.should.equal('ping'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Ping(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Ping(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.PING.payload, 'hex'); - new Messages.Ping().fromBuffer(payload); - }); - }); - - describe('Pong', function() { - it('should be able to create instance', function() { - var message = new Messages.Pong(); - message.command.should.equal('pong'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Pong(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Pong(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - - it('should be able to parse payload', function() { - var payload = new Buffer(Data.PING.payload, 'hex'); - new Messages.Pong().fromBuffer(payload); - }); - }); - - describe('Alert', function() { - it('should be able to create instance', function() { - var message = new Messages.Alert(); - message.command.should.equal('alert'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Alert(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Alert(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('Reject', function() { - it('should be able to create instance', function() { - var message = new Messages.Reject(); - message.command.should.equal('reject'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Reject(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Reject(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('Block', function() { - var blockHex = 'f9beb4d91d0100000100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000'; - var block = new bitcore.Block(new Buffer(blockHex, 'hex')); - - it('should be able to create instance', function() { - var message = new Messages.Block(block); - message.command.should.equal('block'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Block(block); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Block(block); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('GetBlocks', function() { - it('should be able to create instance', function() { - var message = new Messages.GetBlocks(); - message.command.should.equal('getblocks'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.GetBlocks(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.GetBlocks(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('GetHeaders', function() { - it('should be able to create instance', function() { - var message = new Messages.GetHeaders(); - message.command.should.equal('getheaders'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.GetHeaders(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.GetHeaders(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('GetData', function() { - it('should be able to create instance', function() { - var message = new Messages.GetData(); - message.command.should.equal('getdata'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.GetData(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.GetData(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('GetData', function() { - it('should be able to create instance', function() { - var message = new Messages.GetData(); - message.command.should.equal('getdata'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.GetData(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.GetData(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('GetAddresses', function() { - it('should be able to create instance', function() { - var message = new Messages.GetAddresses(); - message.command.should.equal('getaddr'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.GetAddresses(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.GetAddresses(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('Headers', function() { - it('should be able to create instance', function() { - var message = new Messages.Headers(); - message.command.should.equal('headers'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Headers(); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Headers(); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); - - describe('Transaction', function() { - it('should be able to create instance', function() { - var message = new Messages.Transaction(new bitcore.Transaction()); - message.command.should.equal('tx'); - }); - - it('should be able to serialize the payload', function() { - var message = new Messages.Transaction(new bitcore.Transaction()); - var payload = message.getPayload(); - should.exist(payload); - }); - - it('should be able to serialize the message', function() { - var message = new Messages.Transaction(new bitcore.Transaction()); - var buffer = message.serialize(Networks.livenet); - should.exist(buffer); - }); - }); -}); diff --git a/test/transport/peer.js b/test/transport/peer.js deleted file mode 100644 index 066ee7a..0000000 --- a/test/transport/peer.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; - -var chai = require('chai'); -var Net = require('net'); -var Socks5Client = require('socks5-client'); - -/* jshint unused: false */ -var should = chai.should(); -var expect = chai.expect; - -var bitcore = require('../..'); -var Peer = bitcore.transport.Peer; -var Networks = bitcore.Networks; - -describe('Peer', function() { - - it('should be able to create instance', function() { - var peer = new Peer('localhost'); - peer.host.should.equal('localhost'); - peer.network.should.equal(Networks.livenet); - peer.port.should.equal(Networks.livenet.port); - }); - - it('should be able to create instance setting a port', function() { - var peer = new Peer('localhost', 8111); - peer.host.should.equal('localhost'); - peer.network.should.equal(Networks.livenet); - peer.port.should.equal(8111); - }); - - it('should be able to create instance setting a network', function() { - var peer = new Peer('localhost', Networks.testnet); - peer.host.should.equal('localhost'); - peer.network.should.equal(Networks.testnet); - peer.port.should.equal(Networks.testnet.port); - }); - - it('should be able to create instance setting port and network', function() { - var peer = new Peer('localhost', 8111, Networks.testnet); - peer.host.should.equal('localhost'); - peer.network.should.equal(Networks.testnet); - peer.port.should.equal(8111); - }); - - it('should support creating instance without new', function() { - var peer = Peer('localhost', 8111, Networks.testnet); - peer.host.should.equal('localhost'); - peer.network.should.equal(Networks.testnet); - peer.port.should.equal(8111); - }); - - if (typeof(window) === 'undefined'){ - - // Node.js Tests - - it('should be able to set a proxy', function() { - var peer, peer2, socket; - - peer = new Peer('localhost'); - expect(peer.proxy).to.be.undefined(); - socket = peer._getSocket(); - socket.should.be.instanceof(Net.Socket); - - peer2 = peer.setProxy('127.0.0.1', 9050); - peer2.proxy.host.should.equal('127.0.0.1'); - peer2.proxy.port.should.equal(9050); - socket = peer2._getSocket(); - socket.should.be.instanceof(Socks5Client); - - peer.should.equal(peer2); - }); - - } - -}); diff --git a/test/transport/pool.js b/test/transport/pool.js deleted file mode 100644 index ced95f1..0000000 --- a/test/transport/pool.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -if (typeof(window) === 'undefined'){ - - // Node.js Tests - - var chai = require('chai'); - - /* jshint unused: false */ - var should = chai.should(); - var expect = chai.expect; - - var dns = require('dns'); - var sinon = require('sinon'); - - var bitcore = require('../..'); - var Peer = bitcore.transport.Peer; - var MessagesData = require('../data/messages'); - var Messages = bitcore.transport.Messages; - var Pool = bitcore.transport.Pool; - var Networks = bitcore.Networks; - - describe('Pool', function() { - - it('should be able to create instance', function() { - var pool = new Pool(); - should.exist(pool.network); - expect(pool.network).to.satisfy(function(network){ - if (network === Networks.testnet || network === Networks.livenet) { - return true; - } - return false; - }); - }); - - it('should be able to create instance setting the network', function() { - var pool = new Peer(Networks.testnet); - pool.network.should.equal(Networks.livenet); - }); - - it('should discover peers via dns', function() { - var stub = sinon.stub(dns, 'resolve', function(seed, callback){ - callback(null, ['10.10.10.1', '10.10.10.2', '10.10.10.3']); - }); - var pool = new Pool(Networks.livenet); - pool.connect(); - pool.disconnect(); - pool._addrs.length.should.equal(3); - stub.restore(); - }); - - it('should not discover peers via dns', function() { - var pool = new Pool(); - pool._addAddr({ip: {v4: '10.10.10.1'}}); - pool.connect(); - pool.disconnect(); - pool._addrs.length.should.equal(1); - }); - - it('should add new addrs as they are announced over the network', function(done) { - - // only emit an event, no need to connect - var peerConnectStub = sinon.stub(Peer.prototype, 'connect', function(){ - this._readMessage(); - this.emit('ready'); - }); - - // mock a addr peer event - var peerMessageStub = sinon.stub(Peer.prototype, '_readMessage', function(){ - var payload = new Buffer(MessagesData.ADDR.payload, 'hex'); - var message = new Messages.Addresses().fromBuffer(payload); - this.emit(message.command, message); - }); - - var pool = new Pool(); - - pool._addAddr({ip: {v4: 'localhost'}}); - - // listen for the event - pool.on('peeraddr', function(peer, message) { - pool._addrs.length.should.equal(502); - - // restore stubs - peerConnectStub.restore(); - peerMessageStub.restore(); - - for (var i = 0; i < pool._addrs.length; i++) { - should.exist(pool._addrs[i].hash); - should.exist(pool._addrs[i].ip); - should.exist(pool._addrs[i].ip.v4); - } - - // done - done(); - }); - - pool.connect(); - - }); - - - }); - -}