diff --git a/test/functional/apps/settings/_advanced_settings.js b/test/functional/apps/settings/_advanced_settings.js index 6a39e5654b528..c9822843785d7 100644 --- a/test/functional/apps/settings/_advanced_settings.js +++ b/test/functional/apps/settings/_advanced_settings.js @@ -35,6 +35,12 @@ define(function (require) { .then(function (advancedSetting) { expect(advancedSetting).to.be('America/Phoenix'); }) + .then(function () { + return settingsPage.setAdvancedSettings('dateFormat:tz', 'UTC'); + }) + .then(function () { + return settingsPage.clickIndicesTab(); + }) .catch(common.handleError(this)); }); diff --git a/test/functional/apps/settings/_initial_state.js b/test/functional/apps/settings/_initial_state.js index a7d4f2b872ebd..452063a92cd27 100644 --- a/test/functional/apps/settings/_initial_state.js +++ b/test/functional/apps/settings/_initial_state.js @@ -15,6 +15,9 @@ define(function (require) { return scenarioManager.reload('emptyKibana') .then(function () { return settingsPage.navigateTo(); + }) + .then(function () { + return settingsPage.clickIndicesTab(); }); }); diff --git a/test/server_config.js b/test/server_config.js index 8a27c968eb7e3..073cd9cb35a10 100644 --- a/test/server_config.js +++ b/test/server_config.js @@ -13,7 +13,8 @@ module.exports = { protocol: process.env.TEST_UI_KIBANA_PROTOCOL || 'http', hostname: process.env.TEST_UI_KIBANA_HOSTNAME || 'localhost', port: parseInt(process.env.TEST_UI_KIBANA_PORT, 10) || 5620, - auth: shield.kibanaUser.username + ':' + shield.kibanaUser.password + auth: shield.kibanaUser.username + ':' + shield.kibanaUser.password, + shield: shield.kibanaUser }, elasticsearch: { protocol: process.env.TEST_UI_ES_PROTOCOL || 'http', diff --git a/test/support/pages/common.js b/test/support/pages/common.js index bb8faaa970887..842b4cce5d139 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -10,6 +10,10 @@ define(function (require) { var parse = require('intern/dojo/node!url').parse; var format = require('intern/dojo/node!url').format; var path = require('intern/dojo/node!path'); + var ShieldPage = require('../../support/pages/shield_page'); + + var shieldPage; + function injectTimestampQuery(func, url) { var formatted = modifyQueryString(url, function (parsed) { @@ -33,7 +37,7 @@ define(function (require) { parsed.query = {}; } func(parsed); - return format(_.pick(parsed, 'protocol', 'hostname', 'port', 'pathname', 'query', 'hash', 'auth')); + return format(_.pick(parsed, 'protocol', 'hostname', 'port', 'pathname', 'query', 'hash')); } function Common(remote) { @@ -43,6 +47,7 @@ define(function (require) { remote.get.wrapper = injectTimestampQuery; this.remote.getCurrentUrl = _.wrap(this.remote.getCurrentUrl, removeTimestampQuery); } + shieldPage = new ShieldPage(this.remote); } @@ -57,11 +62,8 @@ define(function (require) { navigateToApp: function (appName, testStatusPage) { var self = this; - // navUrl includes user:password@ for use with Shield - // appUrl excludes user:password@ to match what getCurrentUrl returns - var navUrl = getUrl(config.servers.kibana, config.apps[appName]); var appUrl = getUrl.noAuth(config.servers.kibana, config.apps[appName]); - self.debug('navigating to ' + appName + ' url: ' + navUrl); + self.debug('navigating to ' + appName + ' url: ' + appUrl); var doNavigation = function (url) { return self.tryForTime(defaultTimeout, function () { @@ -90,24 +92,36 @@ define(function (require) { .then(function () { return self.remote.getCurrentUrl(); }) + // .then(function (currentUrl) { + // var loginPage = new RegExp('login').test(currentUrl); + // if (loginPage) { + // self.debug('Found loginPage = ' + loginPage + ', username = ' + // + config.servers.kibana.shield.username); + // return shieldPage.login(config.servers.kibana.shield.username, + // config.servers.kibana.shield.password) + // .then(function () { + // return self.remote.getCurrentUrl(); + // }); + // } else { + // return self.remote.getCurrentUrl(); + // } + // }) .then(function (currentUrl) { currentUrl = currentUrl.replace(/\/\/\w+:\w+@/, '//'); var navSuccessful = new RegExp(appUrl).test(currentUrl); if (!navSuccessful) { var msg = 'App failed to load: ' + appName + - ' in ' + defaultTimeout + 'ms' + ' appUrl = ' + appUrl + ' currentUrl = ' + currentUrl; self.debug(msg); throw new Error(msg); } - return currentUrl; }); }); }; - return doNavigation(navUrl) + return doNavigation(appUrl) .then(function (currentUrl) { var lastUrl = currentUrl; return self.tryForTime(defaultTimeout, function () { @@ -185,7 +199,7 @@ define(function (require) { tryForTime: function (timeout, block) { var self = this; var start = Date.now(); - var retryDelay = 502; + var retryDelay = 1502; var lastTry = 0; var tempMessage; diff --git a/test/support/pages/settings_page.js b/test/support/pages/settings_page.js index e330e92e53877..2856240e614a0 100644 --- a/test/support/pages/settings_page.js +++ b/test/support/pages/settings_page.js @@ -27,9 +27,9 @@ define(function (require) { }, - clickAdvancedTab: function () { - common.debug('in clickAdvancedTab'); - return common.findTestSubject('settingsNav advanced').click(); + clickIndicesTab: function () { + common.debug('in clickIndicesTab'); + return common.findTestSubject('settingsNav indices').click(); }, setAdvancedSettings: function setAdvancedSettings(propertyName, propertyValue) { diff --git a/test/support/pages/shield_page.js b/test/support/pages/shield_page.js new file mode 100644 index 0000000000000..6f14d5ad425d3 --- /dev/null +++ b/test/support/pages/shield_page.js @@ -0,0 +1,35 @@ +// in test/support/pages/shield_page.js +define(function (require) { + var config = require('intern').config; + var defaultTimeout = config.timeouts.default; + + // the page object is created as a constructor + // so we can provide the remote Command object + // at runtime + function ShieldPage(remote) { + this.remote = remote; + } + + ShieldPage.prototype = { + constructor: ShieldPage, + + login: function login(user, pwd) { + var self = this.remote; + return self.setFindTimeout(5000) + .findById('username') + .type(user) + .then(function () { + return self.findById('password') + .type(pwd); + }) + .then(function () { + return self.findByCssSelector('.btn') + .click(); + }); + } + + + }; + + return ShieldPage; +});