Esteban Ordano
10 years ago
3 changed files with 0 additions and 532 deletions
@ -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); |
|||
}); |
|||
}); |
|||
}); |
@ -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); |
|||
}); |
|||
|
|||
} |
|||
|
|||
}); |
@ -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(); |
|||
|
|||
}); |
|||
|
|||
|
|||
}); |
|||
|
|||
} |
Loading…
Reference in new issue