]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests.js
Add client select
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests.js
index 4d229abe2ff56ad7152cefe9c2010ce723ceb931..a3c3f57956e3e810498fb22baa51a57a65687557 100644 (file)
--- a/tests.js
+++ b/tests.js
@@ -1562,6 +1562,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) {
@@ -3266,6 +3291,79 @@ page.open(url, function(status) {
 });
 },
 
+// Github issue 44
+// display error switching tabs while addresses are generating
+function() {
+page.open(url, function(status) {
+    // set the phrase
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability").trigger("input");
+    });
+    waitForGenerate(function() {
+        // set to generate 500 more addresses
+        // generate more addresses
+        // change tabs which should cancel the previous generating
+        page.evaluate(function() {
+            $(".rows-to-add").val("100");
+            $(".more").click();
+            $("#bip32-tab a").click();
+        });
+        // check the derivation paths are in order and of the right quantity
+        waitForGenerate(function() {
+            var paths = page.evaluate(function() {
+                return $(".index").map(function(i, e) {
+                    return $(e).text();
+                });
+            });
+            for (var i=0; i<paths.length; i++) {
+                var expected = "m/0/" + i;
+                var actual = paths[i];
+                if (actual != expected) {
+                    console.log("Path " + i + " is not in correct order");
+                    console.log("Expected: " + expected);
+                    console.log("Actual: " + actual);
+                    fail();
+                }
+            }
+            if (paths.length != 20) {
+                console.log("Generation was not cancelled by new action");
+                fail();
+            }
+            next();
+        });
+    });
+});
+},
+
+// Github issue 49
+// padding for binary should give length with multiple of 256
+// hashed entropy 1111 is length 252, so requires 4 leading zeros
+// prior to issue 49 it would only generate 2 leading zeros, ie missing 2
+function() {
+page.open(url, function(status) {
+    expected = "avocado valid quantum cross link predict excuse edit street able flame large galaxy ginger nuclear"
+    // use entropy
+    page.evaluate(function() {
+        $(".use-entropy").prop("checked", true).trigger("change");
+        $(".entropy").val("1111").trigger("input");
+    });
+    waitForGenerate(function() {
+        // get the mnemonic
+        var actual = page.evaluate(function() {
+            return $(".phrase").val();
+        });
+        // check the mnemonic is correct
+        if (actual != expected) {
+            console.log("Left padding error for entropy");
+            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