]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Add test for Onixcoin
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index f3ffbbfcdb3d0bdd2e6385c80d59a7d2bc7c4739..6c8da325582f64faaf0d5542a11fc92f76e356cb 100644 (file)
@@ -492,6 +492,13 @@ it('Allows selection of game', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of game', function(done) {
+    var params = {
+        selectText: "KMD - Komodo",
+        firstAddress: "RJL777dmaB3PYqHEJGMJKWWkLPdu1ypGi4",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of namecoin', function(done) {
     var params = {
         selectText: "NMC - Namecoin",
@@ -499,6 +506,13 @@ it('Allows selection of namecoin', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of onixcoin', function(done) {
+    var params = {
+        selectText: "ONX - Onixcoin",
+        firstAddress: "XGwMqddeKjT3ddgX73QokjVbCL3aK6Yxfk",
+    };
+    testNetwork(done, params);
+});
 it('Allows selection of peercoin', function(done) {
     var params = {
         selectText: "PPC - Peercoin",
@@ -2596,4 +2610,78 @@ it('Can generate more addresses from a custom index', function(done) {
     });
 });
 
+it('Can generate BIP141 addresses with P2WPKH-in-P2SH semanitcs', function(done) {
+    // Sourced from BIP49 official test specs
+    driver.findElement(By.css('#bip141-tab a'))
+        .click();
+    driver.findElement(By.css('.bip141-path'))
+        .clear();
+    driver.findElement(By.css('.bip141-path'))
+        .sendKeys("m/49'/1'/0'/0");
+    selectNetwork("BTC - Bitcoin Testnet");
+    driver.findElement(By.css(".phrase"))
+        .sendKeys("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about");
+    driver.sleep(generateDelay).then(function() {
+        getFirstAddress(function(address) {
+            expect(address).toBe("2Mww8dCYPUpKHofjgcXcBCEGmniw9CoaiD2");
+            done();
+        });
+    });
+});
+
+it('Can generate BIP141 addresses with P2WPKH semanitcs', function(done) {
+    // This result tested against bitcoinjs-lib test spec for segwit address
+    // using the first private key of this mnemonic and default path m/0
+    // https://github.com/bitcoinjs/bitcoinjs-lib/blob/9c8503cab0c6c30a95127042703bc18e8d28c76d/test/integration/addresses.js#L50
+    // so whilst not directly comparable, substituting the private key produces
+    // identical results between this tool and the bitcoinjs-lib test.
+    // Private key generated is:
+    // L3L8Nu9whawPBNLGtFqDhKut9DKKfG3CQoysupT7BimqVCZsLFNP
+    driver.findElement(By.css('#bip141-tab a'))
+        .click();
+    // Choose P2WPKH
+    driver.executeScript(function() {
+        $(".bip141-semantics option[selected]").removeAttr("selected");
+        $(".bip141-semantics option").filter(function(i,e) {
+            return $(e).html() == "P2WPKH";
+        }).prop("selected", true);
+        $(".bip141-semantics").trigger("change");
+    });
+    driver.findElement(By.css(".phrase"))
+        .sendKeys("abandon abandon ability");
+    driver.sleep(generateDelay).then(function() {
+        getFirstAddress(function(address) {
+            expect(address).toBe("bc1qfwu6a5a3evygrk8zvdxxvz4547lmpyx5vsfxe9");
+            done();
+        });
+    });
+});
+
+it('Shows the entropy used by the PRNG when clicking generate', function(done) {
+    driver.findElement(By.css('.generate')).click();
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.entropy'))
+            .getAttribute("value")
+            .then(function(entropy) {
+                expect(entropy).not.toBe("");
+                done();
+            });
+    });
+});
+
+it('Shows the index of each word in the mnemonic', function(done) {
+    driver.findElement(By.css('.phrase'))
+        .sendKeys("abandon abandon ability");
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.use-entropy'))
+            .click();
+        driver.findElement(By.css('.word-indexes'))
+            .getText()
+            .then(function(indexes) {
+                expect(indexes).toBe("0, 0, 1");
+                done();
+            });
+    });
+});
+
 });