X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests.js;h=89f4ce367462fdf27dcff025ebebcec295ddc887;hb=49b21f122a232330f7efc499095d8d80f7895a20;hp=d5a73f6cee83cf1939b08ddfea962184b6952e2d;hpb=c554e6ff5c2c543997841c0fb0a506262843e8df;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/tests.js b/tests.js index d5a73f6..89f4ce3 100644 --- a/tests.js +++ b/tests.js @@ -4,7 +4,7 @@ var page = require('webpage').create(); var url = 'src/index.html'; -var testMaxTime = 10000; +var testMaxTime = 20000; page.viewportSize = { width: 1024, @@ -607,6 +607,66 @@ page.open(url, function(status) { }); }, +// Network can be set to ethereum +function() { + +page.open(url, function(status) { + + // set the phrase and coin + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + $(".network option[selected]").removeAttr("selected"); + $(".network option[value=13]").prop("selected", true); + $(".network").trigger("change"); + }); + waitForGenerate(function() { + // check the address is generated correctly + // this value comes from + // https://www.myetherwallet.com/#view-wallet-info + // Unusual capitalization is due to checksum + var expected = "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772"; + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("Ethereum address is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + // check the private key is correct + // this private key can be imported into + // https://www.myetherwallet.com/#view-wallet-info + // and it should correlate to the address above + var expected = "8f253078b73d7498302bb78c171b23ce7a8fb511987d2b2702b731638a4a15e7"; + var actual = page.evaluate(function() { + return $(".privkey:first").text(); + }); + if (actual != expected) { + console.log("Ethereum privkey is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + // check the public key is correct + // TODO + // don't have any third-party source to generate the expected value + //var expected = "?"; + //var actual = page.evaluate(function() { + // return $(".pubkey:first").text(); + //}); + //if (actual != expected) { + // console.log("Ethereum privkey is incorrect"); + // console.log("Expected: " + expected); + // console.log("Actual: " + actual); + // fail(); + //} + next(); + }); +}); +}, + // BIP39 seed is set from phrase function() { page.open(url, function(status) { @@ -1562,6 +1622,31 @@ page.open(url, function(status) { }); }, +// Github pull request 48 +// First four letters of word shows that word, not closest +// since first four letters gives unique word in BIP39 wordlist +// eg ille should show illegal, not idle +function() { +page.open(url, function(status) { + // set the incomplete word + page.evaluate(function() { + $(".phrase").val("ille").trigger("input"); + }); + // check there is a suggestion shown + waitForFeedback(function() { + var feedback = page.evaluate(function() { + return $(".feedback").text(); + }); + if (feedback.indexOf("did you mean illegal?") < 0) { + console.log("Start of word does not show correct suggestion"); + console.log("Error: " + error); + fail(); + } + next(); + }); +}); +}, + // Incorrect BIP32 root key shows error function() { page.open(url, function(status) { @@ -2155,10 +2240,10 @@ page.open(url, function(status) { return e.message; } // Leading zeros for card entropy as binary string. - // Card entropy is hashed so 2c does not produce leading zeros. + // Card entropy is hashed so 2c does not necessarily produce leading zeros. try { - e = Entropy.fromString("4c"); - if (e.binaryStr != "0001") { + e = Entropy.fromString("2c"); + if (e.binaryStr != "0010") { return "Card entropy as binary has leading zeros"; } } @@ -2190,24 +2275,24 @@ page.open(url, function(status) { // [ cards, binary ] try { var cards = [ - [ "ac", "0100" ], - [ "acqs", "10111101" ], - [ "acks", "11110000" ], - [ "2cac", "11000010" ], - [ "2c", "1000" ], - [ "3d", "1111" ], - [ "4h", "0011" ], + [ "ac", "0101" ], + [ "acqs", "11011100" ], + [ "acks", "01011100" ], + [ "2cac", "11111000" ], + [ "2c", "0010" ], + [ "3d", "0001" ], + [ "4h", "1001" ], [ "5s", "1001" ], - [ "6c", "1011" ], - [ "7d", "1101" ], + [ "6c", "0000" ], + [ "7d", "0001" ], [ "8h", "1011" ], - [ "9s", "1010" ], - [ "tc", "1101" ], - [ "jd", "1101" ], - [ "qh", "1100" ], - [ "ks", "1111" ], - [ "ks2c", "10000001" ], - [ "KS2C", "10000001" ], + [ "9s", "0010" ], + [ "tc", "1001" ], + [ "jd", "1111" ], + [ "qh", "0010" ], + [ "ks", "0101" ], + [ "ks2c", "01010100" ], + [ "KS2C", "01010100" ], ]; for (var i=0; i