From ae6aaa3e8645c2636bea80f261052e9b8a45eb02 Mon Sep 17 00:00:00 2001 From: LeeDr Date: Mon, 25 Apr 2016 11:44:10 -0500 Subject: [PATCH 1/4] Minimal changes to support Shield Login. --- test/support/pages/common.js | 18 ++++++++++++++++ test/support/pages/shield_page.js | 35 +++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 test/support/pages/shield_page.js diff --git a/test/support/pages/common.js b/test/support/pages/common.js index bb8faaa970887..dca9a6c1caf10 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -10,6 +10,9 @@ 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) { @@ -43,6 +46,7 @@ define(function (require) { remote.get.wrapper = injectTimestampQuery; this.remote.getCurrentUrl = _.wrap(this.remote.getCurrentUrl, removeTimestampQuery); } + shieldPage = new ShieldPage(this.remote); } @@ -90,6 +94,20 @@ 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 currentUrl; + } + }) .then(function (currentUrl) { currentUrl = currentUrl.replace(/\/\/\w+:\w+@/, '//'); var navSuccessful = new RegExp(appUrl).test(currentUrl); 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; +}); From 14be3691f50d0fcd0988cac0d192e60467955ecb Mon Sep 17 00:00:00 2001 From: LeeDr Date: Mon, 25 Apr 2016 12:00:16 -0500 Subject: [PATCH 2/4] Change to doNavigation(appUrl). --- test/support/pages/common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/support/pages/common.js b/test/support/pages/common.js index dca9a6c1caf10..bc3c891e1ab1f 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -125,7 +125,7 @@ define(function (require) { }); }; - return doNavigation(navUrl) + return doNavigation(appUrl) .then(function (currentUrl) { var lastUrl = currentUrl; return self.tryForTime(defaultTimeout, function () { From fbb3e2011bd978f409bd606dd4a8a54bba61ceeb Mon Sep 17 00:00:00 2001 From: LeeDr Date: Mon, 25 Apr 2016 12:40:35 -0500 Subject: [PATCH 3/4] Revert back to doNavigation(navUrl). --- test/support/pages/common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/support/pages/common.js b/test/support/pages/common.js index bc3c891e1ab1f..dca9a6c1caf10 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -125,7 +125,7 @@ define(function (require) { }); }; - return doNavigation(appUrl) + return doNavigation(navUrl) .then(function (currentUrl) { var lastUrl = currentUrl; return self.tryForTime(defaultTimeout, function () { From 935fee7df1de9467ba773d085de3c0f81a5d1ee8 Mon Sep 17 00:00:00 2001 From: LeeDr Date: Wed, 27 Apr 2016 15:21:39 -0500 Subject: [PATCH 4/4] Change 'self' to 'remote'. --- test/support/pages/shield_page.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/support/pages/shield_page.js b/test/support/pages/shield_page.js index 6f14d5ad425d3..0df4b5cddca4c 100644 --- a/test/support/pages/shield_page.js +++ b/test/support/pages/shield_page.js @@ -14,16 +14,16 @@ define(function (require) { constructor: ShieldPage, login: function login(user, pwd) { - var self = this.remote; - return self.setFindTimeout(5000) + var remote = this.remote; + return remote.setFindTimeout(5000) .findById('username') .type(user) .then(function () { - return self.findById('password') + return remote.findById('password') .type(pwd); }) .then(function () { - return self.findByCssSelector('.btn') + return remote.findByCssSelector('.btn') .click(); }); }