Skip to content

Commit

Permalink
Merge pull request #7046 from LeeDr/newShieldLogin
Browse files Browse the repository at this point in the history
Minimal changes to support Shield Login.
  • Loading branch information
Lee Drengenberg committed Apr 27, 2016
2 parents 1d9a008 + 935fee7 commit 26a6e56
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
18 changes: 18 additions & 0 deletions test/support/pages/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -43,6 +46,7 @@ define(function (require) {
remote.get.wrapper = injectTimestampQuery;
this.remote.getCurrentUrl = _.wrap(this.remote.getCurrentUrl, removeTimestampQuery);
}
shieldPage = new ShieldPage(this.remote);
}


Expand Down Expand Up @@ -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);
Expand Down
35 changes: 35 additions & 0 deletions test/support/pages/shield_page.js
Original file line number Diff line number Diff line change
@@ -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 remote = this.remote;
return remote.setFindTimeout(5000)
.findById('username')
.type(user)
.then(function () {
return remote.findById('password')
.type(pwd);
})
.then(function () {
return remote.findByCssSelector('.btn')
.click();
});
}


};

return ShieldPage;
});

0 comments on commit 26a6e56

Please sign in to comment.