added better test

This commit is contained in:
Fabian Vogelsteller 2017-05-24 15:01:47 +02:00
parent 0fdecce986
commit d4bb4d5978
No known key found for this signature in database
GPG Key ID: E51EADA77F1A4124

View File

@ -62,7 +62,7 @@ describe('contract', function () {
describe('event', function () { describe('event', function () {
it('should create event filter', function (done) { it('should create event filter', function (done) {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'Changed(address,uint256,uint256,uint256)'; var signature = 'Changed(address,uint256,uint256,uint256)';
var step = 0; var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
@ -75,7 +75,7 @@ describe('contract', function () {
topics: [ topics: [
'0x' + sha3(signature), '0x' + sha3(signature),
'0x0000000000000000000000001234567890123456789012345678901234567891', '0x0000000000000000000000001234567890123456789012345678901234567891',
null '0x000000000000000000000000000000000000000000000000000000000000000a'
], ],
address: '0x1234567890123456789012345678901234567891' address: '0x1234567890123456789012345678901234567891'
}); });
@ -90,7 +90,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]); }]);
assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'eth_getFilterLogs'); assert.equal(payload.method, 'eth_getFilterLogs');
@ -105,7 +105,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]]); }]]);
var r = payload.filter(function (p) { var r = payload.filter(function (p) {
return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3';
@ -117,9 +117,9 @@ describe('contract', function () {
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
var res = 0; var res = 0;
var event = contract.Changed({from: address}); var event = contract.Changed({from: address, amount: 10});
event.watch(function(err, result) { event.watch(function(err, result) {
assert.equal(result.args.from, address); assert.equal(result.args.from, address);
assert.equal(result.args.amount, 1); assert.equal(result.args.amount, 1);
assert.equal(result.args.t1, 1); assert.equal(result.args.t1, 1);
assert.equal(result.args.t2, 8); assert.equal(result.args.t2, 8);
@ -133,7 +133,7 @@ describe('contract', function () {
it('should create event filter and watch immediately', function (done) { it('should create event filter and watch immediately', function (done) {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'Changed(address,uint256,uint256,uint256)'; var signature = 'Changed(address,uint256,uint256,uint256)';
var step = 0; var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
@ -161,7 +161,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]); }]);
assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'eth_getFilterLogs'); assert.equal(payload.method, 'eth_getFilterLogs');
@ -176,7 +176,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]]); }]]);
var r = payload.filter(function (p) { var r = payload.filter(function (p) {
return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3';
@ -189,7 +189,7 @@ describe('contract', function () {
var res = 0; var res = 0;
var event = contract.Changed({from: address}, function(err, result) { var event = contract.Changed({from: address}, function(err, result) {
assert.equal(result.args.from, address); assert.equal(result.args.from, address);
assert.equal(result.args.amount, 1); assert.equal(result.args.amount, 1);
assert.equal(result.args.t1, 1); assert.equal(result.args.t1, 1);
assert.equal(result.args.t2, 8); assert.equal(result.args.t2, 8);
@ -203,7 +203,7 @@ describe('contract', function () {
it('should create all event filter', function (done) { it('should create all event filter', function (done) {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'Changed(address,uint256,uint256,uint256)'; var signature = 'Changed(address,uint256,uint256,uint256)';
var step = 0; var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
@ -227,7 +227,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]); }]);
assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'eth_getFilterLogs'); assert.equal(payload.method, 'eth_getFilterLogs');
@ -242,7 +242,7 @@ describe('contract', function () {
], ],
number: 2, number: 2,
data: '0x0000000000000000000000000000000000000000000000000000000000000001' + data: '0x0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000008' '0000000000000000000000000000000000000000000000000000000000000008'
}]]); }]]);
var r = payload.filter(function (p) { var r = payload.filter(function (p) {
return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3';
@ -256,7 +256,7 @@ describe('contract', function () {
var res = 0; var res = 0;
var event = contract.allEvents(); var event = contract.allEvents();
event.watch(function(err, result) { event.watch(function(err, result) {
assert.equal(result.args.from, address); assert.equal(result.args.from, address);
assert.equal(result.args.amount, 1); assert.equal(result.args.amount, 1);
assert.equal(result.args.t1, 1); assert.equal(result.args.t1, 1);
assert.equal(result.args.t2, 8); assert.equal(result.args.t2, 8);
@ -270,11 +270,11 @@ describe('contract', function () {
it('should call constant function', function () { it('should call constant function', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)' var signature = 'balance(address)'
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
@ -291,11 +291,11 @@ describe('contract', function () {
it('should call constant function with default block', function () { it('should call constant function with default block', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)' var signature = 'balance(address)'
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
@ -312,14 +312,14 @@ describe('contract', function () {
it('should sendTransaction to contract function', function () { it('should sendTransaction to contract function', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'send(address,uint256)'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000001234567890123456789012345678901234567891' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
from: address, from: address,
to: address to: address
@ -333,7 +333,7 @@ describe('contract', function () {
it('should make a call with optional params', function () { it('should make a call with optional params', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)'; var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
@ -356,7 +356,7 @@ describe('contract', function () {
it('should throw if called with optional params without all args', function () { it('should throw if called with optional params without all args', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)'; var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
@ -371,7 +371,7 @@ describe('contract', function () {
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
var test = function() { var test = function() {
var r = contract.balance({from: address, gas: 50000}); var r = contract.balance({from: address, gas: 50000});
} }
@ -381,7 +381,7 @@ describe('contract', function () {
it('should explicitly make a call with optional params', function () { it('should explicitly make a call with optional params', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)'; var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
@ -404,7 +404,7 @@ describe('contract', function () {
it('should explicitly make a call with optional params and defaultBlock', function () { it('should explicitly make a call with optional params and defaultBlock', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)'; var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
@ -456,14 +456,14 @@ describe('contract', function () {
it('should sendTransaction with optional params', function () { it('should sendTransaction with optional params', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'send(address,uint256)'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000001234567890123456789012345678901234567891' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
from: address, from: address,
@ -480,14 +480,14 @@ describe('contract', function () {
it('should explicitly sendTransaction with optional params', function () { it('should explicitly sendTransaction with optional params', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'send(address,uint256)'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000001234567890123456789012345678901234567891' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
from: address, from: address,
@ -504,14 +504,14 @@ describe('contract', function () {
it('should explicitly sendTransaction with optional params and call callback without error', function (done) { it('should explicitly sendTransaction with optional params and call callback without error', function (done) {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
var signature = 'send(address,uint256)'; var signature = 'send(address,uint256)';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000001234567890123456789012345678901234567891' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
from: address, from: address,
@ -531,14 +531,14 @@ describe('contract', function () {
it('should explicitly estimateGas with optional params', function () { it('should explicitly estimateGas with optional params', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'send(address,uint256)'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_estimateGas'); assert.equal(payload.method, 'eth_estimateGas');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000001234567890123456789012345678901234567891' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
from: address, from: address,
@ -555,19 +555,19 @@ describe('contract', function () {
it('should call testArr method and properly parse result', function () { it('should call testArr method and properly parse result', function () {
var provider = new FakeHttpProvider2(); var provider = new FakeHttpProvider2();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'testArr(int[])'; var signature = 'testArr(int[])';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectResultList([{ provider.injectResultList([{
result: '0x0000000000000000000000000000000000000000000000000000000000000005' result: '0x0000000000000000000000000000000000000000000000000000000000000005'
}]); }]);
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000000000000000000000000000000000000000000020' + '0000000000000000000000000000000000000000000000000000000000000020' +
'0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000003', '0000000000000000000000000000000000000000000000000000000000000003',
to: address to: address
}, },
@ -580,10 +580,10 @@ describe('contract', function () {
assert.deepEqual(new BigNumber(5), result); assert.deepEqual(new BigNumber(5), result);
}); });
it('should call testArr method, properly parse result and return the result async', function (done) { it('should call testArr method, properly parse result and return the result async', function (done) {
var provider = new FakeHttpProvider2(); var provider = new FakeHttpProvider2();
var web3 = new Web3(provider); var web3 = new Web3(provider);
var signature = 'testArr(int[])'; var signature = 'testArr(int[])';
var address = '0x1234567890123456789012345678901234567891'; var address = '0x1234567890123456789012345678901234567891';
provider.injectResultList([{ provider.injectResultList([{
@ -592,9 +592,9 @@ describe('contract', function () {
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: '0x' + sha3(signature).slice(0, 8) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000000000000000000000000000000000000000000020' + '0000000000000000000000000000000000000000000000000000000000000020' +
'0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000003', '0000000000000000000000000000000000000000000000000000000000000003',
to: address to: address
}, },