]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Add test for Pull Request 370 THT Thought network
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index 6c9809104860ba7831eb44588d57855ab8f0ad8e..660249169ccda481913a3df4ffc11c2fad2c5223 100644 (file)
@@ -73,16 +73,23 @@ else if (browser == "chrome") {
 
 // Helper functions
 
-function testNetwork(done, params) {
+function testNetwork(done, params, comparePub = false) {
     var phrase = params.phrase || 'abandon abandon ability';
     driver.findElement(By.css('.phrase'))
         .sendKeys(phrase);
     selectNetwork(params.selectText);
     driver.sleep(generateDelay).then(function() {
-        getFirstAddress(function(address) {
-            expect(address).toBe(params.firstAddress);
-            done();
-        });
+        if (!comparePub) {
+            getFirstAddress(function(address) {
+                expect(address).toBe(params.firstAddress);
+                done();
+            });
+        } else {
+            getFirstPublicKey(function(pubkey) {
+                expect(pubkey).toBe(params.firstPubKey);
+                done();
+            });
+        }
     });
 }
 
@@ -98,6 +105,10 @@ function getFirstAddress(handler) {
     getFirstRowValue(handler, ".address");
 }
 
+function getFirstPublicKey(handler) {
+    getFirstRowValue(handler, ".pubkey");
+}
+
 function getFirstPath(handler) {
     getFirstRowValue(handler, ".index");
 }
@@ -408,6 +419,13 @@ it('Allows selection of litecoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of litecoin testnet', function(done) {
+    var params = {
+        selectText: "LTCt - Litecoin Testnet",
+        firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of ripple', function(done) {
     var params = {
         selectText: "XRP - Ripple",
@@ -416,6 +434,14 @@ it('Allows selection of ripple', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of casinocoin', function(done) {
+    var params = {
+        selectText: "CSC - CasinoCoin",
+        firstAddress: "c3P5EUb27Pzk9dcGt4s7zQDQj4sC6Y81mT",
+        phrase: "ill clump only blind unit burden thing track silver cloth review awake useful craft whale all satisfy else trophy sunset walk vanish hope valve",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of dogecoin', function(done) {
     var params = {
         selectText: "DOGE - Dogecoin",
@@ -423,6 +449,13 @@ it('Allows selection of dogecoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of dogecoin testnet', function(done) {
+    var params = {
+        selectText: "DOGEt - Dogecoin Testnet",
+        firstAddress: "niHnSJKHdwDyDxRMLBJrtNqpvHEsAFWe6B",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of denarius', function(done) {
     var params = {
         selectText: "DNR - Denarius",
@@ -475,7 +508,7 @@ it('Allows selection of clam', function(done) {
 it('Allows selection of crown', function(done) {
     var params = {
         selectText: "CRW - Crown (Legacy)",
-        firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5", 
+        firstAddress: "18pWSwSUAQdiwMHUfFZB1fM2xue9X1FqE5",
     };
     testNetwork(done, params);
 });
@@ -535,6 +568,13 @@ it('Allows selection of lkrcoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of bolivarcoin', function(done) {
+    var params = {
+        selectText: "BOLI - Bolivarcoin",
+        firstAddress: "bbKzCAUR7hZ3nqfffy7VgrSz8LmAP3S5mK",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of peercoin', function(done) {
     var params = {
         selectText: "PPC - Peercoin",
@@ -545,7 +585,7 @@ it('Allows selection of peercoin', function(done) {
 it('Allows selection of ethereum', function(done) {
     var params = {
         selectText: "ETH - Ethereum",
-        firstAddress: "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772",
+        firstAddress: "0x20Bb0CD7dd4a255f558bCD1A34D21E27061Ac2CF",
     };
     testNetwork(done, params);
     // TODO test private key and public key
@@ -608,6 +648,20 @@ it('Allows selection of maza', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of FIX', function(done) {
+    var params = {
+        selectText: "FIX - FIX",
+        firstAddress: "FS5MEU8fs5dUvsaSCSusV8RQtC8j2h3JEh",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of FIX testnet', function(done) {
+    var params = {
+        selectText: "FIX - FIX Testnet",
+        firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of fujicoin', function(done) {
     var params = {
         selectText: "FJC - Fujicoin",
@@ -678,6 +732,13 @@ it('Allows selection of Asiacoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Aryacoin', function(done) {
+    var params = {
+        selectText: "ARYA - Aryacoin",
+        firstAddress: "Abr6gX25KaU9BpwD34UfsL3A4n89NvYYSf",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Auroracoin', function(done) {
     var params = {
         selectText: "AUR - Auroracoin",
@@ -720,6 +781,13 @@ it('Allows selection of Bitcoin Private', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Bitcoin SV', function(done) {
+    var params = {
+        selectText: "BSV - BitcoinSV",
+        firstAddress: "1N4mgtE5yxifch9jWs7Sds6oVqxdy2t576",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Bitcoinz', function(done) {
     var params = {
         selectText: "BTCZ - Bitcoinz",
@@ -783,6 +851,13 @@ it('Allows selection of Compcoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of CPUchain', function(done) {
+    var params = {
+        selectText: "CPU - CPUchain",
+        firstAddress: "CWSpLpW7jS4mBHJnkz3mmL5s3yQMg93zK8",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Crave', function(done) {
     var params = {
         selectText: "CRAVE - Crave",
@@ -846,6 +921,13 @@ it('Allows selection of Einsteinium', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of EOSIO', function(done) {
+    var params = {
+        selectText: "EOS - EOSIO",
+        firstPubKey: "EOS692VJTBK3Rmw93onNnpnZ8ZtmE9PdxjDStArvbyzoe11QUTNoy",
+    };
+    testNetwork(done, params, true);
+});
 it('Allows selection of Europecoin', function(done) {
     var params = {
         selectText: "ERC - Europecoin",
@@ -1070,6 +1152,13 @@ it('Allows selection of Omnicore', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of DeepOnion', function(done) {
+    var params = {
+        selectText: "ONION - DeepOnion",
+        firstAddress: "DYREY7XCFXVqJ3x5UuN43k2JwD2s1kif48",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Pesobit', function(done) {
     var params = {
         selectText: "PSB - Pesobit",
@@ -1105,6 +1194,13 @@ it('Allows selection of Putincoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of Rapids', function(done) {
+    var params = {
+        selectText: "RPD - Rapids",
+        firstAddress: "Ri8XxUdZaXS5LqxmFJcFEjFinkaMbmhSUp",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Ravencoin', function(done) {
     var params = {
         selectText: "RVN - Ravencoin",
@@ -1196,6 +1292,20 @@ it('Allows selection of Toa', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of TWINS', function(done) {
+    var params = {
+        selectText: "TWINS - TWINS",
+        firstAddress: "WPpJnfLLubNmF7HLNxg8d8zH5haxn4wri8",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of TWINS testnet', function(done) {
+    var params = {
+        selectText: "TWINS - TWINS Testnet",
+        firstAddress: "XpnU1HHdNG5YxvG9Rez4wjmidchxqnZaNa",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Ultimatesecurecash', function(done) {
     var params = {
         selectText: "USC - Ultimatesecurecash",
@@ -1245,6 +1355,13 @@ it('Allows selection of Vpncoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of VeChain', function(done) {
+    var params = {
+        selectText: "VET - VeChain",
+        firstAddress: "0x993680FDF7f4a6AbcD4b9Db23b92Bc6B08AF9e48",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of Whitecoin', function(done) {
     var params = {
         selectText: "XWC - Whitecoin",
@@ -1280,9 +1397,9 @@ it('Allows selection of Zclassic', function(done) {
     };
     testNetwork(done, params);
 });
-it('Allows selection of Zencash', function(done) {
+it('Allows selection of Horizen', function(done) {
     var params = {
-        selectText: "ZEN - Zencash",
+        selectText: "ZEN - Horizen",
         firstAddress: "znWh9XASyW2dZq5tck84wFjiwuqVysi7q3p",
     };
     testNetwork(done, params);
@@ -1297,59 +1414,74 @@ it('Allows selection of Energi', function(done) {
 it('Allows selection of Ethereum Classic', function(done) {
     var params = {
         selectText: "ETC - Ethereum Classic",
-        firstAddress: "0x3c05e5556693808367afB62eF3b63e35d6eD249A",
+        firstAddress: "0x8Ad2bc632591bb442CfBEA19AC919ef16480B162",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Pirl', function(done) {
     var params = {
         selectText: "PIRL - Pirl",
-        firstAddress: "0xe77FC0723dA122B5025CA79193c28563eB47e776",
+        firstAddress: "0xc85E5dc7287F759394E53e5ba62510a35cE0DcFF",
     };
     testNetwork(done, params);
 });
 it('Allows selection of MIX', function(done) {
     var params = {
         selectText: "MIX - MIX",
-        firstAddress: "0x98BC5e63aeb6A4e82d72850d20710F07E29A29F1",
+        firstAddress: "0x325C6118DD0f788B50998591B2a7A35FB0a4a402",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Monkey Project', function(done) {
+    var params = {
+        selectText: "MONK - Monkey Project",
+        firstAddress: "MnLrcnnUzKnf7TzufjRe5DLZqQJz18oYyu",
     };
     testNetwork(done, params);
 });
+
 it('Allows selection of Musicoin', function(done) {
     var params = {
         selectText: "MUSIC - Musicoin",
-        firstAddress: "0xDc060e4A0b0313ea83Cf6B3A39B9db2D29004897",
+        firstAddress: "0x600c481Fa6100531357dD49B3aa042A8F56F6AB5",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Poa', function(done) {
     var params = {
         selectText: "POA - Poa",
-        firstAddress: "0x53aF28d754e106210C3d0467Dd581eaf7e3C5e60",
+        firstAddress: "0x6F0d9bA6fda8EAA31f24A9c9fef3321F9851329D",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Expanse', function(done) {
     var params = {
         selectText: "EXP - Expanse",
-        firstAddress: "0xf57FeAbf26582b6E3E666559d3B1Cc6fB2b2c5F6",
+        firstAddress: "0xEc6e7f6782a29353c32A9A104E849605a01546e4",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Callisto', function(done) {
     var params = {
         selectText: "CLO - Callisto",
-        firstAddress: "0x4f9364F7420B317266C51Dc8eB979717D4dE3f4E",
+        firstAddress: "0x57bE971d6E61315fB957a2BFC9202fbE31f49e89",
     };
     testNetwork(done, params);
 });
 it('Allows selection of HUSH', function(done) {
     var params = {
-        selectText: "HUSH - Hush",
+        selectText: "HUSH - Hush (Legacy)",
         firstAddress: "t1g6rLXUnJaiJuu4q4zmJjoa9Gk4fwKpiuA",
     };
     testNetwork(done, params);
 });
+it('Allows selection of HUSH3', function(done) {
+    var params = {
+        selectText: "HUSH - Hush3",
+        firstAddress: "RXWSQhwvw5jHPGP8bjwJhWoRnMLBnuPDKD",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of ExchangeCoin', function(done) {
     var params = {
         selectText: "EXCC - ExchangeCoin",
@@ -1430,14 +1562,70 @@ it('Allows selection of BlockStamp', function(done) {
 it('Allows selection of DEXON', function(done) {
     var params = {
         selectText: "DXN - DEXON",
-        firstAddress: "0x136a58788033E028CCd740FbDec6734358DB56Ec",
+        firstAddress: "0x7c444Dd705c6Ecd6a4F926aFd38bC96d6BdcC3D5",
     };
     testNetwork(done, params);
 });
 it('Allows selection of Ellaism', function(done) {
     var params = {
         selectText: "ELLA - Ellaism",
-        firstAddress: "0xa8B0BeA09eeBc41062308546a01d6E544277e2Ca",
+        firstAddress: "0x9DA7b90b0c0Cf7a2EbbE1A20f9d9A663451a2F8D",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Ethersocial Network', function(done) {
+    var params = {
+        selectText: "ESN - Ethersocial Network",
+        firstAddress: "0x0685439123f9a1767Bad9b99258d72733783f64C",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Stellar', function(done) {
+    var params = {
+        selectText: "XLM - Stellar",
+        firstAddress: "GCUK3NYYUXA2QGN6KU5RR36WAKN3Y5EANZV65XNAWN4XM4CHQ3G4DMO2",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Wagerr', function(done) {
+    var params = {
+        selectText: "WGR - Wagerr",
+        firstAddress: "WYiVgQU39VcQxcnacoCiaZHZZLjDCJoS95",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Groestlcoin', function(done) {
+    var params = {
+        selectText: "GRS - Groestlcoin",
+        firstAddress: "FZycsFvZ1eH1hbtyjBpAgJSukVw1bN6PBN",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Groestlcoin Testnet', function(done) {
+    var params = {
+        selectText: "GRS - Groestlcoin Testnet",
+        firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiygRPne9",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Elastos', function(done) {
+    var params = {
+        selectText: "ELA - Elastos",
+        firstAddress: "EMccDcsn3SwPDcfeQMf3w7utqi8ioWYtkg",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Energyweb', function(done) {
+    var params = {
+        selectText: "EWT - EnergyWeb",
+        firstAddress: "0x190aCfa6dA6Ff2D0a28Fbd0e02Aec493bCa5D7f7",
+    };
+    testNetwork(done, params);
+});
+it('Allows selection of Thought', function(done) {
+    var params = {
+        selectText: "THT - Thought",
+        firstAddress: "4B1Bh9GibDarFQrhtYU8krpc7WSjgGfYvo",
     };
     testNetwork(done, params);
 });
@@ -2021,6 +2209,7 @@ it('Ignores excess whitespace in the mnemonic', function(done) {
 
 // Github Issue 23: Part 1: Use correct derivation path when changing tabs
 // https://github.com/iancoleman/bip39/issues/23
+// This test was failing for default timeout of 5000ms so changed it to +10s
 it('Uses the correct derivation path when changing tabs', function(done) {
     // 1) and 2) set the phrase
     driver.findElement(By.css('.phrase'))
@@ -2045,7 +2234,7 @@ it('Uses the correct derivation path when changing tabs', function(done) {
             });
         });
     });
-});
+}, generateDelay + 10000);
 
 // Github Issue 23 Part 2: Coin selection in derivation path
 // https://github.com/iancoleman/bip39/issues/23#issuecomment-238011920
@@ -3903,6 +4092,27 @@ it('Shows litecoin BIP49 addresses', function(done) {
     });
 });
 
+it('Shows Groestlcoin BIP49 addresses', function(done) {
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    selectNetwork("GRS - Groestlcoin");
+    driver.findElement(By.css('#bip49-tab a'))
+        .click()
+    // bip49 addresses are shown
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('#bip49 .available'))
+            .getAttribute("class")
+            .then(function(classes) {
+                expect(classes).not.toContain("hidden");
+                // check first address
+                getFirstAddress(function(address) {
+                    expect(address).toBe("3HXSCZwCypLyixMsF4Z1sN49noJtrm8gnX");
+                    done();
+                });
+            });
+    });
+});
+
 it('Can use root keys to generate segwit table rows', function(done) {
     // segwit uses ypub / zpub instead of xpub but the root key should still
     // be valid regardless of the encoding used to import that key.
@@ -3922,4 +4132,57 @@ it('Can use root keys to generate segwit table rows', function(done) {
     });
 });
 
+// Pull Request 271
+// Allow converting mnemonic back to raw entropy value
+it('Converts mnemonics into raw entropy', function(done) {
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon about');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.use-entropy'))
+            .click();
+        driver.findElement(By.css('.entropy'))
+            .getAttribute("value")
+            .then(function(entropy) {
+                expect(entropy).toBe("00000000000000000000000000000001");
+                driver.findElement(By.css('.phrase'))
+                    .getAttribute("value")
+                    .then(function(phrase) {
+                        expect(phrase).toBe("abandon abandon about");
+                        done();
+                    });
+            });
+    });
+});
+
+// Pull Request 279
+// Added Split Phrase Card Output
+it('Shows split prase cards', function(done) {
+    var originalPhrase = "ugly charge strong giant once anchor capable october thumb inject dwarf legal alley mixture shoot";
+    var originalWords = originalPhrase.split(' ');
+    driver.findElement(By.css('.phrase'))
+        .sendKeys(originalPhrase);
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.phraseSplit'))
+            .getAttribute("value")
+            .then(function(cardsStr) {
+                var cards = cardsStr.split("\n");
+                expect(cards.length).toBe(3);
+                // test all 2-of-3 combos can be used to form full phrase
+                var combos = [[0,1],[0,2],[1,2]];
+                for (var i=0; i<combos.length; i++) {
+                    var combo = combos[i];
+                    var a = combo[0];
+                    var b = combo[1];
+                    var phrase = cards[a] + " " + cards[b];
+                    // check all original words are present
+                    for (var j=0; j<originalWords.length; j++) {
+                        var originalWord = originalWords[j];
+                        expect(phrase).toContain(originalWord);
+                    }
+                }
+                done();
+            });
+    });
+});
+
 });