$(".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();
$(".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();
});
},
-// 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
+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
// Derivation path visibility can be toggled
// Address is shown