diff --git a/docs/kibana-repositories.asciidoc b/docs/kibana-repositories.asciidoc
index ff67335323bf..62768e04eace 100644
--- a/docs/kibana-repositories.asciidoc
+++ b/docs/kibana-repositories.asciidoc
@@ -1,12 +1,12 @@
[[setup-repositories]]
=== Kibana Repositories
-Binary packages for Kibana are available for Unix distributions that support the `apt` and `yum` tools.We also have
-repositories available for APT and YUM based distributions.
+Binary packages for Kibana are available for Unix distributions that support the `apt` and `yum` tools.We also have
+repositories available for APT and YUM based distributions.
NOTE: Since the packages are created as part of the Kibana build, source packages are not available.
-Packages are signed with the PGP key http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], which
+Packages are signed with the PGP key http://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4[D88E42B4], which
has the following fingerprint:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
@@ -31,7 +31,7 @@ echo "deb http://packages.elastic.co/kibana/{branch}/debian stable main" | sudo
+
[WARNING]
==================================================
-Use the `echo` method described above to add the Kibana repository. Do not use `add-apt-repository`, as that command
+Use the `echo` method described above to add the Kibana repository. Do not use `add-apt-repository`, as that command
adds a `deb-src` entry with no corresponding source package.
When the `deb-src` entry, is present, the commands in this procedure generate an error similar to the following:
@@ -47,7 +47,7 @@ Delete the `deb-src` entry from the `/etc/apt/sources.list` file to clear the er
sudo apt-get update && sudo apt-get install kibana
--------------------------------------------------
+
-. Configure Kibana to automatically start during bootup. If your distribution is using the System V version of `init`,
+. Configure Kibana to automatically start during bootup. If your distribution is using the System V version of `init`,
run the following command:
+
[source,sh]
@@ -67,7 +67,7 @@ sudo /bin/systemctl enable kibana.service
[[kibana-yum]]
===== Installing Kibana with yum
-WARNING: The repositories set up in this procedure are not compatible with distributions using version 3 of `rpm`, such
+WARNING: The repositories set up in this procedure are not compatible with distributions using version 3 of `rpm`, such
as CentOS version 5.
. Download and install the public signing key:
@@ -96,8 +96,8 @@ enabled=1
yum install kibana
--------------------------------------------------
+
-Configure Kibana to automatically start during bootup. If your distribution is using the System V version of `init`,
-run the following command:
+Configure Kibana to automatically start during bootup. If your distribution is using the System V version of `init`
+(check with `ps -p 1`), run the following command:
+
[source,sh]
--------------------------------------------------
diff --git a/package.json b/package.json
index 067eaea06baa..acba26563bc9 100644
--- a/package.json
+++ b/package.json
@@ -56,8 +56,8 @@
"elasticsearchWithPlugins": "grunt esvm:withPlugins:keepalive",
"lint": "grunt eslint:source",
"lintroller": "grunt eslint:fixSource",
- "mocha": "mocha --compilers js:babel/register",
- "mocha:debug": "mocha --debug-brk --compilers js:babel/register"
+ "mocha": "mocha",
+ "mocha:debug": "mocha --debug-brk"
},
"repository": {
"type": "git",
@@ -142,7 +142,7 @@
"Nonsense": "0.1.2",
"angular-mocks": "1.4.7",
"auto-release-sinon": "1.0.3",
- "babel-eslint": "4.1.3",
+ "babel-eslint": "4.1.7",
"chokidar": "1.0.5",
"eslint": "1.5.1",
"eslint-plugin-mocha": "1.0.0",
diff --git a/src/plugins/elasticsearch/lib/call_with_request.js b/src/plugins/elasticsearch/lib/call_with_request.js
index 1bd818296c73..cf440b260219 100644
--- a/src/plugins/elasticsearch/lib/call_with_request.js
+++ b/src/plugins/elasticsearch/lib/call_with_request.js
@@ -2,15 +2,21 @@ const _ = require('lodash');
const Promise = require('bluebird');
const Boom = require('boom');
const getBasicAuthRealm = require('./get_basic_auth_realm');
+const toPath = require('lodash/internal/toPath');
module.exports = (client) => {
return (req, endpoint, params = {}) => {
if (req.headers.authorization) {
_.set(params, 'headers.authorization', req.headers.authorization);
}
- const api = _.get(client, endpoint);
+ const path = toPath(endpoint);
+ const api = _.get(client, path);
+ let apiContext = _.get(client, path.slice(0, -1));
+ if (_.isEmpty(apiContext)) {
+ apiContext = client;
+ }
if (!api) throw new Error(`callWithRequest called with an invalid endpoint: ${endpoint}`);
- return api.call(client, params)
+ return api.call(apiContext, params)
.catch((err) => {
if (err.status === 401) {
// TODO: The err.message is temporary until we have support for getting headers in the client.
diff --git a/src/plugins/kibana/public/discover/components/field_chooser/discover_field.js b/src/plugins/kibana/public/discover/components/field_chooser/discover_field.js
index 1f9bf7b62235..2411e915e149 100644
--- a/src/plugins/kibana/public/discover/components/field_chooser/discover_field.js
+++ b/src/plugins/kibana/public/discover/components/field_chooser/discover_field.js
@@ -60,11 +60,11 @@ define(function (require) {
};
$scope.toggleDisplay = function (field) {
- // inheritted param to fieldChooser
+ // This is inherited from fieldChooser
$scope.toggle(field.name);
if (field.display) $scope.increaseFieldCounter(field);
- // we are now displaying the field, kill it's details
+ // we are now displaying the field, kill its details
if (field.details) {
$scope.toggleDetails(field);
}
diff --git a/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html b/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html
index 1bd6edaac644..4b57f3304114 100644
--- a/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html
+++ b/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html
@@ -16,7 +16,7 @@
-
+
{{conf.value || conf.defVal}}
{{(conf.value || conf.defVal).join(', ')}}
{{conf.value === undefined ? conf.defVal : conf.value}}
@@ -74,7 +74,7 @@
+ per-page="spy.params.spyPerPage">
diff --git a/src/plugins/spyModes/public/tableSpyMode.js b/src/plugins/spyModes/public/tableSpyMode.js
index 97eac984b091..b18c4ae437f8 100644
--- a/src/plugins/spyModes/public/tableSpyMode.js
+++ b/src/plugins/spyModes/public/tableSpyMode.js
@@ -21,8 +21,8 @@ define(function (require) {
if (!$scope.vis || !$scope.esResp) {
$scope.table = null;
} else {
- if (!$scope.editableVis.params.spyPerPage) {
- $scope.editableVis.params.spyPerPage = PER_PAGE_DEFAULT;
+ if (!$scope.spy.params.spyPerPage) {
+ $scope.spy.params.spyPerPage = PER_PAGE_DEFAULT;
}
$scope.table = tabifyAggResponse($scope.vis, $scope.esResp, {
diff --git a/src/plugins/testsBundle/index.js b/src/plugins/testsBundle/index.js
index f0f3923804a5..903224d3657c 100644
--- a/src/plugins/testsBundle/index.js
+++ b/src/plugins/testsBundle/index.js
@@ -14,7 +14,7 @@ module.exports = (kibana) => {
},
uiExports: {
- bundle: async (UiBundle, env, apps) => {
+ bundle: async (UiBundle, env, apps, plugins) => {
let modules = [];
let config = kibana.config;
@@ -23,10 +23,15 @@ module.exports = (kibana) => {
modules = union(modules, app.getModules());
}
- let testFiles = await findSourceFiles([
- 'src/**/public/**/__tests__/**/*.js',
- 'installedPlugins/*/public/**/__tests__/**/*.js'
- ]);
+ const testGlobs = [
+ 'src/ui/public/**/__tests__/**/*.js',
+ ];
+
+ for (const plugin of plugins) {
+ testGlobs.push(`${plugin.publicDir}/**/__tests__/**/*.js`);
+ }
+
+ const testFiles = await findSourceFiles(testGlobs);
for (let f of testFiles) modules.push(f);
diff --git a/src/server/plugins/Plugin.js b/src/server/plugins/Plugin.js
index 226f17239a70..a75cbc4dce8a 100644
--- a/src/server/plugins/Plugin.js
+++ b/src/server/plugins/Plugin.js
@@ -1,7 +1,7 @@
let _ = require('lodash');
let Joi = require('joi');
let { attempt, fromNode } = require('bluebird');
-let { resolve } = require('path');
+let { basename, resolve } = require('path');
let { inherits } = require('util');
const defaultConfigSchema = Joi.object({
@@ -18,11 +18,23 @@ module.exports = class Plugin {
this.uiExportsSpecs = opts.uiExports || {};
this.requiredIds = opts.require || [];
this.version = opts.version || pkg.version;
- this.publicDir = opts.publicDir !== false ? resolve(path, 'public') : null;
this.externalCondition = opts.initCondition || _.constant(true);
this.externalInit = opts.init || _.noop;
this.getConfigSchema = opts.config || _.noop;
this.init = _.once(this.init);
+
+ if (opts.publicDir === false) {
+ this.publicDir = null;
+ }
+ else if (!opts.publicDir) {
+ this.publicDir = resolve(this.path, 'public');
+ }
+ else {
+ this.publicDir = opts.publicDir;
+ if (basename(this.publicDir) !== 'public') {
+ throw new Error(`publicDir for plugin ${this.id} must end with a "public" directory.`);
+ }
+ }
}
static scoped(kbnServer, path, pkg) {
diff --git a/src/ui/index.js b/src/ui/index.js
index 4bdf12b7870f..cf0945bc9ae4 100644
--- a/src/ui/index.js
+++ b/src/ui/index.js
@@ -35,7 +35,7 @@ module.exports = async (kbnServer, server, config) => {
}
for (let gen of uiExports.getBundleProviders()) {
- let bundle = await gen(UiBundle, bundlerEnv, uiExports.getAllApps());
+ let bundle = await gen(UiBundle, bundlerEnv, uiExports.getAllApps(), kbnServer.plugins);
if (bundle) bundles.add(bundle);
}
diff --git a/src/ui/public/state_management/state.js b/src/ui/public/state_management/state.js
index 1c0c91ed003c..64e202d6e41b 100644
--- a/src/ui/public/state_management/state.js
+++ b/src/ui/public/state_management/state.js
@@ -23,7 +23,7 @@ define(function (require) {
self.fetch();
}),
- // begining of full route update, new app will be initialized before
+ // beginning of full route update, new app will be initialized before
// $routeChangeSuccess or $routeChangeError
$rootScope.$on('$routeChangeStart', function () {
if (self._persistAcrossApps) {
@@ -136,8 +136,8 @@ define(function (require) {
* @returns {void}
*/
State.prototype.destroy = function () {
- this.off(); // removes all listners
- this._cleanUpListeners(); // Removes the $routeUpdate listner
+ this.off(); // removes all listeners
+ this._cleanUpListeners(); // Removes the $routeUpdate listener
};
State.prototype.setDefaults = function (defaults) {
diff --git a/src/ui/public/time_buckets/time_buckets.js b/src/ui/public/time_buckets/time_buckets.js
index 1d2449d84a91..71faa411f91d 100644
--- a/src/ui/public/time_buckets/time_buckets.js
+++ b/src/ui/public/time_buckets/time_buckets.js
@@ -88,9 +88,9 @@ define(function (require) {
/**
* Return the current bounds, if we have any.
*
- * THIS DOES NOT CLONE THE BOUNDS, so editting them
+ * THIS DOES NOT CLONE THE BOUNDS, so editing them
* may have unexpected side-effects. Always
- * call bounds.min.clone() before editting
+ * call bounds.min.clone() before editing
*
* @return {object|undefined} - If bounds are not defined, this
* returns undefined, else it returns the bounds
diff --git a/src/ui/public/visualize/spy.js b/src/ui/public/visualize/spy.js
index d58299769b92..2629dce9b290 100644
--- a/src/ui/public/visualize/spy.js
+++ b/src/ui/public/visualize/spy.js
@@ -16,6 +16,7 @@ define(function (require) {
var $container = $el.find('.visualize-spy-container');
var fullPageSpy = _.get($scope.spy, 'mode.fill', false);
$scope.modes = spyModes;
+ $scope.spy.params = $scope.spy.params || {};
function getSpyObject(name) {
name = _.isUndefined(name) ? $scope.spy.mode.name : name;
diff --git a/tasks/build/downloadNodeBuilds.js b/tasks/build/downloadNodeBuilds.js
index dbb583fd1970..f3938549aa4e 100644
--- a/tasks/build/downloadNodeBuilds.js
+++ b/tasks/build/downloadNodeBuilds.js
@@ -37,7 +37,7 @@ module.exports = function (grunt) {
// use an async iife to store promise for download
// then store platform in active downloads list
// which we will read from in the finish task
- platform.downloadPromise = (async () => {
+ platform.downloadPromise = (async function () {
grunt.file.mkdir(downloadDir);
if (platform.name === 'windows') {
@@ -82,4 +82,3 @@ module.exports = function (grunt) {
.nodeify(this.async());
});
};
-
diff --git a/tasks/build/index.js b/tasks/build/index.js
index 22341871639d..f136f89179ea 100644
--- a/tasks/build/index.js
+++ b/tasks/build/index.js
@@ -1,31 +1,33 @@
module.exports = function (grunt) {
let { flatten } = require('lodash');
- grunt.registerTask('build', flatten([
- '_build:getProps',
- 'clean:build',
- 'clean:target',
- '_build:downloadNodeBuilds:start',
- 'copy:devSource',
- 'babel:build',
- '_build:babelOptions',
- '_build:installedPlugins',
- '_build:packageJson',
- '_build:readme',
- '_build:installNpmDeps',
- '_build:removePkgJsonDeps',
- 'clean:testsFromModules',
- 'clean:deepModuleBins',
- 'clean:deepModules',
- 'run:optimizeBuild',
- 'stop:optimizeBuild',
- '_build:downloadNodeBuilds:finish',
- '_build:versionedLinks',
- '_build:archives',
- !grunt.option('os-packages') ? [] : [
- '_build:pleaseRun',
- '_build:osPackages',
- ],
- '_build:shasums'
- ]));
+ grunt.registerTask('build', 'Build packages', function (arg) {
+ grunt.task.run(flatten([
+ '_build:getProps',
+ 'clean:build',
+ 'clean:target',
+ '_build:downloadNodeBuilds:start',
+ 'copy:devSource',
+ 'babel:build',
+ '_build:babelOptions',
+ '_build:installedPlugins',
+ '_build:packageJson',
+ '_build:readme',
+ '_build:installNpmDeps',
+ '_build:removePkgJsonDeps',
+ 'clean:testsFromModules',
+ 'clean:deepModuleBins',
+ 'clean:deepModules',
+ 'run:optimizeBuild',
+ 'stop:optimizeBuild',
+ '_build:downloadNodeBuilds:finish',
+ '_build:versionedLinks',
+ '_build:archives',
+ (grunt.option('os-packages') || arg === 'ospackages') ? [
+ '_build:pleaseRun',
+ '_build:osPackages',
+ ] : [],
+ '_build:shasums'
+ ]));
+ });
};
diff --git a/tasks/config/simplemocha.js b/tasks/config/simplemocha.js
index 3aacde1f64e2..80bbadd43335 100644
--- a/tasks/config/simplemocha.js
+++ b/tasks/config/simplemocha.js
@@ -1,3 +1,5 @@
+require('../../test/mocha_setup');
+
module.exports = {
options: {
timeout: 10000,
diff --git a/tasks/jenkins.js b/tasks/jenkins.js
index f043e92d0cc7..e3d3d9c3cc06 100644
--- a/tasks/jenkins.js
+++ b/tasks/jenkins.js
@@ -3,7 +3,7 @@ module.exports = function (grunt) {
grunt.registerTask('jenkins', 'Jenkins build script', compact([
'test',
- process.env.JOB_NAME === 'kibana_core' ? 'build' : null
+ process.env.JOB_NAME === 'kibana_core' ? 'build:ospackages' : null
]));
};
diff --git a/test/fixtures/__tests__/scenarioManager.js b/test/fixtures/__tests__/scenario_manager.js
similarity index 98%
rename from test/fixtures/__tests__/scenarioManager.js
rename to test/fixtures/__tests__/scenario_manager.js
index bccce64e7ade..144f6c1cfaa8 100644
--- a/test/fixtures/__tests__/scenarioManager.js
+++ b/test/fixtures/__tests__/scenario_manager.js
@@ -2,7 +2,7 @@ var expect = require('expect.js');
var sinon = require('sinon');
var Promise = require('bluebird');
-var ScenarioManager = require('../scenarioManager');
+var ScenarioManager = require('../scenario_manager');
describe('scenario manager', function () {
var manager = new ScenarioManager('http://localhost:9200');
diff --git a/test/fixtures/scenarioManager.js b/test/fixtures/scenario_manager.js
similarity index 100%
rename from test/fixtures/scenarioManager.js
rename to test/fixtures/scenario_manager.js
diff --git a/test/functional/apps/discover/_collapse_expand.js b/test/functional/apps/discover/_collapse_expand.js
new file mode 100644
index 000000000000..5e271d29724b
--- /dev/null
+++ b/test/functional/apps/discover/_collapse_expand.js
@@ -0,0 +1,128 @@
+define(function (require) {
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
+ var SettingsPage = require('../../../support/pages/settings_page');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var expect = require('intern/dojo/node!expect.js');
+
+ return function (bdd, scenarioManager) {
+ bdd.describe('discover tab', function describeIndexTests() {
+ var common;
+ var headerPage;
+ var settingsPage;
+ var discoverPage;
+ var baseUrl;
+
+ bdd.before(function () {
+ common = new Common(this.remote);
+ headerPage = new HeaderPage(this.remote);
+ settingsPage = new SettingsPage(this.remote);
+ discoverPage = new DiscoverPage(this.remote);
+
+ baseUrl = common.getHostPort();
+
+ var fromTime = '2015-09-19 06:31:44.000';
+ var toTime = '2015-09-23 18:31:44.000';
+
+ // start each test with an empty kibana index
+ return scenarioManager.reload('emptyKibana')
+ // and load a set of makelogs data
+ .then(function loadIfEmptyMakelogs() {
+ return scenarioManager.loadIfEmpty('logstashFunctional');
+ })
+ .then(function (navigateTo) {
+ common.debug('navigateTo');
+ return settingsPage.navigateTo();
+ })
+ .then(function () {
+ common.debug('createIndexPattern');
+ return settingsPage.createIndexPattern();
+ })
+ .then(function () {
+ common.debug('discover');
+ return common.navigateToApp('discover');
+ })
+ .then(function () {
+ common.debug('setAbsoluteRange');
+ return headerPage.setAbsoluteRange(fromTime, toTime);
+ })
+ .catch(common.handleError(this));
+ });
+
+
+ bdd.describe('legend', function () {
+
+ bdd.it('should initially be collapsed', function () {
+ return discoverPage.getLegendWidth()
+ .then(function (actualwidth) {
+ common.debug('collapsed legend width = ' + actualwidth);
+ expect(actualwidth < 20).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ bdd.it('should expand when clicked', function () {
+ return discoverPage.clickLegendExpand()
+ .then(function () {
+ return discoverPage.getLegendWidth();
+ })
+ .then(function (actualwidth) {
+ common.debug('expanded legend width = ' + actualwidth);
+ expect(actualwidth > 140).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ bdd.it('should collapse when clicked', function () {
+ return discoverPage.clickLegendCollapse()
+ .then(function () {
+ return discoverPage.getLegendWidth();
+ })
+ .then(function (actualwidth) {
+ expect(actualwidth < 20).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ });
+
+ bdd.describe('field data', function () {
+
+ bdd.it('should initially be expanded', function () {
+ return discoverPage.getSidebarWidth()
+ .then(function (actualwidth) {
+ common.debug('expanded sidebar width = ' + actualwidth);
+ expect(actualwidth > 180).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ bdd.it('should collapse when clicked', function () {
+ return discoverPage.clickSidebarCollapse()
+ .then(function () {
+ return discoverPage.getSidebarWidth();
+ })
+ .then(function (actualwidth) {
+ common.debug('collapsed sidebar width = ' + actualwidth);
+ expect(actualwidth < 20).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ bdd.it('should expand when clicked', function () {
+ return discoverPage.clickSidebarExpand()
+ .then(function () {
+ return discoverPage.getSidebarWidth();
+ })
+ .then(function (actualwidth) {
+ common.debug('expanded sidebar width = ' + actualwidth);
+ expect(actualwidth > 180).to.be(true);
+ })
+ .catch(common.handleError(this));
+ });
+
+ });
+
+ });
+ };
+});
diff --git a/test/functional/apps/discover/_discover.js b/test/functional/apps/discover/_discover.js
index ffd39f1286c1..fd7cf3a1055b 100644
--- a/test/functional/apps/discover/_discover.js
+++ b/test/functional/apps/discover/_discover.js
@@ -1,8 +1,8 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
@@ -272,7 +272,7 @@ define(function (require) {
var hasFailure = false;
for (var y = 0; y < expectedBarChartData.length; y++) {
stringResults += y + ': expected = ' + expectedBarChartData[y] + ', actual = ' + paths[y] +
- ', Pass = ' + (Math.abs(expectedBarChartData[y] - paths[y]) < barHeightTolerance);
+ ', Pass = ' + (Math.abs(expectedBarChartData[y] - paths[y]) < barHeightTolerance) + '\n';
if ((Math.abs(expectedBarChartData[y] - paths[y]) > barHeightTolerance)) {
hasFailure = true;
};
diff --git a/test/functional/apps/discover/_field_data.js b/test/functional/apps/discover/_field_data.js
index 4b3d4dbbb936..0089ac6b3b7d 100644
--- a/test/functional/apps/discover/_field_data.js
+++ b/test/functional/apps/discover/_field_data.js
@@ -1,8 +1,8 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/discover/_shared_links.js b/test/functional/apps/discover/_shared_links.js
new file mode 100644
index 000000000000..f590cc2dd44c
--- /dev/null
+++ b/test/functional/apps/discover/_shared_links.js
@@ -0,0 +1,140 @@
+define(function (require) {
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
+ var SettingsPage = require('../../../support/pages/settings_page');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var expect = require('intern/dojo/node!expect.js');
+
+ return function (bdd, scenarioManager) {
+ bdd.describe('shared links', function describeIndexTests() {
+ var common;
+ var headerPage;
+ var settingsPage;
+ var discoverPage;
+ var baseUrl;
+ // The message changes for Firefox < 41 and Firefox >= 41
+ // var expectedToastMessage = 'Share search: URL selected. Press Ctrl+C to copy.';
+ // var expectedToastMessage = 'Share search: URL copied to clipboard.';
+ // Pass either one.
+ var expectedToastMessage = /Share search: URL (selected. Press Ctrl+C to copy.|copied to clipboard.)/;
+
+ bdd.before(function () {
+ common = new Common(this.remote);
+ headerPage = new HeaderPage(this.remote);
+ settingsPage = new SettingsPage(this.remote);
+ discoverPage = new DiscoverPage(this.remote);
+
+ baseUrl = common.getHostPort();
+
+ var fromTime = '2015-09-19 06:31:44.000';
+ var toTime = '2015-09-23 18:31:44.000';
+
+ // start each test with an empty kibana index
+ return scenarioManager.reload('emptyKibana')
+ // and load a set of makelogs data
+ .then(function loadIfEmptyMakelogs() {
+ return scenarioManager.loadIfEmpty('logstashFunctional');
+ })
+ .then(function (navigateTo) {
+ common.debug('navigateTo');
+ return settingsPage.navigateTo();
+ })
+ .then(function () {
+ common.debug('createIndexPattern');
+ return settingsPage.createIndexPattern();
+ })
+ .then(function () {
+ common.debug('discover');
+ return common.navigateToApp('discover');
+ })
+ .then(function () {
+ common.debug('setAbsoluteRange');
+ return headerPage.setAbsoluteRange(fromTime, toTime);
+ })
+ .catch(common.handleError(this));
+ });
+
+
+ bdd.describe('shared link', function () {
+
+ bdd.it('should show "Share a link" caption', function () {
+ var expectedCaption = 'Share a link';
+ return discoverPage.clickShare()
+ .then(function () {
+ return discoverPage.getShareCaption();
+ })
+ .then(function (actualCaption) {
+ expect(actualCaption).to.be(expectedCaption);
+ })
+ .catch(common.handleError(this));
+ });
+
+
+ bdd.it('should show the correct formatted URL', function () {
+ var expectedUrl = baseUrl
+ + '/app/kibana?_t=1453775307251#'
+ + '/discover?_g=(refreshInterval:(display:Off,pause:!f,value:0),time'
+ + ':(from:%272015-09-19T06:31:44.000Z%27,mode:absolute,to:%272015-09'
+ + '-23T18:31:44.000Z%27))&_a=(columns:!(_source),index:%27logstash-'
+ + '*%27,interval:auto,query:(query_string:(analyze_wildcard:!t,query'
+ + ':%27*%27)),sort:!(%27@timestamp%27,desc))';
+ return discoverPage.getSharedUrl()
+ .then(function (actualUrl) {
+ // strip the timestamp out of each URL
+ expect(actualUrl.replace(/_t=\d{13}/,'_t=TIMESTAMP'))
+
+ .to.be(expectedUrl.replace(/_t=\d{13}/,'_t=TIMESTAMP'));
+ })
+ .catch(common.handleError(this));
+ });
+
+ bdd.it('should show toast message for copy to clipboard', function () {
+ return discoverPage.clickCopyToClipboard()
+ .then(function () {
+ return headerPage.getToastMessage();
+ })
+ .then(function (toastMessage) {
+ expect(toastMessage).to.match(expectedToastMessage);
+ })
+ .then(function () {
+ return headerPage.waitForToastMessageGone();
+ })
+ .catch(common.handleError(this));
+ });
+
+ // TODO: verify clipboard contents
+
+ bdd.it('shorten URL button should produce a short URL', function () {
+ var re = new RegExp(baseUrl + '/goto/[0-9a-f]{32}$');
+ return discoverPage.clickShortenUrl()
+ .then(function () {
+ return common.tryForTime(20 * 1000, function tryingForTime() {
+ return discoverPage.getShortenedUrl()
+ .then(function (actualUrl) {
+ expect(actualUrl).to.match(re);
+ });
+ });
+ })
+ .catch(common.handleError(this));
+ });
+
+ // NOTE: This test has to run immediately after the test above
+ bdd.it('should show toast message for copy to clipboard', function () {
+ return discoverPage.clickCopyToClipboard()
+ .then(function () {
+ return headerPage.getToastMessage();
+ })
+ .then(function (toastMessage) {
+ expect(toastMessage).to.match(expectedToastMessage);
+ })
+ .then(function () {
+ return headerPage.waitForToastMessageGone();
+ })
+ .catch(common.handleError(this));
+ });
+
+
+ });
+ });
+ };
+});
diff --git a/test/functional/apps/discover/index.js b/test/functional/apps/discover/index.js
index eef3af445e9a..c81f441ba4d0 100644
--- a/test/functional/apps/discover/index.js
+++ b/test/functional/apps/discover/index.js
@@ -2,9 +2,11 @@ define(function (require) {
var bdd = require('intern!bdd');
var config = require('intern').config;
var url = require('intern/dojo/node!url');
- var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenarioManager');
+ var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager');
var discoverTest = require('./_discover');
var fieldData = require('./_field_data');
+ var sharedLinks = require('./_shared_links');
+ var collapseExpand = require('./_collapse_expand');
bdd.describe('discover app', function () {
var scenarioManager;
@@ -25,5 +27,9 @@ define(function (require) {
fieldData(bdd, scenarioManager);
+ sharedLinks(bdd, scenarioManager);
+
+ collapseExpand(bdd, scenarioManager);
+
});
});
diff --git a/test/functional/apps/settings/_advanced_settings.js b/test/functional/apps/settings/_advanced_settings.js
index 94eaa54a68a2..eee2b9c32418 100644
--- a/test/functional/apps/settings/_advanced_settings.js
+++ b/test/functional/apps/settings/_advanced_settings.js
@@ -1,5 +1,5 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
diff --git a/test/functional/apps/settings/_creation_form_changes.js b/test/functional/apps/settings/_creation_form_changes.js
index aadd1202cc7a..d493b0ef3a3a 100644
--- a/test/functional/apps/settings/_creation_form_changes.js
+++ b/test/functional/apps/settings/_creation_form_changes.js
@@ -1,5 +1,5 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
diff --git a/test/functional/apps/settings/_index_pattern_create_delete.js b/test/functional/apps/settings/_index_pattern_create_delete.js
index 80c57c5e2b34..50252e46c475 100644
--- a/test/functional/apps/settings/_index_pattern_create_delete.js
+++ b/test/functional/apps/settings/_index_pattern_create_delete.js
@@ -1,5 +1,5 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
diff --git a/test/functional/apps/settings/_index_pattern_popularity.js b/test/functional/apps/settings/_index_pattern_popularity.js
index b13e4332e6ca..bc93b4847fb1 100644
--- a/test/functional/apps/settings/_index_pattern_popularity.js
+++ b/test/functional/apps/settings/_index_pattern_popularity.js
@@ -1,5 +1,5 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
diff --git a/test/functional/apps/settings/_index_pattern_results_sort.js b/test/functional/apps/settings/_index_pattern_results_sort.js
index a6c89434ce4a..e1ee0202a75b 100644
--- a/test/functional/apps/settings/_index_pattern_results_sort.js
+++ b/test/functional/apps/settings/_index_pattern_results_sort.js
@@ -1,6 +1,6 @@
define(function (require) {
var config = require('intern').config;
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
diff --git a/test/functional/apps/settings/_initial_state.js b/test/functional/apps/settings/_initial_state.js
index 1b484b5cb664..5770e95ce1f9 100644
--- a/test/functional/apps/settings/_initial_state.js
+++ b/test/functional/apps/settings/_initial_state.js
@@ -1,6 +1,6 @@
define(function (require) {
var expect = require('intern/dojo/node!expect.js');
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/settings/index.js b/test/functional/apps/settings/index.js
index 83a1bb576c42..467ee268377a 100644
--- a/test/functional/apps/settings/index.js
+++ b/test/functional/apps/settings/index.js
@@ -2,7 +2,7 @@ define(function (require) {
var bdd = require('intern!bdd');
var config = require('intern').config;
var url = require('intern/dojo/node!url');
- var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenarioManager');
+ var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager');
var initialStateTest = require('./_initial_state');
var creationChangesTest = require('./_creation_form_changes');
diff --git a/test/functional/apps/visualize/_area_chart.js b/test/functional/apps/visualize/_area_chart.js
index 1abb4f7062f7..94d05758e9b8 100644
--- a/test/functional/apps/visualize/_area_chart.js
+++ b/test/functional/apps/visualize/_area_chart.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_chart_types.js b/test/functional/apps/visualize/_chart_types.js
index 74b7853a84f1..e60f27b1604c 100644
--- a/test/functional/apps/visualize/_chart_types.js
+++ b/test/functional/apps/visualize/_chart_types.js
@@ -1,7 +1,7 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
+ var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_data_table.js b/test/functional/apps/visualize/_data_table.js
index 7592e228f489..aa494d7c677d 100644
--- a/test/functional/apps/visualize/_data_table.js
+++ b/test/functional/apps/visualize/_data_table.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_line_chart.js b/test/functional/apps/visualize/_line_chart.js
index 48e692b6a70c..2f7e813468ab 100644
--- a/test/functional/apps/visualize/_line_chart.js
+++ b/test/functional/apps/visualize/_line_chart.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_metric_chart.js b/test/functional/apps/visualize/_metric_chart.js
index 720be22184a4..7365fabdcbc3 100644
--- a/test/functional/apps/visualize/_metric_chart.js
+++ b/test/functional/apps/visualize/_metric_chart.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_pie_chart.js b/test/functional/apps/visualize/_pie_chart.js
index 50f7f2b10091..4aa94692fe9b 100644
--- a/test/functional/apps/visualize/_pie_chart.js
+++ b/test/functional/apps/visualize/_pie_chart.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_tile_map.js b/test/functional/apps/visualize/_tile_map.js
index 0f2affc7898b..4e22b92e2a26 100644
--- a/test/functional/apps/visualize/_tile_map.js
+++ b/test/functional/apps/visualize/_tile_map.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/_vertical_bar_chart.js b/test/functional/apps/visualize/_vertical_bar_chart.js
index f3c18a20eca9..c6ae977fe3fa 100644
--- a/test/functional/apps/visualize/_vertical_bar_chart.js
+++ b/test/functional/apps/visualize/_vertical_bar_chart.js
@@ -1,9 +1,9 @@
define(function (require) {
- var Common = require('../../../support/pages/Common');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
- var DiscoverPage = require('../../../support/pages/DiscoverPage');
- var VisualizePage = require('../../../support/pages/VisualizePage');
+ var DiscoverPage = require('../../../support/pages/discover_page');
+ var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
return function (bdd, scenarioManager) {
diff --git a/test/functional/apps/visualize/index.js b/test/functional/apps/visualize/index.js
index c2c014dc6877..4492d165c3af 100644
--- a/test/functional/apps/visualize/index.js
+++ b/test/functional/apps/visualize/index.js
@@ -4,9 +4,9 @@ define(function (require) {
var config = require('intern').config;
var url = require('intern/dojo/node!url');
var _ = require('intern/dojo/node!lodash');
- var Common = require('../../../support/pages/Common');
- var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenarioManager');
- var HeaderPage = require('../../../support/pages/HeaderPage');
+ var Common = require('../../../support/pages/common');
+ var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager');
+ var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
var chartTypeTest = require('./_chart_types');
diff --git a/test/functional/status_page/index.js b/test/functional/status_page/index.js
index 8abad70f7a55..c5bff5ff7c9e 100644
--- a/test/functional/status_page/index.js
+++ b/test/functional/status_page/index.js
@@ -2,7 +2,7 @@ define(function (require) {
var bdd = require('intern!bdd');
var expect = require('intern/dojo/node!expect.js');
var config = require('intern').config;
- var Common = require('../../support/pages/Common');
+ var Common = require('../../support/pages/common');
bdd.describe('status page', function () {
var common;
diff --git a/test/mocha.opts b/test/mocha.opts
new file mode 100644
index 000000000000..72451b6e7f81
--- /dev/null
+++ b/test/mocha.opts
@@ -0,0 +1 @@
+--require test/mocha_setup.js
diff --git a/test/mocha_setup.js b/test/mocha_setup.js
new file mode 100644
index 000000000000..8404ab88be2f
--- /dev/null
+++ b/test/mocha_setup.js
@@ -0,0 +1,41 @@
+var sinon = require('sinon');
+var autoRelease = require('auto-release-sinon');
+
+require('babel/register')(require('../src/optimize/babelOptions').node);
+
+// hook into the global afterEach variable to allow autoReleaseSinon to register
+// an afterEach handler before mocha has exposed itself to the test files.
+//
+// This works by telling autoReleaseSinon to use a fake "afterEach" function.
+// Rather than actually record an afterEach handler the function tracks all of
+// the calls it received and queues them up in queuedAfterEachArgs.
+//
+// The global "afterEach" variable is also tracked, and once it is assigned by mocha
+// the variable global is reconfigured to point directly to the new value (from mocha)
+// and all of the queued invocations are executed.
+var queuedAfterEachArgs = [];
+Object.defineProperty(global, 'afterEach', {
+ configurable: true,
+ get() { return undefined; },
+ set(afterEach) {
+ Object.defineProperty(global, 'afterEach', {
+ configurable: true,
+ writable: true,
+ value: afterEach
+ });
+
+ queuedAfterEachArgs.forEach(function (args) {
+ afterEach.apply(null, args);
+ });
+
+ return global.afterEach;
+ }
+});
+
+autoRelease.setupAutoRelease(sinon, function () {
+ if (!global.afterEach) {
+ queuedAfterEachArgs.push(Array.prototype.slice.call(arguments));
+ } else {
+ global.afterEach.apply(this, arguments);
+ }
+});
diff --git a/test/support/pages/Common.js b/test/support/pages/common.js
similarity index 98%
rename from test/support/pages/Common.js
rename to test/support/pages/common.js
index 070f4e041c89..60212a0c9982 100644
--- a/test/support/pages/Common.js
+++ b/test/support/pages/common.js
@@ -1,4 +1,4 @@
-// in test/support/pages/Common.js
+// in test/support/pages/common.js
define(function (require) {
var config = require('intern').config;
var Promise = require('bluebird');
@@ -51,6 +51,10 @@ define(function (require) {
Common.prototype = {
constructor: Common,
+ getHostPort: function getHostPort() {
+ return getUrl.baseUrl(config.servers.kibana);
+ },
+
navigateToApp: function (appName, testStatusPage) {
var self = this;
// navUrl includes user:password@ for use with Shield
diff --git a/test/support/pages/DiscoverPage.js b/test/support/pages/discover_page.js
similarity index 72%
rename from test/support/pages/DiscoverPage.js
rename to test/support/pages/discover_page.js
index cbaa0073f43a..2a180cdb4bc9 100644
--- a/test/support/pages/DiscoverPage.js
+++ b/test/support/pages/discover_page.js
@@ -1,7 +1,7 @@
-// in test/support/pages/DiscoverPage.js
+// in test/support/pages/discover_page.js
define(function (require) {
var config = require('intern').config;
- var Common = require('./Common');
+ var Common = require('./common');
var defaultTimeout = config.timeouts.default;
var common;
@@ -175,6 +175,78 @@ define(function (require) {
return thisTime
.findAllByCssSelector('mark')
.getVisibleText();
+ },
+
+ clickShare: function clickShare() {
+ return thisTime
+ .findByCssSelector('button[aria-label="Share Search"]')
+ .click();
+ },
+
+ clickShortenUrl: function clickShortenUrl() {
+ return thisTime
+ .findByCssSelector('button.shorten-button')
+ .click();
+ },
+
+ clickCopyToClipboard: function clickCopyToClipboard() {
+ return thisTime
+ .findByCssSelector('button.clipboard-button')
+ .click();
+ },
+
+ getShareCaption: function getShareCaption() {
+ return thisTime
+ .findByCssSelector('div.form-group > label')
+ .getVisibleText();
+ },
+
+ getSharedUrl: function getSharedUrl() {
+ return thisTime
+ .findByCssSelector('.url')
+ .getProperty('baseURI');
+ },
+
+ getShortenedUrl: function getShortenedUrl() {
+ return thisTime
+ .findByCssSelector('.url')
+ .getProperty('value');
+ },
+
+ clickLegendExpand: function clickLegendExpand() {
+ return thisTime
+ .findByCssSelector('.fa-chevron-left')
+ .click();
+ },
+
+ clickLegendCollapse: function clickLegendCollapse() {
+ return thisTime
+ .findByCssSelector('div.legend-toggle > i.fa-chevron-right')
+ .click();
+ },
+
+ getLegendWidth: function getLegendWidth() {
+ return thisTime
+ .findByCssSelector('.legend-col-wrapper')
+ .getProperty('clientWidth');
+ },
+
+ clickSidebarExpand: function clickSidebarExpand() {
+ return thisTime
+ .findByCssSelector('.chevron-cont')
+ .click();
+ },
+
+ clickSidebarCollapse: function clickSidebarCollapse() {
+ return thisTime
+ .findByCssSelector('.chevron-cont')
+ .click();
+ },
+
+ getSidebarWidth: function getSidebarWidth() {
+ return thisTime
+ .findByCssSelector('.sidebar-list')
+ .getProperty('clientWidth');
}
};
diff --git a/test/support/pages/HeaderPage.js b/test/support/pages/header_page.js
similarity index 98%
rename from test/support/pages/HeaderPage.js
rename to test/support/pages/header_page.js
index 5a78ebb7736e..9f92f652644d 100644
--- a/test/support/pages/HeaderPage.js
+++ b/test/support/pages/header_page.js
@@ -1,7 +1,7 @@
-// in test/support/pages/HeaderPage.js
+// in test/support/pages/header_page.js
define(function (require) {
var config = require('intern').config;
- var Common = require('./Common');
+ var Common = require('./common');
var common;
diff --git a/test/support/pages/settings_page.js b/test/support/pages/settings_page.js
index a1ec289a2f5c..1ade61c8c81d 100644
--- a/test/support/pages/settings_page.js
+++ b/test/support/pages/settings_page.js
@@ -2,7 +2,7 @@
define(function (require) {
var config = require('intern').config;
var Promise = require('bluebird');
- var Common = require('./Common');
+ var Common = require('./common');
var defaultTimeout = config.timeouts.default;
var common;
diff --git a/test/support/pages/VisualizePage.js b/test/support/pages/visualize_page.js
similarity index 99%
rename from test/support/pages/VisualizePage.js
rename to test/support/pages/visualize_page.js
index e72248a9d449..2ac4fbb2484d 100644
--- a/test/support/pages/VisualizePage.js
+++ b/test/support/pages/visualize_page.js
@@ -2,7 +2,7 @@ define(function (require) {
var config = require('intern').config;
var registerSuite = require('intern!object');
- var Common = require('./Common');
+ var Common = require('./common');
var defaultTimeout = config.timeouts.default;
var common;
diff --git a/test/unit/api/ingest/index.js b/test/unit/api/ingest/index.js
index 72897d9cb98b..dfecb12512c5 100644
--- a/test/unit/api/ingest/index.js
+++ b/test/unit/api/ingest/index.js
@@ -1,7 +1,7 @@
define(function (require) {
var bdd = require('intern!bdd');
var serverConfig = require('intern/dojo/node!../../../serverConfig');
- var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenarioManager');
+ var ScenarioManager = require('intern/dojo/node!../../../fixtures/scenario_manager');
var request = require('intern/dojo/node!supertest-as-promised');
var url = require('intern/dojo/node!url');
var _ = require('intern/dojo/node!lodash');
diff --git a/test/utils/getUrl.js b/test/utils/getUrl.js
index 5e69bb870716..8dd676d98b62 100644
--- a/test/utils/getUrl.js
+++ b/test/utils/getUrl.js
@@ -8,7 +8,8 @@ var url = require('url');
* {
* protocol: 'http',
* hostname: 'localhost',
-* port: 9220
+* port: 9220,
+* auth: shield.kibanaUser.username + ':' + shield.kibanaUser.password
* }
* @param {object} app The params to append
* example:
@@ -31,3 +32,7 @@ getUrl.noAuth = function getUrlNoAuth(config, app) {
});
return getUrl(config, app);
};
+
+getUrl.baseUrl = function getBaseUrl(config) {
+ return url.format(_.pick(config, 'protocol', 'hostname', 'port'));
+};