reorganize address tests #50
This commit is contained in:
parent
786198f130
commit
2f3e597596
1 changed files with 30 additions and 24 deletions
|
@ -2,8 +2,20 @@
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var Address = require('../src/address.js');
|
var Address = require('../src/address.js');
|
||||||
var network = require('../src/network.js');
|
var network = require('../src/network.js');
|
||||||
|
var mainnet = network.mainnet.addressVersion
|
||||||
|
var testnet = network.testnet.addressVersion
|
||||||
|
|
||||||
describe('Address', function() {
|
describe('Address', function() {
|
||||||
|
var testnetAddress, mainnetAddress;
|
||||||
|
var testnetP2shAddress, mainnetP2shAddress;
|
||||||
|
|
||||||
|
beforeEach(function(){
|
||||||
|
testnetAddress = 'mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef'
|
||||||
|
mainnetAddress = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa'
|
||||||
|
testnetP2shAddress = '2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7'
|
||||||
|
mainnetP2shAddress = '3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt'
|
||||||
|
})
|
||||||
|
|
||||||
describe('toString', function() {
|
describe('toString', function() {
|
||||||
it('defaults to base58', function() {
|
it('defaults to base58', function() {
|
||||||
var addr = '18fN1QTGWmHWCA9r2dyDH6FbMEyc7XHmQQ';
|
var addr = '18fN1QTGWmHWCA9r2dyDH6FbMEyc7XHmQQ';
|
||||||
|
@ -11,49 +23,43 @@ describe('Address', function() {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('Constructor', function(){
|
||||||
|
it('resolves version correctly', function(){
|
||||||
|
assert.equal((new Address(testnetAddress)).version, testnet)
|
||||||
|
assert.equal((new Address(mainnetAddress)).version, mainnet)
|
||||||
|
assert.equal((new Address(testnetP2shAddress)).version, network.testnet.p2shVersion)
|
||||||
|
assert.equal((new Address(mainnetP2shAddress)).version, network.mainnet.p2shVersion)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('validate', function() {
|
describe('validate', function() {
|
||||||
it('validates known good addresses', function() {
|
it('validates known good addresses', function() {
|
||||||
function validate(addr, expectedVersion) {
|
function validate(addr, expectedVersion) {
|
||||||
assert.ok(Address.validate(addr));
|
assert.ok(Address.validate(addr));
|
||||||
var address = new Address(addr);
|
|
||||||
assert.ok(address.version == expectedVersion);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
validate('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', network.mainnet.addressVersion);
|
validate(testnetAddress);
|
||||||
validate('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef', network.testnet.addressVersion);
|
validate(mainnetAddress);
|
||||||
|
validate('12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP');
|
||||||
validate('12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP', network.mainnet.addressVersion);
|
validate('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y');
|
||||||
validate('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', network.mainnet.addressVersion);
|
validate('1oNLrsHnBcR6dpaBpwz3LSwutbUNkNSjs');
|
||||||
validate('1oNLrsHnBcR6dpaBpwz3LSwutbUNkNSjs', network.mainnet.addressVersion);
|
validate('1SQHtwR5oJRKLfiWQ2APsAd9miUc4k2ez');
|
||||||
validate('1SQHtwR5oJRKLfiWQ2APsAd9miUc4k2ez', network.mainnet.addressVersion);
|
validate('116CGDLddrZhMrTwhCVJXtXQpxygTT1kHd');
|
||||||
validate('116CGDLddrZhMrTwhCVJXtXQpxygTT1kHd', network.mainnet.addressVersion);
|
|
||||||
|
|
||||||
// p2sh addresses
|
// p2sh addresses
|
||||||
validate('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', network.mainnet.p2shVersion);
|
validate(testnetP2shAddress);
|
||||||
validate('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', network.testnet.p2shVersion);
|
validate(mainnetP2shAddress);
|
||||||
})
|
})
|
||||||
|
|
||||||
it('does not validate illegal examples', function() {
|
it('does not validate illegal examples', function() {
|
||||||
function invalid(addr) {
|
function invalid(addr) {
|
||||||
assert.ok(!Address.validate(addr));
|
assert.ok(!Address.validate(addr));
|
||||||
}
|
}
|
||||||
function invalidNetwork(addr, unexpectedVersion) {
|
|
||||||
assert.ok(Address.validate(addr)); //must be a valid address itself
|
|
||||||
if(addr.length >= 34 && unexpectedVersion !== undefined) {
|
|
||||||
var address = new Address(addr);
|
|
||||||
if(unexpectedVersion !== undefined)
|
|
||||||
assert.ok(address.version != unexpectedVersion);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
invalid(''); //empty should be invalid
|
invalid(''); //empty should be invalid
|
||||||
invalid('%%@'); // invalid base58 string
|
invalid('%%@'); // invalid base58 string
|
||||||
invalid('1A1zP1eP5QGefi2DzPTf2L5SLmv7DivfNz'); // bad address (doesn't checksum)
|
invalid('1A1zP1eP5QGefi2DzPTf2L5SLmv7DivfNz'); // bad address (doesn't checksum)
|
||||||
invalid('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhe'); // bad address (doesn't checksum)
|
invalid('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhe'); // bad address (doesn't checksum)
|
||||||
|
|
||||||
//and test for the wrong networks
|
|
||||||
invalidNetwork('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef', network.mainnet.addressVersion);
|
|
||||||
invalidNetwork('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', network.testnet.addressVersion);
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Reference in a new issue