diff --git a/res/test/e2e/control/control-spec.js b/res/test/e2e/control/control-spec.js index a747e24f..7ee7a534 100644 --- a/res/test/e2e/control/control-spec.js +++ b/res/test/e2e/control/control-spec.js @@ -21,6 +21,19 @@ describe('Control Page', function () { it('should control an usable device', function () { deviceListPage.controlAvailableDevice() + + browser.waitUrl(/control/) + + //browser.debugger(); + //console.log('after') + + + //browser.driver.wait(function () { + // return browser.driver.getCurrentUrl().then(function (url) { + // return /control/.test(url) + // }) + //}) + browser.getLocationAbsUrl().then(function (newUrl) { expect(newUrl).toMatch(protractor.getInstance().baseUrl + 'control') }) diff --git a/res/test/e2e/devices/index.js b/res/test/e2e/devices/index.js index f48b3c59..06c71445 100644 --- a/res/test/e2e/devices/index.js +++ b/res/test/e2e/devices/index.js @@ -18,6 +18,6 @@ module.exports = function DeviceListPage() { return this.devicesUsable.first() } this.controlAvailableDevice = function () { - this.availableDevice().click() + return this.availableDevice().click() } } diff --git a/res/test/e2e/helpers/wait-url.js b/res/test/e2e/helpers/wait-url.js new file mode 100644 index 00000000..dc8ad64f --- /dev/null +++ b/res/test/e2e/helpers/wait-url.js @@ -0,0 +1,22 @@ +/** + * @name waitUrl + * + * @description Wait until the URL changes to match a provided regex + * @param {RegExp} urlRegex wait until the URL changes to match this regex + * @returns {!webdriver.promise.Promise} Promise + */ +module.exports = function waitUrl(urlRegex) { + var currentUrl + + return browser.getCurrentUrl().then(function storeCurrentUrl(url) { + currentUrl = url + } + ).then(function waitForUrlToChangeTo() { + return browser.wait(function waitForUrlToChangeTo() { + return browser.getCurrentUrl().then(function compareCurrentUrl(url) { + return urlRegex.test(url) + }) + }) + } + ) +} diff --git a/res/test/protractor-multi.conf.js b/res/test/protractor-multi.conf.js index 316db5ba..8b1b27ff 100644 --- a/res/test/protractor-multi.conf.js +++ b/res/test/protractor-multi.conf.js @@ -1,15 +1,17 @@ var config = require('./protractor.conf').config +var LoginPage = require('./e2e/login') var HtmlReporter = require('protractor-html-screenshot-reporter') +var WaitUrl = require('./e2e/helpers/wait-url') config.chromeOnly = false config.capabilities = null config.multiCapabilities = [ - { - browserName: 'chrome', - chromeOptions: { - args: ['--test-type'] // Prevent security warning bug in ChromeDriver - } - }, + //{ + // browserName: 'chrome', + // chromeOptions: { + // args: ['--test-type'] // Prevent security warning bug in ChromeDriver + // } + //}, { browserName: 'firefox' } @@ -24,6 +26,8 @@ config.onPrepare = function () { loginPage.doLogin() loginPage.cleanUp() + var waitUrl = WaitUrl + jasmine.getEnv().addReporter(new HtmlReporter({ baseDirectory: './res/test/test_out/screenshots' })) diff --git a/res/test/protractor.conf.js b/res/test/protractor.conf.js index 325e6af4..3b221016 100644 --- a/res/test/protractor.conf.js +++ b/res/test/protractor.conf.js @@ -3,6 +3,7 @@ var LoginPage = require('./e2e/login') var BrowserLogs = require('./e2e/helpers/browser-logs') var FailFast = require('./e2e/helpers/fail-fast') var HtmlReporter = require('protractor-html-screenshot-reporter') +var WaitUrl = require('./e2e/helpers/wait-url') exports.config = { baseUrl: process.env.STF_URL || 'http://localhost:7100/#!/', @@ -42,6 +43,9 @@ exports.config = { loginPage.doLogin() loginPage.cleanUp() + waitUrl = WaitUrl + + //jasmine.getEnv().addReporter(new HtmlReporter({ // baseDirectory: './res/test/test_out/screenshots' //}))