]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests.js
Ethereum tests
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests.js
index a3c3f57956e3e810498fb22baa51a57a65687557..6a7a960b1a027cfe7be1c9d176497e618c584647 100644 (file)
--- a/tests.js
+++ b/tests.js
@@ -607,6 +607,66 @@ page.open(url, function(status) {
 });
 },
 
+// Network can be set to ethereum
+function() {
+
+page.open(url, function(status) {
+
+    // set the phrase and coin
+    page.evaluate(function() {
+        $(".phrase").val("abandon abandon ability");
+        $(".phrase").trigger("input");
+        $(".network option[selected]").removeAttr("selected");
+        $(".network option[value=13]").prop("selected", true);
+        $(".network").trigger("change");
+    });
+    waitForGenerate(function() {
+        // check the address is generated correctly
+        // this value comes from
+        // https://www.myetherwallet.com/#view-wallet-info
+        // I do not understand the capitalization scheme for this hex encoding
+        var expected = "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772";
+        var actual = page.evaluate(function() {
+            return $(".address:first").text();
+        });
+        if (actual != expected.toLowerCase()) {
+            console.log("Ethereum address is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        // check the private key is correct
+        // this private key can be imported into
+        // https://www.myetherwallet.com/#view-wallet-info
+        // and it should correlate to the address above
+        var expected = "8f253078b73d7498302bb78c171b23ce7a8fb511987d2b2702b731638a4a15e7";
+        var actual = page.evaluate(function() {
+            return $(".privkey:first").text();
+        });
+        if (actual != expected) {
+            console.log("Ethereum privkey is incorrect");
+            console.log("Expected: " + expected);
+            console.log("Actual: " + actual);
+            fail();
+        }
+        // check the public key is correct
+        // TODO
+        // don't have any third-party source to generate the expected value
+        //var expected = "?";
+        //var actual = page.evaluate(function() {
+        //    return $(".pubkey:first").text();
+        //});
+        //if (actual != expected) {
+        //    console.log("Ethereum privkey is incorrect");
+        //    console.log("Expected: " + expected);
+        //    console.log("Actual: " + actual);
+        //    fail();
+        //}
+        next();
+    });
+});
+},
+
 // BIP39 seed is set from phrase
 function() {
 page.open(url, function(status) {
@@ -2268,7 +2328,6 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
-        $(".mnemonic-length").val("raw");
         $(".entropy").val("00000000 00000000 00000000 00000000").trigger("input");
     });
     // check the mnemonic is set and address is correct
@@ -2804,7 +2863,6 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
-        $(".mnemonic-length").val("raw");
     });
     var nextTest = function runNextTest(i) {
         function getFeedbackError(expected, actual) {
@@ -2886,7 +2944,6 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
-        $(".mnemonic-length").val("raw");
         var entropy  = "00000000 00000000 00000000 00000000";
             entropy += "11111111 11111111 11111111 1111"; // Missing last byte
         $(".entropy").val(entropy).trigger("input");
@@ -2913,7 +2970,6 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
-        $(".mnemonic-length").val("raw");
         var entropy  = "";
         // Generate a very long entropy string
         for (var i=0; i<33; i++) {
@@ -2947,7 +3003,6 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
-        $(".mnemonic-length").val("raw");
         var entropy  = "543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543210543";
         $(".entropy").val(entropy).trigger("input");
     });
@@ -3039,7 +3094,6 @@ 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
@@ -3345,6 +3399,7 @@ page.open(url, function(status) {
     // use entropy
     page.evaluate(function() {
         $(".use-entropy").prop("checked", true).trigger("change");
+        $(".mnemonic-length").val("15");
         $(".entropy").val("1111").trigger("input");
     });
     waitForGenerate(function() {