fix conflics
This commit is contained in:
commit
cd71ce4421
25 changed files with 268 additions and 122 deletions
|
|
@ -14,9 +14,6 @@
|
|||
<script>mocha.setup('bdd')</script>
|
||||
<script src="../lib/bitcore/browser/bundle.js"></script>
|
||||
<script src="../js/copayBundle.js"></script>
|
||||
<script>
|
||||
var copay = require('copay');
|
||||
</script>
|
||||
<script src="test.blockchain.Insight.js"></script>
|
||||
<script src="test.PrivateKey.js"></script>
|
||||
<script src="test.PublicKeyRing.js"></script>
|
||||
|
|
@ -24,7 +21,7 @@
|
|||
<script src="test.storage.LocalPlain.js"></script>
|
||||
<script src="test.TxProposals.js"></script>
|
||||
<script src="test.Wallet.js"></script>
|
||||
<script src="test.Walletfactory.js"></script>
|
||||
<script src="test.WalletFactory.js"></script>
|
||||
<script src="test.performance.js"></script>
|
||||
<!--
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ var FakeWallet = function() {
|
|||
this.balanceByAddr = {
|
||||
'1CjPR7Z5ZSyWk6WtXvSFgkptmpoi4UM9BC': 1000
|
||||
};
|
||||
this.name = 'myTESTwullet';
|
||||
};
|
||||
|
||||
FakeWallet.prototype.set = function(balance, safeBalance, balanceByAddr) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,11 @@
|
|||
|
||||
var chai = chai || require('chai');
|
||||
var should = chai.should();
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var API = API || copay.API;
|
||||
var Storage = Storage || require('../test/mocks/FakeStorage');
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,11 @@ var should = chai.should();
|
|||
var bitcore = bitcore || require('bitcore');
|
||||
var Address = bitcore.Address;
|
||||
var buffertools = bitcore.buffertools;
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var PublicKeyRing = copay.PublicKeyRing;
|
||||
var AddressIndex = copay.AddressIndex;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@ var chai = chai || require('chai');
|
|||
var should = chai.should();
|
||||
var bitcore = bitcore || require('bitcore');
|
||||
var buffertools = bitcore.buffertools;
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var Passphrase = copay.Passphrase;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,11 +7,15 @@ var Transaction = bitcore.Transaction;
|
|||
var buffertools = bitcore.buffertools;
|
||||
var WalletKey = bitcore.WalletKey;
|
||||
var Key = bitcore.Key;
|
||||
var bignum = bitcore.bignum;
|
||||
var bignum = bitcore.Bignum;
|
||||
var networks = bitcore.networks;
|
||||
var Address = bitcore.Address;
|
||||
var BitcorePrivateKey = bitcore.PrivateKey;
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var PrivateKey = copay.PrivateKey || require('../js/models/core/PrivateKey');
|
||||
|
||||
var config = {
|
||||
|
|
|
|||
|
|
@ -5,16 +5,16 @@ var should = chai.should();
|
|||
var bitcore = bitcore || require('bitcore');
|
||||
var Address = bitcore.Address;
|
||||
var buffertools = bitcore.buffertools;
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var PublicKeyRing = copay.PublicKeyRing;
|
||||
|
||||
var aMasterPubKey = 'tprv8ZgxMBicQKsPdSVTiWXEqCCzqRaRr9EAQdn5UVMpT9UHX67Dh1FmzEMbavPumpAicsUm2XvC6NTdcWB89yN5DUWx5HQ7z3KByUg7Ht74VRZ';
|
||||
|
||||
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
|
||||
var createW = function (networkName) {
|
||||
var config = {
|
||||
networkName: networkName || 'livenet',
|
||||
|
|
@ -37,6 +37,10 @@ var createW = function (networkName) {
|
|||
describe('PublicKeyRing model', function() {
|
||||
|
||||
it('should create an instance (livenet)', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
|
||||
var w = new PublicKeyRing({
|
||||
networkName: config.networkName
|
||||
});
|
||||
|
|
@ -50,6 +54,9 @@ describe('PublicKeyRing model', function() {
|
|||
});
|
||||
|
||||
it('should fail to generate shared pub keys wo extended key', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
var w2 = new PublicKeyRing(config);
|
||||
should.exist(w2);
|
||||
|
||||
|
|
@ -235,6 +242,9 @@ describe('PublicKeyRing model', function() {
|
|||
|
||||
|
||||
it('#merge pubkey tests', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
var w = new PublicKeyRing(config);
|
||||
should.exist(w);
|
||||
var copayers = [];
|
||||
|
|
@ -264,6 +274,9 @@ describe('PublicKeyRing model', function() {
|
|||
});
|
||||
|
||||
it('#merge pubkey tests (case 2)', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
var w = new PublicKeyRing(config);
|
||||
should.exist(w);
|
||||
|
||||
|
|
@ -281,6 +294,9 @@ describe('PublicKeyRing model', function() {
|
|||
|
||||
|
||||
it('#merge with nickname', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
var w = new PublicKeyRing(config);
|
||||
should.exist(w);
|
||||
for(var i=0; i<3; i++) {
|
||||
|
|
@ -315,6 +331,9 @@ describe('PublicKeyRing model', function() {
|
|||
|
||||
|
||||
it('#toObj #fromObj with nickname', function () {
|
||||
var config = {
|
||||
networkName:'livenet',
|
||||
};
|
||||
var w = new PublicKeyRing(config);
|
||||
should.exist(w);
|
||||
for(var i=0; i<3; i++) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
var chai = chai || require('chai');
|
||||
var should = chai.should();
|
||||
var bitcore = bitcore || require('bitcore');
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var Structure = require('../js/models/core/Structure');
|
||||
|
||||
describe('Structure model', function() {
|
||||
|
|
|
|||
|
|
@ -7,20 +7,24 @@ var Transaction = bitcore.Transaction;
|
|||
var buffertools = bitcore.buffertools;
|
||||
var WalletKey = bitcore.WalletKey;
|
||||
var Key = bitcore.Key;
|
||||
var bignum = bitcore.bignum;
|
||||
var bignum = bitcore.Bignum;
|
||||
var Script = bitcore.Script;
|
||||
var Builder = bitcore.TransactionBuilder;
|
||||
var util = bitcore.util;
|
||||
var networks = bitcore.networks;
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var fakeStorage = copay.FakeStorage;
|
||||
var PrivateKey = copay.PrivateKey || require('../js/models/PrivateKey');
|
||||
var TxProposals = copay.TxProposals || require('../js/models/TxProposal');
|
||||
var is_browser = (typeof process == 'undefined' || typeof process.versions === 'undefined')
|
||||
var PublicKeyRing = is_browser ? copay.PublicKeyRing :
|
||||
require('soop').load('../js/models/core/PublicKeyRing', {
|
||||
Storage: fakeStorage
|
||||
});
|
||||
var is_browser = (typeof process.versions === 'undefined')
|
||||
|
||||
var config = {
|
||||
networkName: 'testnet',
|
||||
|
|
@ -102,7 +106,7 @@ describe('TxProposals model', function() {
|
|||
tx = b.build();
|
||||
tx.isComplete().should.equal(true);
|
||||
|
||||
var s = new Script(new Buffer(unspentTest[0].scriptPubKey, 'hex'));
|
||||
var s = new Script(new bitcore.Buffer(unspentTest[0].scriptPubKey, 'hex'));
|
||||
|
||||
tx.verifyInput(0, s, {
|
||||
verifyP2SH: true,
|
||||
|
|
@ -126,7 +130,7 @@ describe('TxProposals model', function() {
|
|||
var createTx = function(toAddress, amountSatStr, utxos, opts, priv, pkr) {
|
||||
opts = opts || {};
|
||||
|
||||
var amountSat = bitcore.bignum(amountSatStr);
|
||||
var amountSat = bitcore.Bignum(amountSatStr);
|
||||
|
||||
if (!pkr.isComplete()) {
|
||||
throw new Error('publicKeyRing is not complete');
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
var chai = chai || require('chai');
|
||||
var should = chai.should();
|
||||
var sinon = require('sinon');
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var Wallet = require('../js/models/core/Wallet');
|
||||
var Storage = require('./mocks/FakeStorage');
|
||||
var Network = require('./mocks/FakeNetwork');
|
||||
|
|
@ -77,7 +81,7 @@ describe('Wallet model', function() {
|
|||
should.exist(w.privateKey);
|
||||
should.exist(w.txProposals);
|
||||
should.exist(w.netKey);
|
||||
var b = new Buffer(w.netKey, 'base64');
|
||||
var b = new bitcore.Buffer(w.netKey, 'base64');
|
||||
b.toString('hex').length.should.equal(16);
|
||||
});
|
||||
|
||||
|
|
@ -287,6 +291,7 @@ describe('Wallet model', function() {
|
|||
});
|
||||
|
||||
it('call reconnect after interval', function(done) {
|
||||
this.timeout(10000);
|
||||
var w = createW2();
|
||||
var testTime = 1000;
|
||||
var callCount = 0;
|
||||
|
|
@ -539,6 +544,7 @@ describe('Wallet model', function() {
|
|||
});
|
||||
});
|
||||
it('should create & sign transaction from received funds', function(done) {
|
||||
this.timeout(10000);
|
||||
var w = createW2();
|
||||
var pk = w.privateKey;
|
||||
w.privateKey = null;
|
||||
|
|
|
|||
|
|
@ -10,13 +10,17 @@ var FakeBlockchain = require('./mocks/FakeBlockchain');
|
|||
var FakeStorage = require('./mocks/FakeStorage');
|
||||
var WalletFactory = require('../js/models/core/WalletFactory');
|
||||
|
||||
describe.only('WalletFactory model', function() {
|
||||
describe('WalletFactory model', function() {
|
||||
var config = {
|
||||
Network: FakeNetwork,
|
||||
Blockchain: FakeBlockchain,
|
||||
Storage: FakeStorage,
|
||||
wallet: {
|
||||
requiredCopayers: 3,
|
||||
totalCopayers: 5,
|
||||
spendUnconfirmed: 1,
|
||||
reconnectDelay: 100,
|
||||
|
||||
},
|
||||
blockchain: {
|
||||
host: 'test.insight.is',
|
||||
|
|
@ -90,6 +94,9 @@ describe.only('WalletFactory model', function() {
|
|||
|
||||
it('BIP32 length problem', function() {
|
||||
var sconfig = {
|
||||
Network: FakeNetwork,
|
||||
Blockchain: FakeBlockchain,
|
||||
Storage: FakeStorage,
|
||||
"networkName": "testnet",
|
||||
"network": {
|
||||
"key": "g23ihfh82h35rf",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
var chai = chai || require('chai');
|
||||
var should = chai.should();
|
||||
var bitcore = bitcore || require('bitcore');
|
||||
var copay = copay || require('../copay');
|
||||
try {
|
||||
var copay = require('copay'); //browser
|
||||
} catch (e) {
|
||||
var copay = require('../copay'); //node
|
||||
}
|
||||
var Insight = copay.Insight || require('../js/models/blockchain/Insight');
|
||||
|
||||
var ID = '933bf321393459b7';
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
var copay = copay || require('../copay');
|
||||
var LocalEncrypted = copay.StorageLocalEncrypted;
|
||||
|
||||
var fakeWallet = 'fake-wallet-id';
|
||||
var timeStamp = Date.now();
|
||||
|
||||
describe('Storage/LocalEncrypted model', function() {
|
||||
var wid = 'fake-wallet-id';
|
||||
var s = new LocalEncrypted();
|
||||
s._setPassphrase('mysupercoolpassword');
|
||||
|
||||
|
|
@ -18,14 +20,19 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
});
|
||||
it('should fail when encrypting without a password', function() {
|
||||
var s = new LocalEncrypted();
|
||||
(function(){s.set(wid, 'x', 1);}).should.throw();
|
||||
(function(){
|
||||
s.set(fakeWallet, timeStamp, 1);
|
||||
localStorage.removeItem(fakeWallet +'::'+ timeStamp);
|
||||
}).should.throw();
|
||||
});
|
||||
it('should be able to encrypt and decrypt', function() {
|
||||
s._write('key', 'value');
|
||||
s._read('key').should.equal('value');
|
||||
s._write(fakeWallet+timeStamp, 'value');
|
||||
s._read(fakeWallet+timeStamp).should.equal('value');
|
||||
localStorage.removeItem(fakeWallet+timeStamp);
|
||||
});
|
||||
it('should be able to set a value', function() {
|
||||
s.set(wid, 'x', 1);
|
||||
s.set(fakeWallet, timeStamp, 1);
|
||||
localStorage.removeItem(fakeWallet +'::'+ timeStamp);
|
||||
});
|
||||
var getSetData = [
|
||||
1,1000,-15, -1000,
|
||||
|
|
@ -40,22 +47,24 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
];
|
||||
getSetData.forEach(function(obj) {
|
||||
it('should be able to set a value and get it for '+JSON.stringify(obj), function() {
|
||||
s.set(wid, 'x', obj);
|
||||
var obj2 = s.get(wid, 'x');
|
||||
s.set(fakeWallet, timeStamp, obj);
|
||||
var obj2 = s.get(fakeWallet, timeStamp);
|
||||
JSON.stringify(obj2).should.equal(JSON.stringify(obj));
|
||||
localStorage.removeItem(fakeWallet +'::'+ timeStamp);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#export', function() {
|
||||
it('should export the encrypted wallet', function() {
|
||||
localStorage.clear();
|
||||
var storage = new LocalEncrypted({password: 'password'});
|
||||
storage.set('walletId', 'test', 'testval');
|
||||
storage.set(fakeWallet, timeStamp, 'testval');
|
||||
var obj = {test:'testval'};
|
||||
var encrypted = storage.export(obj);
|
||||
encrypted.length.should.be.greaterThan(10);
|
||||
localStorage.removeItem(fakeWallet +'::'+ timeStamp);
|
||||
//encrypted.slice(0,6).should.equal("53616c");
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
var copay = copay || require('../copay');
|
||||
var LocalPlain = copay.StorageLocalPlain;
|
||||
|
||||
describe.skip('Storage/LocalPlain model', function() {
|
||||
describe('Storage/LocalPlain model', function() {
|
||||
|
||||
it('should create an instance', function() {
|
||||
var s = new LocalPlain();
|
||||
|
|
@ -16,7 +16,9 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
|
||||
describe('#setFromObj', function() {
|
||||
it('should set keys from an object', function() {
|
||||
localStorage.clear();
|
||||
var fakeWallet = 'fake-wallet-id';
|
||||
var timeStamp = Date.now();
|
||||
|
||||
var obj = {
|
||||
test: 'testval',
|
||||
opts: {
|
||||
|
|
@ -24,8 +26,13 @@ if (typeof process === 'undefined' || !process.version) {
|
|||
}
|
||||
};
|
||||
var storage = new LocalPlain();
|
||||
storage.setFromObj('walletId', obj);
|
||||
storage.get('walletId', 'test').should.equal('testval');
|
||||
storage.setFromObj(fakeWallet+timeStamp, obj);
|
||||
storage.get(fakeWallet+timeStamp, 'test').should.equal('testval');
|
||||
|
||||
// Clean data used in localstorage
|
||||
localStorage.removeItem(fakeWallet+timeStamp+'::test');
|
||||
localStorage.removeItem(fakeWallet+timeStamp+'::opts');
|
||||
localStorage.removeItem('nameFor::'+fakeWallet+timeStamp);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -87,3 +87,24 @@ describe("Unit: controllerUtils", function() {
|
|||
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe("Unit: Backup Service", function() {
|
||||
var sinon = require('sinon');
|
||||
beforeEach(angular.mock.module('copayApp.services'));
|
||||
it('should contain a backup service', inject(function(backupService) {
|
||||
expect(backupService).not.to.equal(null);
|
||||
}));
|
||||
it('should backup in file', inject(function(backupService) {
|
||||
var mock = sinon.mock(window);
|
||||
var expectation = mock.expects('saveAs');
|
||||
backupService.download(new FakeWallet());
|
||||
expectation.once();
|
||||
}));
|
||||
it('should backup by email', inject(function(backupService) {
|
||||
var mock = sinon.mock(window);
|
||||
var expectation = mock.expects('open');
|
||||
backupService.sendEmail('fake@test.com', new FakeWallet());
|
||||
expectation.once();
|
||||
}));
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue