X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2Fspec%2Ftests.js;h=6b73c74a5677eeb38e549c084ac106bceabbf51f;hb=3799728c76fd127798fcdd185507b954bea12ebd;hp=42dc7925e4394bfcfa1ba8ea8ef84a578d7f8d97;hpb=c2e4f93870bcebdebf501ba0353f2837ab68417f;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/tests/spec/tests.js b/tests/spec/tests.js index 42dc792..6b73c74 100644 --- a/tests/spec/tests.js +++ b/tests/spec/tests.js @@ -73,16 +73,23 @@ else if (browser == "chrome") { // Helper functions -function testNetwork(done, params) { +function testNetwork(done, params, comparePub = false) { var phrase = params.phrase || 'abandon abandon ability'; driver.findElement(By.css('.phrase')) .sendKeys(phrase); selectNetwork(params.selectText); driver.sleep(generateDelay).then(function() { - getFirstAddress(function(address) { - expect(address).toBe(params.firstAddress); - done(); - }); + if (!comparePub) { + getFirstAddress(function(address) { + expect(address).toBe(params.firstAddress); + done(); + }); + } else { + getFirstPublicKey(function(pubkey) { + expect(pubkey).toBe(params.firstPubKey); + done(); + }); + } }); } @@ -98,6 +105,10 @@ function getFirstAddress(handler) { getFirstRowValue(handler, ".address"); } +function getFirstPublicKey(handler) { + getFirstRowValue(handler, ".pubkey"); +} + function getFirstPath(handler) { getFirstRowValue(handler, ".index"); } @@ -408,6 +419,13 @@ it('Allows selection of litecoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of litecoin testnet', function(done) { + var params = { + selectText: "LTCt - Litecoin Testnet", + firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi", + }; + testNetwork(done, params); +}); it('Allows selection of ripple', function(done) { var params = { selectText: "XRP - Ripple", @@ -416,6 +434,14 @@ it('Allows selection of ripple', function(done) { }; testNetwork(done, params); }); +it('Allows selection of casinocoin', function(done) { + var params = { + selectText: "CSC - CasinoCoin", + firstAddress: "c3P5EUb27Pzk9dcGt4s7zQDQj4sC6Y81mT", + phrase: "ill clump only blind unit burden thing track silver cloth review awake useful craft whale all satisfy else trophy sunset walk vanish hope valve", + }; + testNetwork(done, params); +}); it('Allows selection of dogecoin', function(done) { var params = { selectText: "DOGE - Dogecoin", @@ -423,6 +449,13 @@ it('Allows selection of dogecoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of dogecoin testnet', function(done) { + var params = { + selectText: "DOGEt - Dogecoin Testnet", + firstAddress: "niHnSJKHdwDyDxRMLBJrtNqpvHEsAFWe6B", + }; + testNetwork(done, params); +}); it('Allows selection of denarius', function(done) { var params = { selectText: "DNR - Denarius", @@ -475,7 +508,7 @@ it('Allows selection of clam', function(done) { it('Allows selection of crown', function(done) { var params = { selectText: "CRW - Crown (Legacy)", - firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5", + firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5", }; testNetwork(done, params); }); @@ -552,7 +585,7 @@ it('Allows selection of peercoin', function(done) { it('Allows selection of ethereum', function(done) { var params = { selectText: "ETH - Ethereum", - firstAddress: "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772", + firstAddress: "0x20Bb0CD7dd4a255f558bCD1A34D21E27061Ac2CF", }; testNetwork(done, params); // TODO test private key and public key @@ -615,6 +648,20 @@ it('Allows selection of maza', function(done) { }; testNetwork(done, params); }); +it('Allows selection of FIX', function(done) { + var params = { + selectText: "FIX - FIX", + firstAddress: "FS5MEU8fs5dUvsaSCSusV8RQtC8j2h3JEh", + }; + testNetwork(done, params); +}); +it('Allows selection of FIX testnet', function(done) { + var params = { + selectText: "FIX - FIX Testnet", + firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa", + }; + testNetwork(done, params); +}); it('Allows selection of fujicoin', function(done) { var params = { selectText: "FJC - Fujicoin", @@ -685,6 +732,13 @@ it('Allows selection of Asiacoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of Aryacoin', function(done) { + var params = { + selectText: "ARYA - Aryacoin", + firstAddress: "Abr6gX25KaU9BpwD34UfsL3A4n89NvYYSf", + }; + testNetwork(done, params); +}); it('Allows selection of Auroracoin', function(done) { var params = { selectText: "AUR - Auroracoin", @@ -727,6 +781,13 @@ it('Allows selection of Bitcoin Private', function(done) { }; testNetwork(done, params); }); +it('Allows selection of Bitcoin SV', function(done) { + var params = { + selectText: "BSV - BitcoinSV", + firstAddress: "1N4mgtE5yxifch9jWs7Sds6oVqxdy2t576", + }; + testNetwork(done, params); +}); it('Allows selection of Bitcoinz', function(done) { var params = { selectText: "BTCZ - Bitcoinz", @@ -790,6 +851,13 @@ it('Allows selection of Compcoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of CPUchain', function(done) { + var params = { + selectText: "CPU - CPUchain", + firstAddress: "CWSpLpW7jS4mBHJnkz3mmL5s3yQMg93zK8", + }; + testNetwork(done, params); +}); it('Allows selection of Crave', function(done) { var params = { selectText: "CRAVE - Crave", @@ -853,6 +921,13 @@ it('Allows selection of Einsteinium', function(done) { }; testNetwork(done, params); }); +it('Allows selection of EOSIO', function(done) { + var params = { + selectText: "EOS - EOSIO", + firstPubKey: "EOS692VJTBK3Rmw93onNnpnZ8ZtmE9PdxjDStArvbyzoe11QUTNoy", + }; + testNetwork(done, params, true); +}); it('Allows selection of Europecoin', function(done) { var params = { selectText: "ERC - Europecoin", @@ -1077,6 +1152,13 @@ it('Allows selection of Omnicore', function(done) { }; testNetwork(done, params); }); +it('Allows selection of DeepOnion', function(done) { + var params = { + selectText: "ONION - DeepOnion", + firstAddress: "DYREY7XCFXVqJ3x5UuN43k2JwD2s1kif48", + }; + testNetwork(done, params); +}); it('Allows selection of Pesobit', function(done) { var params = { selectText: "PSB - Pesobit", @@ -1112,6 +1194,13 @@ it('Allows selection of Putincoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of Rapids', function(done) { + var params = { + selectText: "RPD - Rapids", + firstAddress: "Ri8XxUdZaXS5LqxmFJcFEjFinkaMbmhSUp", + }; + testNetwork(done, params); +}); it('Allows selection of Ravencoin', function(done) { var params = { selectText: "RVN - Ravencoin", @@ -1203,6 +1292,20 @@ it('Allows selection of Toa', function(done) { }; testNetwork(done, params); }); +it('Allows selection of TWINS', function(done) { + var params = { + selectText: "TWINS - TWINS", + firstAddress: "WPpJnfLLubNmF7HLNxg8d8zH5haxn4wri8", + }; + testNetwork(done, params); +}); +it('Allows selection of TWINS testnet', function(done) { + var params = { + selectText: "TWINS - TWINS Testnet", + firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa", + }; + testNetwork(done, params); +}); it('Allows selection of Ultimatesecurecash', function(done) { var params = { selectText: "USC - Ultimatesecurecash", @@ -1252,6 +1355,13 @@ it('Allows selection of Vpncoin', function(done) { }; testNetwork(done, params); }); +it('Allows selection of VeChain', function(done) { + var params = { + selectText: "VET - VeChain", + firstAddress: "0x993680FDF7f4a6AbcD4b9Db23b92Bc6B08AF9e48", + }; + testNetwork(done, params); +}); it('Allows selection of Whitecoin', function(done) { var params = { selectText: "XWC - Whitecoin", @@ -1287,9 +1397,9 @@ it('Allows selection of Zclassic', function(done) { }; testNetwork(done, params); }); -it('Allows selection of Zencash', function(done) { +it('Allows selection of Horizen', function(done) { var params = { - selectText: "ZEN - Zencash", + selectText: "ZEN - Horizen", firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p", }; testNetwork(done, params); @@ -1304,59 +1414,74 @@ it('Allows selection of Energi', function(done) { it('Allows selection of Ethereum Classic', function(done) { var params = { selectText: "ETC - Ethereum Classic", - firstAddress: "0x3c05e5556693808367afB62eF3b63e35d6eD249A", + firstAddress: "0x8Ad2bc632591bb442CfBEA19AC919ef16480B162", }; testNetwork(done, params); }); it('Allows selection of Pirl', function(done) { var params = { selectText: "PIRL - Pirl", - firstAddress: "0xe77FC0723dA122B5025CA79193c28563eB47e776", + firstAddress: "0xc85E5dc7287F759394E53e5ba62510a35cE0DcFF", }; testNetwork(done, params); }); it('Allows selection of MIX', function(done) { var params = { selectText: "MIX - MIX", - firstAddress: "0x98BC5e63aeb6A4e82d72850d20710F07E29A29F1", + firstAddress: "0x325C6118DD0f788B50998591B2a7A35FB0a4a402", }; testNetwork(done, params); }); +it('Allows selection of Monkey Project', function(done) { + var params = { + selectText: "MONK - Monkey Project", + firstAddress: "MnLrcnnUzKnf7TzufjRe5DLZqQJz18oYyu", + }; + testNetwork(done, params); +}); + it('Allows selection of Musicoin', function(done) { var params = { selectText: "MUSIC - Musicoin", - firstAddress: "0xDc060e4A0b0313ea83Cf6B3A39B9db2D29004897", + firstAddress: "0x600c481Fa6100531357dD49B3aa042A8F56F6AB5", }; testNetwork(done, params); }); it('Allows selection of Poa', function(done) { var params = { selectText: "POA - Poa", - firstAddress: "0x53aF28d754e106210C3d0467Dd581eaf7e3C5e60", + firstAddress: "0x6F0d9bA6fda8EAA31f24A9c9fef3321F9851329D", }; testNetwork(done, params); }); it('Allows selection of Expanse', function(done) { var params = { selectText: "EXP - Expanse", - firstAddress: "0xf57FeAbf26582b6E3E666559d3B1Cc6fB2b2c5F6", + firstAddress: "0xEc6e7f6782a29353c32A9A104E849605a01546e4", }; testNetwork(done, params); }); it('Allows selection of Callisto', function(done) { var params = { selectText: "CLO - Callisto", - firstAddress: "0x4f9364F7420B317266C51Dc8eB979717D4dE3f4E", + firstAddress: "0x57bE971d6E61315fB957a2BFC9202fbE31f49e89", }; testNetwork(done, params); }); it('Allows selection of HUSH', function(done) { var params = { - selectText: "HUSH - Hush", + selectText: "HUSH - Hush (Legacy)", firstAddress: "t1g6rLXUnJaiJuu4q4zmJjoa9Gk4fwKpiuA", }; testNetwork(done, params); }); +it('Allows selection of HUSH3', function(done) { + var params = { + selectText: "HUSH - Hush3", + firstAddress: "RXWSQhwvw5jHPGP8bjwJhWoRnMLBnuPDKD", + }; + testNetwork(done, params); +}); it('Allows selection of ExchangeCoin', function(done) { var params = { selectText: "EXCC - ExchangeCoin", @@ -1437,21 +1562,63 @@ it('Allows selection of BlockStamp', function(done) { it('Allows selection of DEXON', function(done) { var params = { selectText: "DXN - DEXON", - firstAddress: "0x136a58788033E028CCd740FbDec6734358DB56Ec", + firstAddress: "0x7c444Dd705c6Ecd6a4F926aFd38bC96d6BdcC3D5", }; testNetwork(done, params); }); it('Allows selection of Ellaism', function(done) { var params = { selectText: "ELLA - Ellaism", - firstAddress: "0xa8B0BeA09eeBc41062308546a01d6E544277e2Ca", + firstAddress: "0x9DA7b90b0c0Cf7a2EbbE1A20f9d9A663451a2F8D", }; testNetwork(done, params); }); it('Allows selection of Ethersocial Network', function(done) { var params = { selectText: "ESN - Ethersocial Network", - firstAddress: "0x6EE99Be2A0C7F887a71e21C8608ACF0aa0D2b767", + firstAddress: "0x0685439123f9a1767Bad9b99258d72733783f64C", + }; + testNetwork(done, params); +}); +it('Allows selection of Stellar', function(done) { + var params = { + selectText: "XLM - Stellar", + firstAddress: "GCUK3NYYUXA2QGN6KU5RR36WAKN3Y5EANZV65XNAWN4XM4CHQ3G4DMO2", + }; + testNetwork(done, params); +}); +it('Allows selection of Wagerr', function(done) { + var params = { + selectText: "WGR - Wagerr", + firstAddress: "WYiVgQU39VcQxcnacoCiaZHZZLjDCJoS95", + }; + testNetwork(done, params); +}); +it('Allows selection of Groestlcoin', function(done) { + var params = { + selectText: "GRS - Groestlcoin", + firstAddress: "FZycsFvZ1eH1hbtyjBpAgJSukVw1bN6PBN", + }; + testNetwork(done, params); +}); +it('Allows selection of Groestlcoin Testnet', function(done) { + var params = { + selectText: "GRS - Groestlcoin Testnet", + firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiygRPne9", + }; + testNetwork(done, params); +}); +it('Allows selection of Elastos', function(done) { + var params = { + selectText: "ELA - Elastos", + firstAddress: "EMccDcsn3SwPDcfeQMf3w7utqi8ioWYtkg", + }; + testNetwork(done, params); +}); +it('Allows selection of Energyweb', function(done) { + var params = { + selectText: "EWT - EnergyWeb", + firstAddress: "0x190aCfa6dA6Ff2D0a28Fbd0e02Aec493bCa5D7f7", }; testNetwork(done, params); }); @@ -2035,6 +2202,7 @@ it('Ignores excess whitespace in the mnemonic', function(done) { // Github Issue 23: Part 1: Use correct derivation path when changing tabs // https://github.com/iancoleman/bip39/issues/23 +// This test was failing for default timeout of 5000ms so changed it to +10s it('Uses the correct derivation path when changing tabs', function(done) { // 1) and 2) set the phrase driver.findElement(By.css('.phrase')) @@ -2059,7 +2227,7 @@ it('Uses the correct derivation path when changing tabs', function(done) { }); }); }); -}); +}, generateDelay + 10000); // Github Issue 23 Part 2: Coin selection in derivation path // https://github.com/iancoleman/bip39/issues/23#issuecomment-238011920 @@ -3917,6 +4085,27 @@ it('Shows litecoin BIP49 addresses', function(done) { }); }); +it('Shows Groestlcoin BIP49 addresses', function(done) { + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon ability'); + selectNetwork("GRS - Groestlcoin"); + driver.findElement(By.css('#bip49-tab a')) + .click() + // bip49 addresses are shown + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('#bip49 .available')) + .getAttribute("class") + .then(function(classes) { + expect(classes).not.toContain("hidden"); + // check first address + getFirstAddress(function(address) { + expect(address).toBe("3HXSCZwCypLyixMsF4Z1sN49noJtrm8gnX"); + done(); + }); + }); + }); +}); + it('Can use root keys to generate segwit table rows', function(done) { // segwit uses ypub / zpub instead of xpub but the root key should still // be valid regardless of the encoding used to import that key. @@ -3936,4 +4125,57 @@ it('Can use root keys to generate segwit table rows', function(done) { }); }); +// Pull Request 271 +// Allow converting mnemonic back to raw entropy value +it('Converts mnemonics into raw entropy', function(done) { + driver.findElement(By.css('.phrase')) + .sendKeys('abandon abandon about'); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.use-entropy')) + .click(); + driver.findElement(By.css('.entropy')) + .getAttribute("value") + .then(function(entropy) { + expect(entropy).toBe("00000000000000000000000000000001"); + driver.findElement(By.css('.phrase')) + .getAttribute("value") + .then(function(phrase) { + expect(phrase).toBe("abandon abandon about"); + done(); + }); + }); + }); +}); + +// Pull Request 279 +// Added Split Phrase Card Output +it('Shows split prase cards', function(done) { + var originalPhrase = "ugly charge strong giant once anchor capable october thumb inject dwarf legal alley mixture shoot"; + var originalWords = originalPhrase.split(' '); + driver.findElement(By.css('.phrase')) + .sendKeys(originalPhrase); + driver.sleep(generateDelay).then(function() { + driver.findElement(By.css('.phraseSplit')) + .getAttribute("value") + .then(function(cardsStr) { + var cards = cardsStr.split("\n"); + expect(cards.length).toBe(3); + // test all 2-of-3 combos can be used to form full phrase + var combos = [[0,1],[0,2],[1,2]]; + for (var i=0; i