X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=blobdiff_plain;f=tests%2Fspec%2Ftests.js;h=62647d2663640b7bfae798ed5d3358630dc755db;hp=bbc1f570207a75c8aefdf71fea80ff3b059b203f;hb=9e04576e2f78cd76cf0a3300e3ff14726b19fcf4;hpb=f7e9fdf002e7355a122a86a8407b470b56bf3f59 diff --git a/tests/spec/tests.js b/tests/spec/tests.js index bbc1f57..62647d2 100644 --- a/tests/spec/tests.js +++ b/tests/spec/tests.js @@ -412,6 +412,13 @@ it('Allows selection of bitcoin testnet', function(done) { }; testNetwork(done, params); }); +it('Allows selection of bitcoin regtest', function(done) { + var params = { + selectText: "BTC - Bitcoin RegTest", + firstAddress: "mucaU5iiDaJDb69BHLeDv8JFfGiyg2nJKi", + }; + testNetwork(done, params); +}); it('Allows selection of litecoin', function(done) { var params = { selectText: "LTC - Litecoin", @@ -588,7 +595,6 @@ it('Allows selection of ethereum', function(done) { firstAddress: "0xe5815d5902Ad612d49283DEdEc02100Bd44C2772", }; testNetwork(done, params); - // TODO test private key and public key }); it('Allows selection of slimcoin', function(done) { var params = { @@ -1629,6 +1635,13 @@ it('Allows selection of Thought', function(done) { }; testNetwork(done, params); }); +it('Allows selection of EtherCore', function(done) { + var params = { + selectText: "ERE - EtherCore", + firstAddress: "0xDeeAD0297F06dfe6c7Ad0C1D0CF5B06D6047bEEe", + }; + testNetwork(done, params); +}); // BIP39 seed is set from phrase it('Sets the bip39 seed from the prhase', function(done) { @@ -2002,11 +2015,7 @@ it('Allows the user to set the BIP32 root key', function(done) { }); // Setting BIP32 root key clears the existing phrase, passphrase and seed -// TODO this doesn't work in selenium with chrome it('Confirms the existing phrase should be cleared', function(done) { - if (browser == "chrome") { - pending("Selenium + Chrome headless bug for alert, see https://stackoverflow.com/q/45242264"); - } driver.findElement(By.css('.phrase')) .sendKeys('A non-blank but invalid value'); driver.findElement(By.css('.root-key')) @@ -2020,11 +2029,7 @@ it('Confirms the existing phrase should be cleared', function(done) { }); // Clearing of phrase, passphrase and seed can be cancelled by user -// TODO this doesn't work in selenium with chrome it('Allows the clearing of the phrase to be cancelled', function(done) { - if (browser == "chrome") { - pending("Selenium + Chrome headless bug for alert, see https://stackoverflow.com/q/45242264"); - } driver.findElement(By.css('.phrase')) .sendKeys('abandon abandon ability'); driver.sleep(generateDelay).then(function() { @@ -4243,7 +4248,7 @@ it('Converts mnemonics into raw entropy', function(done) { driver.findElement(By.css('.entropy')) .getAttribute("value") .then(function(entropy) { - expect(entropy).toBe("00000000000000000000000000000001"); + expect(entropy).toBe("00000001"); driver.findElement(By.css('.phrase')) .getAttribute("value") .then(function(phrase) { @@ -4285,4 +4290,77 @@ it('Shows split prase cards', function(done) { }); }); +// It allows manually specifying the entropy type +it('Allows entropy type to be manually selected', function(done) { + driver.findElement(By.css('.use-entropy')) + .click(); + // use decimal entropy + driver.findElement(By.css('.entropy')) + .sendKeys("91"); + // manually change to binary entropy + driver.executeScript(function() { + $(".entropy-container input[value='binary']").click(); + }); + driver.sleep(entropyFeedbackDelay).then(function() { + driver.findElement(By.css('.entropy-container')) + .getText() + .then(function(text) { + // overide 91 to be just 1 + var key = "Filtered Entropy"; + var value = "1"; + var reText = key + "\\s+" + value; + var re = new RegExp(reText); + expect(text).toMatch(re); + // overide automatic decimal to binary + var key = "Entropy Type"; + var value = "binary"; + var reText = key + "\\s+" + value; + var re = new RegExp(reText); + expect(text).toMatch(re); + // overide 2 events to 1 + var key = "Event Count"; + var value = 1; + var reText = key + "\\s+" + value; + var re = new RegExp(reText); + expect(text).toMatch(re); + // overide log2(10)*2 bits to 1 bit + var key = "Total Bits"; + var value = 1; + var reText = key + "\\s+" + value; + var re = new RegExp(reText); + expect(text).toMatch(re); + done(); + }); + }); +}); + +// https://github.com/iancoleman/bip39/issues/388 +// Make field for bip39 seed editable +it('Generates addresses when seed is set', function(done) { + driver.findElement(By.css('.seed')) + .sendKeys("20da140d3dd1df8713cefcc4d54ce0e445b4151027a1ab567b832f6da5fcc5afc1c3a3f199ab78b8e0ab4652efd7f414ac2c9a3b81bceb879a70f377aa0a58f3"); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("1Di3Vp7tBWtyQaDABLAjfWtF6V7hYKJtug"); + done(); + }); + }); +}); + +// https://github.com/iancoleman/bip39/issues/169 +it('Generates ethereum addresses from a public key', function(done) { + var pubkey = "xpub68UK3hrMEp2jLPxPASgXSiqiUsQsUWZHCeuu6NqcJLt259LMeWzwDyufXLN1QmjLeLRY5he4QfArDDLbsXiw3xN3kFcYtyDy74BY73RPhhW"; + driver.findElement(By.css('.root-key')) + .sendKeys(pubkey); + driver.findElement(By.css('#bip32-tab a')) + .click() + selectNetwork('ETH - Ethereum'); + driver.sleep(generateDelay).then(function() { + getFirstAddress(function(address) { + expect(address).toBe("0x1Bd54748903438C7E386b4a3fCbe16237A316a98"); + done(); + }); + }); +}); + });