X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests.js;h=c9189a73268d6d890d6c8fba21cae3692ce5c68e;hb=4974fd7f0024213a8b5af4ff569a2510e711e3b0;hp=bacaec008d44ec1e8b06c985214169034d98396e;hpb=fb3726873f9dd6d7319388a1a5e472042098248b;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/tests.js b/tests.js index bacaec0..c9189a7 100644 --- a/tests.js +++ b/tests.js @@ -564,22 +564,385 @@ page.open(url, function(status) { }); }, -// TODO finish these tests - // BIP44 extended private key is shown +function() { +page.open(url, function(status) { + // set the phrase + var expected = "xprvA2DxxvPZcyRvYgZMGS53nadR32mVDeCyqQYyFhrCVbJNjPoxMeVf7QT5g7mQASbTf9Kp4cryvcXnu2qurjWKcrdsr91jXymdCDNxKgLFKJG"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // check the BIP44 extended private key + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".extended-priv-key").val(); + }); + if (actual != expected) { + console.log("BIP44 extended private key is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); +}); +}, + // BIP44 extended public key is shown +function() { +page.open(url, function(status) { + // set the phrase + var expected = "xpub6FDKNRvTTLzDmAdpNTc49ia9b4byd6vqCdUa46Fp3vqMcC96uBoufCmZXQLiN5AK3iSCJMhf9gT2sxkpyaPepRuA7W3MujV5tGmF5VfbueM"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // check the BIP44 extended public key + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".extended-pub-key").val(); + }); + if (actual != expected) { + console.log("BIP44 extended public key is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); +}); +}, + // BIP44 purpose field changes address list +function() { +page.open(url, function(status) { + // set the phrase + var expected = "1JbDzRJ2cDT8aat2xwKd6Pb2zzavow5MhF"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + waitForGenerate(function() { + // change the bip44 purpose field to 45 + page.evaluate(function() { + $("#bip44 .purpose").val("45"); + $("#bip44 .purpose").trigger("input"); + }); + waitForGenerate(function() { + // check the address for the new derivation path + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("BIP44 purpose field generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, + // BIP44 coin field changes address list +function() { +page.open(url, function(status) { + // set the phrase + var expected = "1F6dB2djQYrxoyfZZmfr6D5voH8GkJTghk"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + waitForGenerate(function() { + // change the bip44 purpose field to 45 + page.evaluate(function() { + $("#bip44 .coin").val("1"); + $("#bip44 .coin").trigger("input"); + }); + waitForGenerate(function() { + // check the address for the new derivation path + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("BIP44 coin field generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, + // BIP44 account field changes address list -// BIP44 external/internal field changes address list +function() { +page.open(url, function(status) { + // set the phrase + var expected = "1Nq2Wmu726XHCuGhctEtGmhxo3wzk5wZ1H"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + waitForGenerate(function() { + // change the bip44 purpose field to 45 + page.evaluate(function() { + $("#bip44 .account").val("1"); + $("#bip44 .account").trigger("input"); + }); + waitForGenerate(function() { + // check the address for the new derivation path + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("BIP44 account field generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, + +// BIP44 change field changes address list +function() { +page.open(url, function(status) { + // set the phrase + var expected = "1KAGfWgqfVbSSXY56fNQ7YnhyKuoskHtYo"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + waitForGenerate(function() { + // change the bip44 purpose field to 45 + page.evaluate(function() { + $("#bip44 .change").val("1"); + $("#bip44 .change").trigger("input"); + }); + waitForGenerate(function() { + // check the address for the new derivation path + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("BIP44 change field generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, // BIP32 derivation path can be set +function() { +page.open(url, function(status) { + // set the phrase + var expected = "16pYQQdLD1hH4hwTGLXBaZ9Teboi1AGL8L"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // change tabs + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32-tab a").click(); + }); + // set the derivation path to m/1 + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32 .path").val("m/1"); + $("#bip32 .path").trigger("input"); + }); + // check the address is generated correctly + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("Custom BIP32 path generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); + }); +}); +}, + // BIP32 can use hardened derivation paths +function() { +page.open(url, function(status) { + // set the phrase + var expected = "14aXZeprXAE3UUKQc4ihvwBvww2LuEoHo4"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // change tabs + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32-tab a").click(); + }); + // set the derivation path to m/0' + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32 .path").val("m/0'"); + $("#bip32 .path").trigger("input"); + }); + // check the address is generated correctly + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("Hardened BIP32 path generates incorrect address"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); + }); +}); +}, + // BIP32 extended private key is shown +function() { +page.open(url, function(status) { + // set the phrase + var expected = "xprv9va99uTVE5aLiutUVLTyfxfe8v8aaXjSQ1XxZbK6SezYVuikA9MnjQVTA8rQHpNA5LKvyQBpLiHbBQiiccKiBDs7eRmBogsvq3THFeLHYbe"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // change tabs + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32-tab a").click(); + }); + // check the extended private key is generated correctly + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".extended-priv-key").val(); + }); + if (actual != expected) { + console.log("BIP32 extended private key is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, + // BIP32 extended public key is shown +function() { +page.open(url, function(status) { + // set the phrase + var expected = "xpub69ZVZQzP4T8dwPxwbMzz36cNgwy4yzTHmETZMyihzzXXNi3thgg3HCow1RtY252wdw5rS8369xKnraN5Q93y3FkFfJp2XEHWUrkyXsjS93P"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // change tabs + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32-tab a").click(); + }); + // check the extended public key is generated correctly + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".extended-pub-key").val(); + }); + if (actual != expected) { + console.log("BIP32 extended public key is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); +}); +}, // Derivation path is shown in table +function() { +page.open(url, function(status) { + // set the phrase + var expected = "m/44'/0'/0'/0/0"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // check for derivation path in table + waitForGenerate(function() { + var actual = page.evaluate(function() { + return $(".index:first").text(); + }); + if (actual != expected) { + console.log("Derivation path shown incorrectly in table"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); +}); +}, + // Derivation path for address can be hardened +function() { +page.open(url, function(status) { + // set the phrase + var expected = "18exLzUv7kfpiXRzmCjFDoC9qwNLFyvwyd"; + page.evaluate(function() { + $(".phrase").val("abandon abandon ability"); + $(".phrase").trigger("input"); + }); + // change tabs + waitForGenerate(function() { + page.evaluate(function() { + $("#bip32-tab a").click(); + }); + waitForGenerate(function() { + // select the hardened addresses option + page.evaluate(function() { + $(".hardened-addresses").prop("checked", true); + $(".hardened-addresses").trigger("change"); + }); + waitForGenerate(function() { + // check the generated address is hardened + var actual = page.evaluate(function() { + return $(".address:first").text(); + }); + if (actual != expected) { + console.log("Hardened address is incorrect"); + console.log("Expected: " + expected); + console.log("Actual: " + actual); + fail(); + } + next(); + }); + }); + }); +}); +}, + // Derivation path visibility can be toggled // Address is shown // Addresses are shown in order of derivation path