X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests.js;h=2c304f37d4dec0eb53d59a9a26c3d90efc28bcc7;hb=9e9dcfdaa38eeb1e7d19d6eedb8bfe1b18880f56;hp=81c8504eef534745e62f48646c6bef006a8fe1df;hpb=39fd45bb13bd3174546af033a3c3dc87c3b2b2f0;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/tests.js b/tests.js index 81c8504..2c304f3 100644 --- a/tests.js +++ b/tests.js @@ -573,7 +573,7 @@ page.open(url, function(status) { $(".phrase").val("abandon abandon ability"); $(".phrase").trigger("input"); }); - // check the derivation path of the first address + // check the BIP44 extended private key waitForGenerate(function() { var actual = page.evaluate(function() { return $(".extended-priv-key").val(); @@ -598,7 +598,7 @@ page.open(url, function(status) { $(".phrase").val("abandon abandon ability"); $(".phrase").trigger("input"); }); - // check the derivation path of the first address + // check the BIP44 extended public key waitForGenerate(function() { var actual = page.evaluate(function() { return $(".extended-pub-key").val(); @@ -614,17 +614,271 @@ page.open(url, function(status) { }); }, -// TODO finish these tests - // 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 // Derivation path for address can be hardened