]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests.js
Merge pull request #129 from rsnel/bgold
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests.js
index 8965f80a8d3935ad0da5bfb333dc77eec6c2327e..909868becddec930712545e5c3876647d29c3c0d 100644 (file)
--- a/tests.js
+++ b/tests.js
@@ -1022,6 +1022,66 @@ page.open(url, function(status) {
 });
 },
 
+// Network can be set to fujicoin
+function() {
+page.open(url, function(status) {
+    // set the phrase and coin
+    var expected = "FgiaLpG7C99DyR4WnPxXedRVHXSfKzUDhF";
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "FJC - Fujicoin";
+        }).prop("selected", true);
+        $(".network").trigger("change");
+    });
+    // check the address is generated correctly
+    waitForGenerate(function() {
+        var actual = page.evaluate(function() {
+            return $(".address:first").text();
+        });
+        if (actual != expected) {
+            console.log("Fujicoin address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
+// Network can be set to nubits
+function() {
+page.open(url, function(status) {
+    // set the phrase and coin
+    var expected = "BLxkabXuZSJSdesLD7KxZdqovd4YwyBTU6";
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "USNBT - NuBits";
+        }).prop("selected", true);
+        $(".network").trigger("change");
+    });
+    // check the address is generated correctly
+    waitForGenerate(function() {
+        var actual = page.evaluate(function() {
+            return $(".address:first").text();
+        });
+        if (actual != expected) {
+            console.log("NuBits address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
 // BIP39 seed is set from phrase
 function() {
 page.open(url, function(status) {
@@ -3630,7 +3690,7 @@ page.open(url, function(status) {
     });
     waitForFeedback(function() {
         // Check feedback is correct
-        var expected = "No root key";
+        var expected = "Invalid root key";
         var actual = page.evaluate(function() {
             return $(".feedback").text();
         });
@@ -3937,7 +3997,7 @@ page.open(url, function(status) {
 function() {
 page.open(url, function(status) {
     // set the phrase
-    var expected = "xprvA1hukYsW7QfX9CVsaDAKde4eryajKa4DKWb6m9YjSnqkiZHrahFwwTJfEQTwBQ5kptWT5pZMkkusT1oK8dc1efQ8VFfq4SLSPAWd7Cpt423";
+    var expected = "yprvALYB4DYRG6CzzVgzQZwwqjAA2wjBGC3iEd7KYYScpoDdmf75qMRWZWxoFcRXBJjgEXdFqJ9vDRGRLJQsrL22Su5jMbNFeM9vetaGVqy9Qy2";
     page.evaluate(function() {
         $("#bip49-tab a").click();
         $(".phrase").val("abandon abandon ability").trigger("input");
@@ -3962,7 +4022,7 @@ page.open(url, function(status) {
 function() {
 page.open(url, function(status) {
     // set the phrase
-    var expected = "xpub6EhGA4QPwnDpMgaLgEhKzn1PR1RDj2n4gjWhZXxM18NjbMd18EaCVFd95gkLARJaBD2rXAYJED2gdkUbGn1KkrSzCKR554AdABUELoainnt";
+    var expected = "ypub6ZXXTj5K6TmJCymTWbUxCs6tayZffemZbr2vLvrEP8kceTSENtjm7KHH6thvAKxVar9fGe8rgsPEX369zURLZ68b4f7Vexz7RuXsjQ69YDt";
     page.evaluate(function() {
         $("#bip49-tab a").click();
         $(".phrase").val("abandon abandon ability").trigger("input");
@@ -4051,7 +4111,7 @@ page.open(url, function(status) {
 function() {
 page.open(url, function(status) {
     // set the phrase
-    var expected = "xprv9y3uhgQbfQZbj3o98nfgLDwGGuCJjUn7GKArSAZXjKgMjSdYHjQmTyf78s22g6jsGrxXvHB6HJeFyvFSPkuYZajeTGMZVXV6aNLWw2fagCn";
+    var expected = "yprvAHtB1M5Wp675aLzFy9TJYK2mSsLkg6mcBRh5DZTR7L4EnYSmYPaL63KFA4ycg1PngW5LfkmejxzosCs17TKZMpRFKc3z5SJar6QAKaFcaZL";
     page.evaluate(function() {
         $("#bip49-tab a").click();
         $(".phrase").val("abandon abandon ability");
@@ -4077,7 +4137,7 @@ page.open(url, function(status) {
 function() {
 page.open(url, function(status) {
     // set the phrase
-    var expected = "xpub6C3G7BwVVn7twXscEpCghMszpw2o8wVxdY6TEYy9HfDLcExgqGj21myazAiq6HSmW2F1cBiFqJa3D1cqcDpSh8pbZF5x4iqpd4PyJvd3gjB";
+    var expected = "ypub6WsXQrcQeTfNnq4j5AzJuSyVzuBF5ZVTYecg1ws2ffbDfLmv5vtadqdj1NgR6C6gufMpMfJpHxvb6JEQKvETVNWCRanNedfJtnTchZiJtsL";
     page.evaluate(function() {
         $("#bip49-tab a").click();
         $(".phrase").val("abandon abandon ability");
@@ -4306,6 +4366,75 @@ page.open(url, function(status) {
 });
 },
 
+// github issue 99
+// https://github.com/iancoleman/bip39/issues/99#issuecomment-327094159
+// "warn me emphatically when they have detected invalid input" to the entropy field
+// A warning is shown when entropy is filtered and discarded
+function() {
+page.open(url, function(status) {
+    // use entropy
+    page.evaluate(function() {
+        $(".use-entropy").prop("checked", true).trigger("change");
+        $(".entropy").val("00000000 00000000 00000000 00000000").trigger("input");
+    });
+    // check the filter warning does not show
+    waitForGenerate(function() {
+        var warningIsHidden = page.evaluate(function() {
+            return $(".entropy-container .filter-warning").hasClass("hidden");
+        });
+        if (!warningIsHidden) {
+            console.log("Entropy filter warning is showing when it should not");
+            fail();
+        }
+        page.evaluate(function() {
+            $(".entropy").val("10000000 zxcvbn 00000000 00000000 00000000").trigger("input");
+        });
+        // check the filter warning shows
+        waitForEntropyFeedback(function() {
+            var warningIsHidden = page.evaluate(function() {
+                return $(".entropy-container .filter-warning").hasClass("hidden");
+            });
+            if (warningIsHidden) {
+                console.log("Entropy filter warning is not showing when it should");
+                fail();
+            }
+            next();
+        });
+    });
+});
+},
+
+// Bitcoin Cash address can be set to use bitpay format
+function() {
+page.open(url, function(status) {
+    // set the phrase and coin and address format
+    var expected = "CZnpA9HPmvhuhLLPWJP8rNDpLUYXy1LXFk";
+    page.evaluate(function() {
+        $(".use-bitpay-addresses").prop("checked", true);
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option").filter(function() {
+            return $(this).html() == "BCH - Bitcoin Cash";
+        }).prop("selected", true);
+        $(".network").trigger("change");
+    });
+    // check the address is generated correctly
+    waitForGenerate(function() {
+        var actual = page.evaluate(function() {
+            return $(".address:first").text();
+        });
+        if (actual != expected) {
+            console.log("Bitcoin Cash address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        next();
+    });
+});
+},
+
 // If you wish to add more tests, do so here...
 
 // Here is a blank test template