Browse Source

increase test coverage and fix some bugs

patch-2
Manuel Araoz 10 years ago
parent
commit
ef7eafbb0c
  1. 11
      lib/script/script.js
  2. 19
      test/script/script.js

11
lib/script/script.js

@ -291,9 +291,6 @@ Script.prototype.isScriptHashIn = function() {
return false;
}
var redeemChunk = this.chunks[this.chunks.length - 1];
if (!redeemChunk) {
return false;
}
var redeemBuf = redeemChunk.buf;
if (!redeemBuf) {
return false;
@ -449,14 +446,12 @@ Script.prototype.equals = function(script) {
}
var i;
for (i = 0; i < this.chunks.length; i++) {
if (BufferUtil.isBuffer(this.chunks[i]) && !BufferUtil.isBuffer(script.chunks[i])) {
return false;
} else if (this.chunks[i] instanceof Opcode && !(script.chunks[i] instanceof Opcode)) {
if (BufferUtil.isBuffer(this.chunks[i].buf) && !BufferUtil.isBuffer(script.chunks[i].buf)) {
return false;
}
if (BufferUtil.isBuffer(this.chunks[i]) && !BufferUtil.equals(this.chunks[i], script.chunks[i])) {
if (BufferUtil.isBuffer(this.chunks[i].buf) && !BufferUtil.equals(this.chunks[i].buf, script.chunks[i].buf)) {
return false;
} else if (this.chunks[i].num !== script.chunks[i].num) {
} else if (this.chunks[i].opcodenum !== script.chunks[i].opcodenum) {
return false;
}
}

19
test/script/script.js

@ -11,6 +11,8 @@ var Opcode = bitcore.Opcode;
var PublicKey = bitcore.PublicKey;
var Address = bitcore.Address;
var script_valid = require('../data/bitcoind/script_valid');
describe('Script', function() {
it('should make a new script', function() {
@ -713,5 +715,22 @@ describe('Script', function() {
});
});
describe('equals', function() {
it('returns true for same script', function() {
Script('OP_TRUE').equals(Script('OP_TRUE')).should.equal(true);
});
it('returns false for different chunks sizes', function() {
Script('OP_TRUE').equals(Script('OP_TRUE OP_TRUE')).should.equal(false);
});
it('returns false for different opcodes', function() {
Script('OP_TRUE OP_TRUE').equals(Script('OP_TRUE OP_FALSE')).should.equal(false);
});
it('returns false for different data', function() {
Script().add(new Buffer('a')).equals(Script('OP_TRUE')).should.equal(false);
});
it('returns false for different data', function() {
Script().add(new Buffer('a')).equals(Script().add(new Buffer('b'))).should.equal(false);
});
});
});

Loading…
Cancel
Save