]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - tests/spec/tests.js
Increase allowed rendering time tests
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / tests / spec / tests.js
index 2b28d739eb354beaa2e5b20ab3897097e9e10445..913ec3392a2629afe91a621fc5a8881ef0ec06b2 100644 (file)
@@ -30,7 +30,7 @@ var until = webdriver.until;
 var newDriver = null;
 var driver = null;
 // Delays in ms
-var generateDelay = 1000;
+var generateDelay = 1500;
 var feedbackDelay = 500;
 var entropyFeedbackDelay = 500;
 
@@ -492,6 +492,13 @@ it('Allows selection of game', function(done) {
     };
     testNetwork(done, params);
 });
+it('Allows selection of komodo', function(done) {
+    var params = {
+        selectText: "KMD - Komodo",
+        firstAddress: "RMPPzJwAjPVZZAwJvXivHJGGjdCx6WBD2t",
+    };
+    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",
@@ -2643,4 +2657,222 @@ it('Can generate BIP141 addresses with P2WPKH semanitcs', function(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();
+            });
+    });
+});
+
+it('Shows the derivation path for bip84 tab', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('#bip84 .path'))
+            .getAttribute("value")
+            .then(function(path) {
+                expect(path).toBe("m/84'/0'/0'/0");
+                done();
+            })
+    });
+});
+
+it('Shows the extended private key for bip84 tab', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.extended-priv-key'))
+            .getAttribute("value")
+            .then(function(path) {
+                expect(path).toBe("zprvAev3RKrZ3QVKiUFCfdeMRen1BPDJgdNt1XpxiDy8acSs4kkAGTCvq7HeRYRNNpo8EtEjCFQBWavJwtCUR29y4TUCH4X5RXMcyq48uN8y9BP");
+                done();
+            })
+    });
+});
+
+it('Shows the extended public key for bip84 tab', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.extended-pub-key'))
+            .getAttribute("value")
+            .then(function(path) {
+                expect(path).toBe("zpub6suPpqPSsn3cvxKfmfBMnnijjR3o666jNkkZWcNk8wyqwZ5JozXBNuc8Gs7DB3uLwTDvGVTspVEAUQcEjKF3pZHgywVbubdTqbXTUg7usyx");
+                done();
+            })
+    });
+});
+
+it('Changes the address list if bip84 account is changed', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('#bip84 .account'))
+        .sendKeys('1');
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        getFirstAddress(function(address) {
+            expect(address).toBe("bc1qp7vv669t2fy965jdzvqwrraana89ctd5ewc662");
+            done();
+        });
+    });
+});
+
+it('Changes the address list if bip84 change is changed', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('#bip84 .change'))
+        .sendKeys('1');
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        getFirstAddress(function(address) {
+            expect(address).toBe("bc1qr39vj6rh06ff05m53uxq8uazehwhccswylhrs2");
+            done();
+        });
+    });
+});
+
+it('Passes the official BIP84 test spec for rootpriv', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css(".root-key"))
+        .getAttribute("value")
+        .then(function(rootKey) {
+            expect(rootKey).toBe("zprvAWgYBBk7JR8Gjrh4UJQ2uJdG1r3WNRRfURiABBE3RvMXYSrRJL62XuezvGdPvG6GFBZduosCc1YP5wixPox7zhZLfiUm8aunE96BBa4Kei5");
+            done();
+        })
+    });
+});
+
+it('Passes the official BIP84 test spec for account 0 xprv', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css("#bip84 .account-xprv"))
+        .getAttribute("value")
+        .then(function(rootKey) {
+            expect(rootKey).toBe("zprvAdG4iTXWBoARxkkzNpNh8r6Qag3irQB8PzEMkAFeTRXxHpbF9z4QgEvBRmfvqWvGp42t42nvgGpNgYSJA9iefm1yYNZKEm7z6qUWCroSQnE");
+            done();
+        })
+    });
+});
+
+it('Passes the official BIP84 test spec for account 0 xpub', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css("#bip84 .account-xpub"))
+        .getAttribute("value")
+        .then(function(rootKey) {
+            expect(rootKey).toBe("zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs");
+            done();
+        })
+    });
+});
+
+it('Passes the official BIP84 test spec for account 0 first address', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    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("bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu");
+            done();
+        });
+    });
+});
+
+it('Passes the official BIP84 test spec for account 0 first change address', function(done) {
+    driver.findElement(By.css('#bip84-tab a'))
+        .click()
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
+    driver.findElement(By.css('#bip84 .change'))
+        .sendKeys('1');
+    driver.sleep(generateDelay).then(function() {
+        getFirstAddress(function(address) {
+            expect(address).toBe("bc1q8c6fshw2dlwun7ekn9qwf37cu2rn755upcp6el");
+            done();
+        });
+    });
+});
+
+it('Can display the table as csv', function(done) {
+    var headings = "path,address,public key,private key";
+    var row1 = "m/44'/0'/0'/0/0,1Di3Vp7tBWtyQaDABLAjfWtF6V7hYKJtug,033f5aed5f6cfbafaf223188095b5980814897295f723815fea5d3f4b648d0d0b3,L26cVSpWFkJ6aQkPkKmTzLqTdLJ923e6CzrVh9cmx21QHsoUmrEE";
+    var row20 = "m/44'/0'/0'/0/19,1KhBy28XLAciXnnRvm71PvQJaETyrxGV55,02b4b3e396434d8cdd20c03ac4aaa07387784d5d867b75987f516f5705ee68cb3a,L4GrDrjReMsCAu5DkLXn79jSb95qR7Zfx7eshybCQZ1qL32MXJab";
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('abandon abandon ability');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css('.csv'))
+            .getAttribute("value")
+            .then(function(csv) {
+                expect(csv).toContain(headings);
+                expect(csv).toContain(row1);
+                expect(csv).toContain(row20);
+                done();
+            });
+    });
+});
+
+it('LeftPads ethereum keys that are less than 32 bytes', function(done) {
+    // see https://github.com/iancoleman/bip39/issues/155
+    selectNetwork("ETH - Ethereum");
+    driver.findElement(By.css('#bip32-tab a'))
+        .click()
+    driver.findElement(By.css('#bip32-path'))
+        .clear();
+    driver.findElement(By.css('#bip32-path'))
+        .sendKeys("m/44'/60'/0'");
+    driver.findElement(By.css('.phrase'))
+        .sendKeys('scout sort custom elite radar rare vivid thing trophy gesture cover snake change narrow kite list nation sustain buffalo erode open balance system young');
+    driver.sleep(generateDelay).then(function() {
+        driver.findElement(By.css(".address"))
+            .getText()
+            .then(function(address) {
+                expect(address).toBe("0x8943E785B4a5714FC87a3aFAad1eB1FeB602B118");
+                done();
+            });
+        //getFirstAddress(function(address) {
+        //    expect(address).toBe("0x8943E785B4a5714FC87a3aFAad1eB1FeB602B118");
+        //    done();
+        //});
+    });
+});
+
 });