From 2f3e597596efaeedca9bb3bf509f5e4363f90e20 Mon Sep 17 00:00:00 2001 From: Wei Lu Date: Thu, 6 Mar 2014 09:45:56 +0800 Subject: [PATCH] reorganize address tests #50 --- test/address.js | 54 +++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/test/address.js b/test/address.js index e5a505a..6ea05b0 100644 --- a/test/address.js +++ b/test/address.js @@ -2,8 +2,20 @@ var assert = require('assert'); var Address = require('../src/address.js'); var network = require('../src/network.js'); +var mainnet = network.mainnet.addressVersion +var testnet = network.testnet.addressVersion describe('Address', function() { + var testnetAddress, mainnetAddress; + var testnetP2shAddress, mainnetP2shAddress; + + beforeEach(function(){ + testnetAddress = 'mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef' + mainnetAddress = '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa' + testnetP2shAddress = '2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7' + mainnetP2shAddress = '3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt' + }) + describe('toString', function() { it('defaults to base58', function() { 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() { it('validates known good addresses', function() { function validate(addr, expectedVersion) { assert.ok(Address.validate(addr)); - var address = new Address(addr); - assert.ok(address.version == expectedVersion); } - validate('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa', network.mainnet.addressVersion); - validate('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef', network.testnet.addressVersion); - - validate('12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP', network.mainnet.addressVersion); - validate('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', network.mainnet.addressVersion); - validate('1oNLrsHnBcR6dpaBpwz3LSwutbUNkNSjs', network.mainnet.addressVersion); - validate('1SQHtwR5oJRKLfiWQ2APsAd9miUc4k2ez', network.mainnet.addressVersion); - validate('116CGDLddrZhMrTwhCVJXtXQpxygTT1kHd', network.mainnet.addressVersion); + validate(testnetAddress); + validate(mainnetAddress); + validate('12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP'); + validate('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y'); + validate('1oNLrsHnBcR6dpaBpwz3LSwutbUNkNSjs'); + validate('1SQHtwR5oJRKLfiWQ2APsAd9miUc4k2ez'); + validate('116CGDLddrZhMrTwhCVJXtXQpxygTT1kHd'); // p2sh addresses - validate('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', network.mainnet.p2shVersion); - validate('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', network.testnet.p2shVersion); + validate(testnetP2shAddress); + validate(mainnetP2shAddress); }) it('does not validate illegal examples', function() { function invalid(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('%%@'); // invalid base58 string invalid('1A1zP1eP5QGefi2DzPTf2L5SLmv7DivfNz'); // 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); }) }) })