aboutsummaryrefslogtreecommitdiffstats
path: root/test/e2e/beta/metamask-beta-ui.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/e2e/beta/metamask-beta-ui.spec.js')
-rw-r--r--test/e2e/beta/metamask-beta-ui.spec.js111
1 files changed, 58 insertions, 53 deletions
diff --git a/test/e2e/beta/metamask-beta-ui.spec.js b/test/e2e/beta/metamask-beta-ui.spec.js
index e25b7edf1..05ad84f24 100644
--- a/test/e2e/beta/metamask-beta-ui.spec.js
+++ b/test/e2e/beta/metamask-beta-ui.spec.js
@@ -80,7 +80,18 @@ describe('MetaMask', function () {
'Promise.resolve({ json: () => Promise.resolve(JSON.parse(\'' + fetchMockResponses.metametrics + '\')) }); } else if ' +
'(args[0] === "https://dev.blockscale.net/api/gasexpress.json") { return ' +
'Promise.resolve({ json: () => Promise.resolve(JSON.parse(\'' + fetchMockResponses.gasExpress + '\')) }); } ' +
- 'return window.origFetch(...args); }'
+ 'return window.origFetch(...args); };' +
+ 'function cancelInfuraRequest(requestDetails) {' +
+ 'console.log("Canceling: " + requestDetails.url);' +
+ 'return {' +
+ 'cancel: true' +
+ '};' +
+ ' }' +
+ 'window.chrome && window.chrome.webRequest && window.chrome.webRequest.onBeforeRequest.addListener(' +
+ 'cancelInfuraRequest,' +
+ '{urls: ["https://*.infura.io/*"]},' +
+ '["blocking"]' +
+ ');'
)
})
@@ -223,26 +234,6 @@ describe('MetaMask', function () {
})
})
- describe('Enable privacy mode', () => {
- it('enables privacy mode', async () => {
- const networkDropdown = await findElement(driver, By.css('.network-name'))
- await networkDropdown.click()
- await delay(regularDelayMs)
-
- const customRpcButton = await findElement(driver, By.xpath(`//span[contains(text(), 'Custom RPC')]`))
- await customRpcButton.click()
- await delay(regularDelayMs)
-
- const securityTab = await findElement(driver, By.xpath(`//div[contains(text(), 'Security & Privacy')]`))
- await securityTab.click()
- await delay(regularDelayMs)
-
- const privacyToggle = await findElement(driver, By.css('.settings-page__content-row:nth-of-type(1) .settings-page__content-item-col > div'))
- await privacyToggle.click()
- await delay(largeDelayMs * 2)
- })
- })
-
describe('Log out an log back in', () => {
it('logs out of the account', async () => {
await driver.findElement(By.css('.account-menu__icon')).click()
@@ -318,16 +309,6 @@ describe('MetaMask', function () {
await delay(regularDelayMs)
})
- it('switches to localhost', async () => {
- const networkDropdown = await findElement(driver, By.css('.network-name'))
- await networkDropdown.click()
- await delay(regularDelayMs)
-
- const [localhost] = await findElements(driver, By.xpath(`//span[contains(text(), 'Localhost')]`))
- await localhost.click()
- await delay(largeDelayMs * 2)
- })
-
it('balance renders', async () => {
const balance = await findElement(driver, By.css('.balance-display .token-amount'))
await driver.wait(until.elementTextMatches(balance, /100\s*ETH/))
@@ -531,14 +512,22 @@ describe('MetaMask', function () {
await assertElementNotPresent(webdriver, driver, By.xpath(`//li[contains(text(), 'Data')]`))
const [gasPriceInput, gasLimitInput] = await findElements(driver, By.css('.advanced-gas-inputs__gas-edit-row__input'))
- await gasPriceInput.clear()
- await delay(tinyDelayMs)
+ await gasPriceInput.sendKeys(Key.chord(Key.CONTROL, 'a'))
+ await delay(50)
+
await gasPriceInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasPriceInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasPriceInput.sendKeys('10')
+ await delay(50)
await delay(tinyDelayMs)
- await gasLimitInput.sendKeys('5')
+ await delay(50)
+ await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'a'))
+ await delay(50)
+
+ await gasLimitInput.sendKeys('25000')
await delay(tinyDelayMs)
const confirmButton = await findElement(driver, By.xpath(`//button[contains(text(), 'Confirm')]`), 10000)
@@ -553,8 +542,10 @@ describe('MetaMask', function () {
let txValues
it('finds the transaction in the transactions list', async function () {
- const transactions = await findElements(driver, By.css('.transaction-list-item'))
- assert.equal(transactions.length, 4)
+ await driver.wait(async () => {
+ const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
+ return confirmedTxes.length === 4
+ }, 10000)
txValues = await findElements(driver, By.css('.transaction-list-item__amount--primary'))
await driver.wait(until.elementTextMatches(txValues[0], /-3\s*ETH/), 10000)
@@ -611,9 +602,16 @@ describe('MetaMask', function () {
await driver.switchTo().window(extension)
await delay(regularDelayMs)
- const transactions = await findElements(driver, By.css('.transaction-list-item'))
+ let transactions = await findElements(driver, By.css('.transaction-list-item'))
await transactions[3].click()
await delay(regularDelayMs)
+ try {
+ transactions = await findElements(driver, By.css('.transaction-list-item'), 1000)
+ await transactions[3].click()
+ } catch (e) {
+ console.log(e)
+ }
+ await delay(regularDelayMs)
})
it('navigates the transactions', async () => {
@@ -1019,7 +1017,9 @@ describe('MetaMask', function () {
const confirmDataDiv = await findElement(driver, By.css('.confirm-page-container-content__data-box'))
const confirmDataText = await confirmDataDiv.getText()
- assert.equal(confirmDataText.match(/0xa9059cbb0000000000000000000000002f318c334780961fb129d2a6c30d0763d9a5c97/))
+
+ await delay(regularDelayMs)
+ assert(confirmDataText.match(/0xa9059cbb0000000000000000000000002f318c334780961fb129d2a6c30d0763d9a5c97/))
const detailsTab = await findElement(driver, By.xpath(`//li[contains(text(), 'Details')]`))
detailsTab.click()
@@ -1050,8 +1050,7 @@ describe('MetaMask', function () {
return confirmedTxes.length === 1
}, 10000)
const txStatuses = await findElements(driver, By.css('.transaction-list-item__action'))
- const tx = await driver.wait(until.elementTextMatches(txStatuses[0], /Sent\sToken|Failed/), 10000)
- assert.equal(await tx.getText(), 'Sent Tokens')
+ await driver.wait(until.elementTextMatches(txStatuses[0], /Sent\sToken/i), 10000)
})
})
@@ -1061,7 +1060,6 @@ describe('MetaMask', function () {
const windowHandles = await driver.getAllWindowHandles()
const extension = windowHandles[0]
const dapp = await switchToWindowWithTitle(driver, 'E2E Test Dapp', windowHandles)
- await closeAllWindowHandlesExcept(driver, [extension, dapp])
await delay(regularDelayMs)
await driver.switchTo().window(dapp)
@@ -1070,7 +1068,6 @@ describe('MetaMask', function () {
const transferTokens = await findElement(driver, By.xpath(`//button[contains(text(), 'Transfer Tokens')]`))
await transferTokens.click()
- await closeAllWindowHandlesExcept(driver, [extension, dapp])
await driver.switchTo().window(extension)
await delay(largeDelayMs)
@@ -1094,23 +1091,31 @@ describe('MetaMask', function () {
await delay(regularDelayMs)
const [gasPriceInput, gasLimitInput] = await findElements(driver, By.css('.advanced-tab__gas-edit-row__input'))
- await gasPriceInput.clear()
- await delay(tinyDelayMs)
+ await gasPriceInput.sendKeys(Key.chord(Key.CONTROL, 'a'))
+ await delay(50)
await gasPriceInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasPriceInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasPriceInput.sendKeys('10')
- await delay(tinyDelayMs)
- await gasLimitInput.clear()
- await delay(tinyDelayMs)
+ await delay(50)
await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'a'))
+ await delay(50)
await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await delay(50)
await gasLimitInput.sendKeys('60000')
+ await delay(50)
await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'e'))
+ await delay(50)
const save = await findElement(driver, By.css('.page-container__footer-button'))
await save.click()
@@ -1197,7 +1202,7 @@ describe('MetaMask', function () {
const confirmDataDiv = await findElement(driver, By.css('.confirm-page-container-content__data-box'))
const confirmDataText = await confirmDataDiv.getText()
- assert.equal(confirmDataText.match(/0x095ea7b30000000000000000000000002f318c334780961fb129d2a6c30d0763d9a5c97/))
+ assert(confirmDataText.match(/0x095ea7b30000000000000000000000002f318c334780961fb129d2a6c30d0763d9a5c97/))
const detailsTab = await findElement(driver, By.xpath(`//li[contains(text(), 'Details')]`))
detailsTab.click()
@@ -1320,10 +1325,10 @@ describe('MetaMask', function () {
describe('Stores custom RPC history', () => {
const customRpcUrls = [
- 'https://mainnet.infura.io/1',
- 'https://mainnet.infura.io/2',
- 'https://mainnet.infura.io/3',
- 'https://mainnet.infura.io/4',
+ 'http://127.0.0.1:8545/1',
+ 'http://127.0.0.1:8545/2',
+ 'http://127.0.0.1:8545/3',
+ 'http://127.0.0.1:8545/4',
]
customRpcUrls.forEach(customRpcUrl => {
@@ -1362,7 +1367,7 @@ describe('MetaMask', function () {
await delay(regularDelayMs)
// only recent 3 are found and in correct order (most recent at the top)
- const customRpcs = await findElements(driver, By.xpath(`//span[contains(text(), 'https://mainnet.infura.io/')]`))
+ const customRpcs = await findElements(driver, By.xpath(`//span[contains(text(), 'http://127.0.0.1:8545/')]`))
assert.equal(customRpcs.length, customRpcUrls.length)
})