From ca38635d225244af84f4ece32e54a5458825fab1 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Mon, 20 Jan 2020 13:03:07 -0400 Subject: [PATCH] Add page navigation to e2e web driver (#7867) The driver now has a page navigation function that can navigate to any of the three primary pages used in the extension. Additional pages and support of paths can be added later as needed. --- test/e2e/webdriver/chrome.js | 2 +- test/e2e/webdriver/driver.js | 15 ++++++++++++++- test/e2e/webdriver/firefox.js | 2 +- test/e2e/webdriver/index.js | 6 ++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/test/e2e/webdriver/chrome.js b/test/e2e/webdriver/chrome.js index 710f2ed20..556073056 100644 --- a/test/e2e/webdriver/chrome.js +++ b/test/e2e/webdriver/chrome.js @@ -28,7 +28,7 @@ class ChromeDriver { return { driver, - extensionUrl: `chrome-extension://${extensionId}/home.html`, + extensionUrl: `chrome-extension://${extensionId}`, } } diff --git a/test/e2e/webdriver/driver.js b/test/e2e/webdriver/driver.js index 3774189bf..90a4e32a9 100644 --- a/test/e2e/webdriver/driver.js +++ b/test/e2e/webdriver/driver.js @@ -8,9 +8,10 @@ class Driver { * @param {string} browser - The type of browser this driver is controlling * @param {number} timeout */ - constructor (driver, browser, timeout = 10000) { + constructor (driver, browser, extensionUrl, timeout = 10000) { this.driver = driver this.browser = browser + this.extensionUrl = extensionUrl this.timeout = timeout } @@ -84,6 +85,12 @@ class Driver { assert.ok(!dataTab, 'Found element that should not be present') } + // Navigation + + async navigate (page = Driver.PAGES.HOME) { + return await this.driver.get(`${this.extensionUrl}/${page}.html`) + } + // Window management async openNewPage (url) { @@ -173,4 +180,10 @@ class Driver { } } +Driver.PAGES = { + HOME: 'home', + NOTIFICATION: 'notification', + POPUP: 'popup', +} + module.exports = Driver diff --git a/test/e2e/webdriver/firefox.js b/test/e2e/webdriver/firefox.js index b3ee1323b..aff7227a4 100644 --- a/test/e2e/webdriver/firefox.js +++ b/test/e2e/webdriver/firefox.js @@ -52,7 +52,7 @@ class FirefoxDriver { return { driver, extensionId, - extensionUrl: `moz-extension://${internalExtensionId}/home.html`, + extensionUrl: `moz-extension://${internalExtensionId}`, } } diff --git a/test/e2e/webdriver/index.js b/test/e2e/webdriver/index.js index c92e74394..4c172d340 100644 --- a/test/e2e/webdriver/index.js +++ b/test/e2e/webdriver/index.js @@ -10,14 +10,12 @@ async function buildWebDriver ({ responsive, port } = {}) { const { driver: seleniumDriver, extensionId, extensionUrl } = await buildBrowserWebDriver(browser, { extensionPath, responsive, port }) setupFetchMocking(seleniumDriver) - await seleniumDriver.get(extensionUrl) - - const driver = new Driver(seleniumDriver, browser) + const driver = new Driver(seleniumDriver, browser, extensionUrl) + await driver.navigate() return { driver, extensionId, - extensionUrl, } }