From d5241f6e51d038e4f6dae7baffd9945999f3c5cd Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 11:19:08 -0700 Subject: [PATCH 01/27] e2e:skip test token amount too precise --- package-lock.json | 22 ++++++++++++++-------- test/e2e/metamask.spec.js | 4 +++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95613cbbf..9c4cba24a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5188,7 +5188,7 @@ }, "chromedriver": { "version": "2.36.0", - "resolved": "http://registry.npmjs.org/chromedriver/-/chromedriver-2.36.0.tgz", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.36.0.tgz", "integrity": "sha512-Lq2HrigCJ4RVdIdCmchenv1rVrejNSJ7EUCQojycQo12ww3FedQx4nb+GgTdqMhjbOMTqq5+ziaiZlrEN2z1gQ==", "dev": true, "requires": { @@ -8445,12 +8445,13 @@ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.0.1.tgz", "integrity": "sha512-lxHZOQspexk3DaGj4RBbWy4C/qNOWRnxpaJzNnYD3WEmC8shcJ4tHs7Xv878rzvILfJnSFSCCiKQhng1m80oBQ==", "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#2863c40e0982acfc0b7163f0285d4c56427c7799", "ethereumjs-util": "^5.1.1" }, "dependencies": { "ethereumjs-abi": { - "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7", - "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7", + "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#2863c40e0982acfc0b7163f0285d4c56427c7799", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", "requires": { "bn.js": "^4.10.0", "ethereumjs-util": "^5.0.0" @@ -25657,7 +25658,7 @@ }, "pretty-hrtime": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, "printf": { @@ -31339,6 +31340,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, "requires": { "is-typedarray": "^1.0.0" } @@ -32352,6 +32354,7 @@ "resolved": "https://registry.npmjs.org/web3/-/web3-0.20.3.tgz", "integrity": "sha1-yqRDc9yIFayHZ73ba6cwc5ZMqos=", "requires": { + "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", "crypto-js": "^3.1.4", "utf8": "^2.1.1", "xhr2": "*", @@ -32360,7 +32363,7 @@ "dependencies": { "bignumber.js": { "version": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", - "from": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" + "from": "git+https://github.com/frozeman/bignumber.js-nolookahead.git" } } }, @@ -32885,7 +32888,8 @@ "dev": true, "requires": { "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.34" + "web3-core-helpers": "1.0.0-beta.34", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" }, "dependencies": { "underscore": { @@ -32896,7 +32900,8 @@ }, "websocket": { "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", + "dev": true, "requires": { "debug": "^2.2.0", "nan": "^2.3.3", @@ -34246,7 +34251,8 @@ "yaeti": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "dev": true }, "yallist": { "version": "2.1.2", diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 9e2d51deb..237c06a50 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1004,7 +1004,9 @@ describe('Metamask popup page', async function () { it('click to token opens the etherscan', async function () { await (await waitUntilShowUp(screens.main.tokens.token)).click() await switchToLastPage() + await delay(2000) const title = await driver.getCurrentUrl() + console.log(title) assert.equal(title.includes('https://etherscan.io/token/'), true, 'link leads to wrong page') await switchToFirstPage() }) @@ -1230,7 +1232,7 @@ describe('Metamask popup page', async function () { const error = await waitUntilShowUp(screens.sendTokens.error) assert.equal(await error.getText(), screens.sendTokens.errorText.invalidAmount, ' error message is incorrect') }) - it('error message if amount is too precise', async function () { + it.skip('error message if amount is too precise', async function () { const amount = await waitUntilShowUp(screens.sendTokens.field.amount) await clearField(amount) await amount.sendKeys(preciseAmount) From d4d87b9e725a12b7ee537eb7763585c3fe9f9416 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 11:44:00 -0700 Subject: [PATCH 02/27] e2e: add delays before function getCurenUrl --- test/e2e/metamask.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 237c06a50..45bee0bc5 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1024,7 +1024,9 @@ describe('Metamask popup page', async function () { assert.equal(await menu.getText(), menus.token.viewText, 'incorrect name') await menu.click() await switchToLastPage() + await delay(2000) const title = await driver.getCurrentUrl() + console.log(title) assert.equal(title.includes('https://etherscan.io/token/'), true, 'link leads to wrong page') await switchToFirstPage() }) From 53e0f5ee45b69e52c9e8613d9f383a7acabe9f55 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 11:59:32 -0700 Subject: [PATCH 03/27] e2e:lint fix --- test/e2e/elements.js | 2 +- test/e2e/metamask.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e/elements.js b/test/e2e/elements.js index 0218305b3..e04cbe881 100644 --- a/test/e2e/elements.js +++ b/test/e2e/elements.js @@ -314,4 +314,4 @@ module.exports = { LOCALHOST: 'localhost', CUSTOM: 'http://test.com', }, -} \ No newline at end of file +} diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 45bee0bc5..c8813231d 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1780,4 +1780,4 @@ describe('Metamask popup page', async function () { return false } } -}) \ No newline at end of file +}) From 6d249438faaba77d4026967a9a7b78675cd76306 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 12:12:19 -0700 Subject: [PATCH 04/27] e2e:test stability --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index c8813231d..7c2e403d0 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1107,6 +1107,7 @@ describe('Metamask popup page', async function () { assert(await isDisabledAddInexistentToken(tokenAddress), true, 'can add inexistent token in POA network') }) + it('can not add inexistent token to ROPSTEN network', async function () { await setProvider(NETWORKS.ROPSTEN) assert(await isDisabledAddInexistentToken(tokenAddress), true, 'can add inexistent token in POA network') From ebf5899f066fd466facde15c3577b5dbe58cbfbc Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 12:56:55 -0700 Subject: [PATCH 05/27] e2e:improve stability#2 --- test/e2e/metamask.spec.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 7c2e403d0..6a3f2dd24 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -922,7 +922,7 @@ describe('Metamask popup page', async function () { await tokenDecimal.sendKeys(decimals) await tokenSymbol.sendKeys(symbol) await click(createToken) - await delay(1000) + await delay(5000) }) // There is an issue with blank confirmation window in Firefox, but the button is still there and the driver is able to clicked (?.?) @@ -937,6 +937,7 @@ describe('Metamask popup page', async function () { const windowHandles = await driver.getAllWindowHandles() await driver.switchTo().window(windowHandles[0]) const tokenContactAddress = await waitUntilShowUp(By.css('#main > div > div > div > div:nth-child(2) > span:nth-child(3)')) + await delay(2000) tokenAddress = await tokenContactAddress.getText() await delay(500) }) @@ -1002,7 +1003,11 @@ describe('Metamask popup page', async function () { }) it('click to token opens the etherscan', async function () { - await (await waitUntilShowUp(screens.main.tokens.token)).click() + const link = await waitUntilShowUp(screens.main.tokens.token) + await link.click() + const allHandles = await driver.getAllWindowHandles() + console.log('allHandles.length ' + allHandles.length) + assert.equal(allHandles.length, 2, 'etherscan wasn\'t opened') await switchToLastPage() await delay(2000) const title = await driver.getCurrentUrl() @@ -1023,6 +1028,9 @@ describe('Metamask popup page', async function () { assert.notEqual(menu, false, 'item isn\'t displayed') assert.equal(await menu.getText(), menus.token.viewText, 'incorrect name') await menu.click() + const allHandles = await driver.getAllWindowHandles() + console.log('allHandles.length ' + allHandles.length) + assert.equal(allHandles.length, 3, 'etherscan wasn\'t opened') await switchToLastPage() await delay(2000) const title = await driver.getCurrentUrl() @@ -1098,13 +1106,14 @@ describe('Metamask popup page', async function () { it('can not add inexistent token to POA network', async function () { await setProvider(NETWORKS.POA) + console.log(tokenAddress) assert(await isDisabledAddInexistentToken(tokenAddress), true, 'can add inexistent token in POA network') }) - it.skip('can not add inexistent token to SOKOL network', async function () { + it('can not add inexistent token to SOKOL network', async function () { await setProvider(NETWORKS.SOKOL) - console.log(tokenAddress) - assert(await isDisabledAddInexistentToken(tokenAddress), true, 'can add inexistent token in POA network') + const BNBfromMainnet = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52' + assert(await isDisabledAddInexistentToken(BNBfromMainnet), true, 'can add inexistent token in POA network') }) From a6a4ae83545d5a94579a5a540f516b3b36d965cb Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 13:07:48 -0700 Subject: [PATCH 06/27] e2e:improve stability#3 --- test/e2e/metamask.spec.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 6a3f2dd24..9a9b27b28 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1068,7 +1068,7 @@ describe('Metamask popup page', async function () { describe('Check support of token per network basis ', async function () { - + const inexistentToken = '0xB8c77482e45F1F44dE1745F52C74426C631bDD51' describe('Token should be displayed only for network, where it was added ', async function () { it('token should not be displayed in POA network', async function () { @@ -1112,8 +1112,7 @@ describe('Metamask popup page', async function () { it('can not add inexistent token to SOKOL network', async function () { await setProvider(NETWORKS.SOKOL) - const BNBfromMainnet = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52' - assert(await isDisabledAddInexistentToken(BNBfromMainnet), true, 'can add inexistent token in POA network') + assert(await isDisabledAddInexistentToken(inexistentToken), true, 'can add inexistent token in POA network') }) From 44c370cba9fb2dea4fcc0c425c25ef8e01e73b6f Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 13:36:26 -0700 Subject: [PATCH 07/27] e2e:change seed phrase --- package.json | 2 +- test/e2e/metamask.spec.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index b82cbb265..452e51d80 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "test:mascara:build:locales": "mkdirp dist/chrome && cp -R app/_locales dist/chrome/_locales", "test:mascara:build:background": "browserify mascara/src/background.js -o dist/mascara/background.js", "test:mascara:build:tests": "browserify test/integration/lib/first-time.js -o dist/mascara/tests.js", - "ganache:start": "ganache-cli -m 'phrase upgrade clock rough situate wedding elder clever doctor stamp excess tent'", + "ganache:start": "ganache-cli -m 'juice teach unaware view expand beef divorce spatial evolve rack scheme foster'", "sentry:publish": "node ./development/sentry-publish.js", "lint": "eslint .", "lint:fix": "eslint . --fix", diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 9a9b27b28..e2c8bf6b9 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -7,6 +7,8 @@ const webdriver = require('selenium-webdriver') const { By, Key } = webdriver const { delay, buildChromeWebDriver, buildFirefoxWebdriver, installWebExt, getExtensionIdChrome, getExtensionIdFirefox } = require('./func') const { menus, screens, elements, NETWORKS } = require('./elements') +const testSeedPhrase = 'juice teach unaware view expand beef divorce spatial evolve rack scheme foster' +const account2='0x27836ca9B60E2E1aE13852388edd9a130Be81475' describe('Metamask popup page', async function () { let driver, accountAddress, tokenAddress, extensionId @@ -561,7 +563,6 @@ describe('Metamask popup page', async function () { }) it('adds seed phrase', async function () { - const testSeedPhrase = 'phrase upgrade clock rough situate wedding elder clever doctor stamp excess tent' const seedTextArea = await waitUntilShowUp(screens.restoreVault.textArea) await seedTextArea.sendKeys(testSeedPhrase) @@ -589,7 +590,7 @@ describe('Metamask popup page', async function () { assert.equal(await sendTranscationScreen.getText(), screens.sendTransaction.titleText, 'Transaction screen has incorrect titlr') const inputAddress = await waitUntilShowUp(screens.sendTransaction.field.address) const inputAmmount = await waitUntilShowUp(screens.sendTransaction.field.amount) - await inputAddress.sendKeys('0x2f318C334780961FB129D2a6c30D0763d9a5C970') + await inputAddress.sendKeys(account2) await inputAmmount.sendKeys('10') const button = await waitUntilShowUp(screens.sendTransaction.buttonNext) assert.equal(await button.getText(), 'Next', 'button has incorrect name') @@ -1154,7 +1155,6 @@ describe('Metamask popup page', async function () { describe('Transfer tokens', function () { - const account2 = '0x2f318C334780961FB129D2a6c30D0763d9a5C970' const invalidAddress = '0xkqjefwblknnecwe' const invalidAmount = 'eeeee' const largeAmount = '123' From 5940cff689080a5a0771bc35a74c81769cd0ef69 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 13:51:06 -0700 Subject: [PATCH 08/27] e2e:improve stability#4 --- test/e2e/metamask.spec.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index e2c8bf6b9..f8e7afe7e 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -8,7 +8,7 @@ const { By, Key } = webdriver const { delay, buildChromeWebDriver, buildFirefoxWebdriver, installWebExt, getExtensionIdChrome, getExtensionIdFirefox } = require('./func') const { menus, screens, elements, NETWORKS } = require('./elements') const testSeedPhrase = 'juice teach unaware view expand beef divorce spatial evolve rack scheme foster' -const account2='0x27836ca9B60E2E1aE13852388edd9a130Be81475' +const account2 = '0x27836ca9B60E2E1aE13852388edd9a130Be81475' describe('Metamask popup page', async function () { let driver, accountAddress, tokenAddress, extensionId @@ -1706,16 +1706,24 @@ describe('Metamask popup page', async function () { const fieldAddress = await waitUntilShowUp(screens.addToken.custom.fields.contractAddress) await clearField(fieldAddress) await fieldAddress.sendKeys(tokenAddress) + await delay const fieldSymbols = await waitUntilShowUp(screens.addToken.custom.fields.tokenSymbol) - if (await fieldSymbols.isEnabled()) return false + if (await fieldSymbols.isEnabled()) { + console.log('field symbols enabled') + return false + } const fieldDecimals = await waitUntilShowUp(screens.addToken.custom.fields.tokenSymbol) - if (await fieldDecimals.isEnabled()) return false - + if (await fieldDecimals.isEnabled()) { + console.log('field decimals enabled') + return false + } const buttonAdd = await waitUntilShowUp(screens.addToken.custom.buttons.add) - if (await buttonAdd.isEnabled()) return false - + if (await buttonAdd.isEnabled()) { + console.log('button add enabled') + return false + } const buttonCancel = await waitUntilShowUp(screens.addToken.custom.buttons.cancel) await click(buttonCancel) return true From d7750775fe5c0df982da622e2a15f61d554e536d Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 13:55:20 -0700 Subject: [PATCH 09/27] e2e:improve sability#5 --- test/e2e/metamask.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index f8e7afe7e..b6d94d5d7 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1701,12 +1701,12 @@ describe('Metamask popup page', async function () { } while (await waitUntilShowUp(screens.addToken.custom.fields.contractAddress) === false) } catch (err) { + console.log(err) return false } const fieldAddress = await waitUntilShowUp(screens.addToken.custom.fields.contractAddress) await clearField(fieldAddress) await fieldAddress.sendKeys(tokenAddress) - await delay const fieldSymbols = await waitUntilShowUp(screens.addToken.custom.fields.tokenSymbol) if (await fieldSymbols.isEnabled()) { From fd2008dc296ee84c5846fcb2ab4497543609d76e Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 14:38:47 -0700 Subject: [PATCH 10/27] e2e:improve sability#6 --- test/e2e/metamask.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index b6d94d5d7..2b4016c14 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -52,7 +52,7 @@ describe('Metamask popup page', async function () { }) after(async function () { - // await driver.quit() + await driver.quit() }) describe('Setup', async function () { From b0cae5d68df6721b1ed509d57e4a3ab7a5f388b8 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 14:56:30 -0700 Subject: [PATCH 11/27] e2e:improve sability#7 --- test/e2e/metamask.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 2b4016c14..8aed1c600 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -937,8 +937,8 @@ describe('Metamask popup page', async function () { it('switches back to Token Factory to grab the token contract address', async function () { const windowHandles = await driver.getAllWindowHandles() await driver.switchTo().window(windowHandles[0]) + await delay(5000) const tokenContactAddress = await waitUntilShowUp(By.css('#main > div > div > div > div:nth-child(2) > span:nth-child(3)')) - await delay(2000) tokenAddress = await tokenContactAddress.getText() await delay(500) }) @@ -1726,6 +1726,7 @@ describe('Metamask popup page', async function () { } const buttonCancel = await waitUntilShowUp(screens.addToken.custom.buttons.cancel) await click(buttonCancel) + await delay(2000) return true } From ac8aa781b7dc118968e8d3c0279140a5443180e4 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 15:57:03 -0700 Subject: [PATCH 12/27] e2e:improve stability#7 --- test/e2e/metamask.spec.js | 48 +++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 8aed1c600..7326e46ec 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -52,7 +52,7 @@ describe('Metamask popup page', async function () { }) after(async function () { - await driver.quit() + // await driver.quit() }) describe('Setup', async function () { @@ -1006,14 +1006,15 @@ describe('Metamask popup page', async function () { it('click to token opens the etherscan', async function () { const link = await waitUntilShowUp(screens.main.tokens.token) await link.click() + await delay(2000) const allHandles = await driver.getAllWindowHandles() console.log('allHandles.length ' + allHandles.length) assert.equal(allHandles.length, 2, 'etherscan wasn\'t opened') await switchToLastPage() - await delay(2000) - const title = await driver.getCurrentUrl() + const title = await waitUntilCurrentUrl() + console.log(title) - assert.equal(title.includes('https://etherscan.io/token/'), true, 'link leads to wrong page') + assert.equal(title.includes('https://etherscan.io/token/'), true, 'etherscan wasn\'t opened') await switchToFirstPage() }) }) @@ -1029,14 +1030,15 @@ describe('Metamask popup page', async function () { assert.notEqual(menu, false, 'item isn\'t displayed') assert.equal(await menu.getText(), menus.token.viewText, 'incorrect name') await menu.click() + await delay(2000) const allHandles = await driver.getAllWindowHandles() console.log('allHandles.length ' + allHandles.length) assert.equal(allHandles.length, 3, 'etherscan wasn\'t opened') await switchToLastPage() - await delay(2000) - const title = await driver.getCurrentUrl() + const title = await waitUntilCurrentUrl() + console.log(title) - assert.equal(title.includes('https://etherscan.io/token/'), true, 'link leads to wrong page') + assert.equal(title.includes('https://etherscan.io/token/'), true, 'etherscan wasn\'t opened') await switchToFirstPage() }) @@ -1725,8 +1727,16 @@ describe('Metamask popup page', async function () { return false } const buttonCancel = await waitUntilShowUp(screens.addToken.custom.buttons.cancel) - await click(buttonCancel) - await delay(2000) + let counter = 20 + do { + await delay(500) + await click(buttonCancel) + } + while (((await waitUntilShowUp(screens.main.identicon)) === false) && (counter-- > 0)) + if (counter < 1) { + console.log('button cancel doesn\'t work') + return false + } return true } @@ -1798,4 +1808,24 @@ describe('Metamask popup page', async function () { return false } } + + async function waitUntilCurrentUrl() + { + try { + let title + let counter = 20 + do { + await delay(500) + title = await driver.getCurrentUrl() + } while ( (title === '') && (counter-- > 0) ) + if ( counter < 1 ) return false + return title + } + catch(err) + { + console.log(err) + return false + } + + } }) From e6e76babee17b222794d0c0ce35ea65259dc9503 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:03:40 -0700 Subject: [PATCH 13/27] e2e:improve stability#8 --- test/e2e/metamask.spec.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 7326e46ec..19adbdb17 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1809,20 +1809,17 @@ describe('Metamask popup page', async function () { } } - async function waitUntilCurrentUrl() - { + async function waitUntilCurrentUrl () { try { let title let counter = 20 do { await delay(500) title = await driver.getCurrentUrl() - } while ( (title === '') && (counter-- > 0) ) - if ( counter < 1 ) return false + } while ((title === '') && (counter-- > 0)) + if (counter < 1) return false return title - } - catch(err) - { + } catch (err) { console.log(err) return false } From 066bad06a83f4b522db7c59d0848e634276daaf1 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:13:55 -0700 Subject: [PATCH 14/27] e2e:improve stability#9 --- test/e2e/metamask.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 19adbdb17..4d26c51eb 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1823,6 +1823,5 @@ describe('Metamask popup page', async function () { console.log(err) return false } - } }) From 25de9059d37baeec95b96bb0feab0781bfa38b83 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:14:33 -0700 Subject: [PATCH 15/27] e2e:improve stability#10 --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4d26c51eb..141d5c7b9 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1824,4 +1824,5 @@ describe('Metamask popup page', async function () { return false } } + }) From dcc289c90aef86c52145a87e0bbeb4bd162ab3f0 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:14:50 -0700 Subject: [PATCH 16/27] e2e:improve stability#11 --- test/e2e/metamask.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 141d5c7b9..4d26c51eb 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1824,5 +1824,4 @@ describe('Metamask popup page', async function () { return false } } - }) From d1c7c2368cdad6efabfacde0aad4c327f9519442 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:15:23 -0700 Subject: [PATCH 17/27] e2e:improve stability#12 --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4d26c51eb..141d5c7b9 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1824,4 +1824,5 @@ describe('Metamask popup page', async function () { return false } } + }) From b373338993ca9e1ccf7e31bfce3e8dad59006dfc Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:15:40 -0700 Subject: [PATCH 18/27] e2e:improve stability#13 --- test/e2e/metamask.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 141d5c7b9..4d26c51eb 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1824,5 +1824,4 @@ describe('Metamask popup page', async function () { return false } } - }) From d6e4499ffe546c415bbb7e4168932c375e4ad8fc Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:37:34 -0700 Subject: [PATCH 19/27] e2e:improve stability#14 --- test/e2e/metamask.spec.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4d26c51eb..0716e5a5f 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -928,16 +928,21 @@ describe('Metamask popup page', async function () { // There is an issue with blank confirmation window in Firefox, but the button is still there and the driver is able to clicked (?.?) it('confirms transaction in MetaMask popup', async function () { - const windowHandles = await driver.getAllWindowHandles() - await driver.switchTo().window(windowHandles[windowHandles.length - 1]) + //const windowHandles = await driver.getAllWindowHandles() + // await driver.switchTo().window(windowHandles[windowHandles.length - 1]) + await switchToLastPage() + await waitUntilCurrentUrl() const button = await waitUntilShowUp(screens.confirmTransaction.button.submit) await click(button) }) it('switches back to Token Factory to grab the token contract address', async function () { - const windowHandles = await driver.getAllWindowHandles() - await driver.switchTo().window(windowHandles[0]) + //const windowHandles = await driver.getAllWindowHandles() + // await driver.switchTo().window(windowHandles[0]) + await delay(5000) + await switchToFirstPage() + await waitUntilCurrentUrl() const tokenContactAddress = await waitUntilShowUp(By.css('#main > div > div > div > div:nth-child(2) > span:nth-child(3)')) tokenAddress = await tokenContactAddress.getText() await delay(500) From d392d1713fba5fa7a97ee2b6569c7bd08e819550 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 16:53:11 -0700 Subject: [PATCH 20/27] e2e:improve stability#15 --- test/e2e/metamask.spec.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 0716e5a5f..f05e10e25 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -928,7 +928,7 @@ describe('Metamask popup page', async function () { // There is an issue with blank confirmation window in Firefox, but the button is still there and the driver is able to clicked (?.?) it('confirms transaction in MetaMask popup', async function () { - //const windowHandles = await driver.getAllWindowHandles() + // const windowHandles = await driver.getAllWindowHandles() // await driver.switchTo().window(windowHandles[windowHandles.length - 1]) await switchToLastPage() await waitUntilCurrentUrl() @@ -937,7 +937,7 @@ describe('Metamask popup page', async function () { }) it('switches back to Token Factory to grab the token contract address', async function () { - //const windowHandles = await driver.getAllWindowHandles() + // const windowHandles = await driver.getAllWindowHandles() // await driver.switchTo().window(windowHandles[0]) await delay(5000) @@ -1708,8 +1708,6 @@ describe('Metamask popup page', async function () { } while (await waitUntilShowUp(screens.addToken.custom.fields.contractAddress) === false) } catch (err) { - console.log(err) - return false } const fieldAddress = await waitUntilShowUp(screens.addToken.custom.fields.contractAddress) await clearField(fieldAddress) From 09560d770a30d3939c31925f5b315c2271ca3667 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 17:08:11 -0700 Subject: [PATCH 21/27] e2e:improve stability#16 --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index f05e10e25..fde7a349c 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1827,4 +1827,5 @@ describe('Metamask popup page', async function () { return false } } + }) From 990c094caecc63a83c05d433114cdc1c3051bb7d Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 17:13:38 -0700 Subject: [PATCH 22/27] e2e:improve stability#17 --- test/e2e/metamask.spec.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index fde7a349c..4ff094993 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -59,8 +59,7 @@ describe('Metamask popup page', async function () { it('switches to extensions list', async function () { await delay(300) - const windowHandles = await driver.getAllWindowHandles() - await driver.switchTo().window(windowHandles[0]) + await switchToFirstPage() await delay(5000) }) }) @@ -75,7 +74,7 @@ describe('Metamask popup page', async function () { it('screen \'Terms of Use\' has not empty agreement', async () => { await delay(5000) - const terms = await waitUntilShowUp(screens.TOU.agreement, 300) + const terms = await waitUntilShowUp(screens.TOU.agreement, 900) const text = await terms.getText() assert.equal(text.length > 400, true, 'agreement is too short') }) From bf080b7f0a48869c056b29221f0fbebf47433354 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 17:23:58 -0700 Subject: [PATCH 23/27] e2e:improve stability#18 --- test/e2e/metamask.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4ff094993..1ada951d7 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1826,5 +1826,4 @@ describe('Metamask popup page', async function () { return false } } - }) From fe22faab22e93dc36fb765d643fa0fa5df9d53c8 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 18:08:32 -0700 Subject: [PATCH 24/27] e2e:improve stability#19 --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 1ada951d7..4ff094993 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1826,4 +1826,5 @@ describe('Metamask popup page', async function () { return false } } + }) From 4d97ae2fe0d53ee2d533858c6011e627693e267d Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 18:11:45 -0700 Subject: [PATCH 25/27] e2e:improve stability#20 --- test/e2e/metamask.spec.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4ff094993..eb0bdfca3 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -927,8 +927,6 @@ describe('Metamask popup page', async function () { // There is an issue with blank confirmation window in Firefox, but the button is still there and the driver is able to clicked (?.?) it('confirms transaction in MetaMask popup', async function () { - // const windowHandles = await driver.getAllWindowHandles() - // await driver.switchTo().window(windowHandles[windowHandles.length - 1]) await switchToLastPage() await waitUntilCurrentUrl() const button = await waitUntilShowUp(screens.confirmTransaction.button.submit) @@ -936,13 +934,10 @@ describe('Metamask popup page', async function () { }) it('switches back to Token Factory to grab the token contract address', async function () { - // const windowHandles = await driver.getAllWindowHandles() - // await driver.switchTo().window(windowHandles[0]) - - await delay(5000) await switchToFirstPage() await waitUntilCurrentUrl() const tokenContactAddress = await waitUntilShowUp(By.css('#main > div > div > div > div:nth-child(2) > span:nth-child(3)')) + await delay(5000) tokenAddress = await tokenContactAddress.getText() await delay(500) }) From 5b9f01b5601702da873a77dd4f184296f592ecc0 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 18:29:04 -0700 Subject: [PATCH 26/27] e2e:improve stability#21 --- test/e2e/metamask.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index eb0bdfca3..663a7f1d7 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1821,5 +1821,4 @@ describe('Metamask popup page', async function () { return false } } - }) From 3ff3d1437c5609a0eed90c1137dc46847af2c232 Mon Sep 17 00:00:00 2001 From: dennistikhomirov Date: Tue, 23 Oct 2018 18:29:26 -0700 Subject: [PATCH 27/27] e2e:improve stability#22 --- test/e2e/metamask.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 663a7f1d7..eb0bdfca3 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -1821,4 +1821,5 @@ describe('Metamask popup page', async function () { return false } } + })