aboutsummaryrefslogtreecommitdiffstats
path: root/test/e2e/beta/metamask-beta-ui.spec.js
diff options
context:
space:
mode:
authorbrunobar79 <brunobar79@gmail.com>2018-11-14 06:21:15 +0800
committerbrunobar79 <brunobar79@gmail.com>2018-11-14 06:21:15 +0800
commit484aa6801ea50fb08253fd08559710c53e0c189d (patch)
tree2a7876d3800e57aafab39a6beebe00abf7fc26ba /test/e2e/beta/metamask-beta-ui.spec.js
parentc651212025ab7cd0309d96be6687c1eba35ab9fa (diff)
parent0549782595335e8257d1b4abf7d6220020e2c8db (diff)
downloadtangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.gz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.bz2
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.lz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.xz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.zst
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.zip
Merge branch 'develop' into trezor-v5
Diffstat (limited to 'test/e2e/beta/metamask-beta-ui.spec.js')
-rw-r--r--test/e2e/beta/metamask-beta-ui.spec.js157
1 files changed, 141 insertions, 16 deletions
diff --git a/test/e2e/beta/metamask-beta-ui.spec.js b/test/e2e/beta/metamask-beta-ui.spec.js
index 5887d0293..2b5c8ee18 100644
--- a/test/e2e/beta/metamask-beta-ui.spec.js
+++ b/test/e2e/beta/metamask-beta-ui.spec.js
@@ -271,17 +271,6 @@ describe('MetaMask', function () {
await driver.wait(until.stalenessOf(accountModal))
await delay(regularDelayMs)
})
- it('show account details dropdown menu', async () => {
-
- const {width, height} = await driver.manage().window().getSize()
- driver.manage().window().setSize(320, 480)
- await driver.findElement(By.css('div.menu-bar__open-in-browser')).click()
- const options = await driver.findElements(By.css('div.menu.account-details-dropdown div.menu__item'))
- assert.equal(options.length, 3) // HD Wallet type does not have to show the Remove Account option
- await delay(regularDelayMs)
- driver.manage().window().setSize(width, height)
-
- })
})
describe('Enable privacy mode', () => {
@@ -495,6 +484,142 @@ describe('MetaMask', function () {
})
})
+ describe('Navigate transactions', () => {
+ it('adds multiple transactions', async () => {
+ await delay(regularDelayMs)
+
+ await waitUntilXWindowHandles(driver, 2)
+ const windowHandles = await driver.getAllWindowHandles()
+ const extension = windowHandles[0]
+ const dapp = windowHandles[1]
+
+ await driver.switchTo().window(dapp)
+ await delay(regularDelayMs)
+
+ const send3eth = await findElement(driver, By.xpath(`//button[contains(text(), 'Send')]`), 10000)
+ await send3eth.click()
+ await delay(regularDelayMs)
+
+ const contractDeployment = await findElement(driver, By.xpath(`//button[contains(text(), 'Deploy Contract')]`), 10000)
+ await contractDeployment.click()
+ await delay(regularDelayMs)
+
+ await send3eth.click()
+ await contractDeployment.click()
+ await delay(regularDelayMs)
+
+ await driver.switchTo().window(extension)
+ await delay(regularDelayMs)
+
+ const transactions = await findElements(driver, By.css('.transaction-list-item'))
+ await transactions[3].click()
+ await delay(regularDelayMs)
+ })
+
+ it('navigates the transactions', async () => {
+ let navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ assert.equal(navigateTxButtons.length, 4, 'navigation button present')
+
+ await navigateTxButtons[2].click()
+ let navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ let navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('2'), true, 'changed transaction right')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[2].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('3'), true, 'changed transaction right')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[2].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('4'), true, 'changed transaction right')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[0].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('1'), true, 'navigate to first transaction')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[3].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.split('4').length, 3, 'navigate to last transaction')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[1].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('3'), true, 'changed transaction left')
+
+ navigateTxButtons = await findElements(driver, By.css('.confirm-page-container-navigation__arrow'))
+ await navigateTxButtons[1].click()
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('2'), true, 'changed transaction left')
+ })
+
+ it('adds a transaction while confirm screen is in focus', async () => {
+ let navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ let navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('2'), true, 'second transaction in focus')
+
+ const windowHandles = await driver.getAllWindowHandles()
+ const extension = windowHandles[0]
+ const dapp = windowHandles[1]
+
+ await driver.switchTo().window(dapp)
+ await delay(regularDelayMs)
+
+ const send3eth = await findElement(driver, By.xpath(`//button[contains(text(), 'Send')]`), 10000)
+ await send3eth.click()
+ await delay(regularDelayMs)
+
+ await driver.switchTo().window(extension)
+ await delay(regularDelayMs)
+
+ navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('3'), true, 'correct transaction in focus')
+ })
+
+ it('confirms a transaction', async () => {
+ const confirmButton = await findElement(driver, By.xpath(`//button[contains(text(), 'Confirm')]`), 10000)
+ await confirmButton.click()
+ await delay(regularDelayMs)
+
+ const navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ const navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('4'), true, 'transaction confirmed')
+ })
+
+ it('rejects a transaction', async () => {
+ const rejectButton = await findElement(driver, By.xpath(`//button[contains(text(), 'Reject')]`), 10000)
+ await rejectButton.click()
+ await delay(regularDelayMs)
+
+ const navigationElement = await findElement(driver, By.css('.confirm-page-container-navigation'))
+ const navigationText = await navigationElement.getText()
+ assert.equal(navigationText.includes('3'), true, 'transaction rejected')
+ })
+
+ it('rejects the rest of the transactions', async () => {
+ const rejectAllButton = await findElement(driver, By.xpath(`//a[contains(text(), 'Reject 3')]`), 10000)
+ await rejectAllButton.click()
+ await delay(regularDelayMs)
+
+ const rejectButton = await findElement(driver, By.xpath(`//button[contains(text(), 'Reject All')]`), 10000)
+ await rejectButton.click()
+ await delay(largeDelayMs * 2)
+
+ const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
+ assert.equal(confirmedTxes.length, 3, '3 transactions present')
+ })
+ })
+
describe('Deploy contract and call contract methods', () => {
let extension
let dapp
@@ -542,7 +667,7 @@ describe('MetaMask', function () {
driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
- return confirmedTxes.length === 3
+ return confirmedTxes.length === 4
}, 10000)
const txAction = await findElements(driver, By.css('.transaction-list-item__action'))
@@ -599,7 +724,7 @@ describe('MetaMask', function () {
driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
- return confirmedTxes.length === 4
+ return confirmedTxes.length === 5
}, 10000)
const txValues = await findElements(driver, By.css('.transaction-list-item__amount--primary'))
@@ -631,7 +756,7 @@ describe('MetaMask', function () {
driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
- return confirmedTxes.length === 5
+ return confirmedTxes.length === 6
}, 10000)
const txValues = await findElement(driver, By.css('.transaction-list-item__amount--primary'))
@@ -645,9 +770,9 @@ describe('MetaMask', function () {
const balance = await findElement(driver, By.css('.transaction-view-balance__primary-balance'))
await delay(regularDelayMs)
if (process.env.SELENIUM_BROWSER !== 'firefox') {
- await driver.wait(until.elementTextMatches(balance, /^92.*\s*ETH.*$/), 10000)
+ await driver.wait(until.elementTextMatches(balance, /^89.*\s*ETH.*$/), 10000)
const tokenAmount = await balance.getText()
- assert.ok(/^92.*\s*ETH.*$/.test(tokenAmount))
+ assert.ok(/^89.*\s*ETH.*$/.test(tokenAmount))
await delay(regularDelayMs)
}
})