+// Blank entropy does not generate mnemonic or addresses
+function() {
+page.open(url, function(status) {
+ // use entropy
+ page.evaluate(function() {
+ $(".use-entropy").prop("checked", true).trigger("change");
+ $(".entropy").val("").trigger("input");
+ });
+ waitForFeedback(function() {
+ // check there is no mnemonic
+ var phrase = page.evaluate(function() {
+ return $(".phrase").val();
+ });
+ if (phrase != "") {
+ console.log("Blank entropy does not result in blank mnemonic");
+ console.log("Got: " + phrase);
+ fail();
+ }
+ // check there are no addresses displayed
+ var addresses = page.evaluate(function() {
+ return $(".address").length;
+ });
+ if (addresses != 0) {
+ console.log("Blank entropy does not result in zero addresses");
+ fail();
+ }
+ // Check the feedback says 'blank entropy'
+ var feedback = page.evaluate(function() {
+ return $(".feedback").text();
+ });
+ if (feedback != "Blank entropy") {
+ console.log("Blank entropy does not show feedback message");
+ fail();
+ }
+ next();
+ });
+});
+},
+
+// Mnemonic length can be selected even for weak entropy
+function() {
+page.open(url, function(status) {
+ // use entropy
+ page.evaluate(function() {
+ $(".use-entropy").prop("checked", true).trigger("change");
+ $(".entropy").val("012345");
+ $(".mnemonic-length").val("18").trigger("change");
+ });
+ // check the mnemonic is the correct length
+ waitForGenerate(function() {
+ var phrase = page.evaluate(function() {
+ return $(".phrase").val();
+ });
+ var numberOfWords = phrase.split(/\s/g).length;
+ if (numberOfWords != 18) {
+ console.log("Weak entropy cannot be overridden to give 18 word mnemonic");
+ console.log(phrase);
+ fail();
+ }
+ next();
+ });
+});
+},
+
+// Github issue 33
+// https://github.com/iancoleman/bip39/issues/33
+// Final cards should contribute entropy
+function() {
+page.open(url, function(status) {
+ // use entropy
+ page.evaluate(function() {
+ $(".use-entropy").prop("checked", true).trigger("change");
+ $(".mnemonic-length").val("raw");
+ $(".entropy").val("7S 9H 9S QH 8C KS AS 7D 7C QD 4S 4D TC 2D 5S JS 3D 8S 8H 4C 3C AC 3S QC 9C JC 7H AD TD JD 6D KH 5C QS 2S 6S 6H JH KD 9D-6C TS TH 4H KC 5H 2H AH 2C 8D 3H 5D").trigger("input");
+ });
+ // get the mnemonic
+ waitForGenerate(function() {
+ var originalPhrase = page.evaluate(function() {
+ return $(".phrase").val();
+ });
+ // Set the last 12 cards to be AS
+ page.evaluate(function() {
+ $(".addresses").empty();
+ $(".entropy").val("7S 9H 9S QH 8C KS AS 7D 7C QD 4S 4D TC 2D 5S JS 3D 8S 8H 4C 3C AC 3S QC 9C JC 7H AD TD JD 6D KH 5C QS 2S 6S 6H JH KD 9D-AS AS AS AS AS AS AS AS AS AS AS AS").trigger("input");
+ });
+ // get the new mnemonic
+ waitForGenerate(function() {
+ var newPhrase = page.evaluate(function() {
+ return $(".phrase").val();
+ });
+ // check the phrase has changed
+ if (newPhrase == originalPhrase) {
+ console.log("Changing last 12 cards does not change mnemonic");
+ console.log("Original:");
+ console.log(originalPhrase);
+ console.log("New:");
+ console.log(newPhrase);
+ fail();
+ }
+ next();
+ });
+ });
+});
+},
+
+