Merge pull request #6955 from elastic/implement/babelForFunctionalTests

[test] setup babel for the functional tests
This commit is contained in:
Spencer 2016-04-28 09:52:26 -05:00
commit f161dc9323
33 changed files with 514 additions and 649 deletions

View file

@ -189,6 +189,7 @@
"simple-git": "1.8.0",
"sinon": "1.17.2",
"source-map": "0.4.4",
"source-map-support": "0.4.0",
"supertest-as-promised": "2.0.2"
},
"engines": {

View file

@ -1,24 +1,20 @@
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');
import {
bdd,
common,
discoverPage,
headerPage,
scenarioManager,
settingsPage,
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
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';
@ -89,5 +85,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,22 +1,18 @@
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');
import {
bdd,
scenarioManager,
common,
discoverPage,
settingsPage,
headerPage,
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('discover app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
@ -275,5 +271,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,22 +1,18 @@
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');
import {
bdd,
common,
discoverPage,
headerPage,
scenarioManager,
settingsPage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('discover app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
@ -263,5 +259,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,16 +1,10 @@
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');
import { bdd, common, discoverPage, headerPage, settingsPage, scenarioManager } from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
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.';
@ -19,11 +13,6 @@ define(function (require) {
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';
@ -141,5 +130,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,20 +1,10 @@
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/scenario_manager');
var discoverTest = require('./_discover');
var fieldData = require('./_field_data');
var sharedLinks = require('./_shared_links');
var collapseExpand = require('./_collapse_expand');
import { bdd, remote, scenarioManager, defaultTimeout } from '../../../support';
(function () {
bdd.describe('discover app', function () {
var remote;
var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch));
this.timeout = config.timeouts.default;
this.timeout = defaultTimeout;
bdd.before(function () {
remote = this.remote;
return remote.setWindowSize(1200,800);
});
@ -22,13 +12,9 @@ define(function (require) {
return scenarioManager.unload('logstashFunctional');
});
discoverTest(bdd, scenarioManager);
fieldData(bdd, scenarioManager);
sharedLinks(bdd, scenarioManager);
collapseExpand(bdd, scenarioManager);
require('./_discover');
require('./_field_data');
require('./_shared_links');
require('./_collapse_expand');
});
});
}());

View file

@ -1,17 +1,16 @@
define(function (require) {
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
settingsPage,
scenarioManager
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('creating and deleting default index', function describeIndexTests() {
var common;
var settingsPage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
return scenarioManager.reload('emptyKibana')
.then(function () {
return settingsPage.navigateTo();
@ -40,5 +39,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,18 +1,15 @@
define(function (require) {
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
settingsPage,
scenarioManager,
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('user input reactions', function () {
var common;
var settingsPage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
});
bdd.beforeEach(function () {
return scenarioManager.reload('emptyKibana')
.then(function () {
@ -56,5 +53,5 @@ define(function (require) {
.catch(common.handleError(this));
});
});
};
});
}());
}());

View file

@ -1,19 +1,17 @@
define(function (require) {
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
remote,
scenarioManager,
settingsPage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('creating and deleting default index', function describeIndexTests() {
var common;
var settingsPage;
var remote;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
remote = this.remote;
return scenarioManager.reload('emptyKibana')
.then(function () {
return settingsPage.navigateTo();
@ -101,5 +99,5 @@ define(function (require) {
});
});
});
};
});
}());
}());

View file

@ -1,19 +1,16 @@
define(function (require) {
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
scenarioManager,
settingsPage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('index result popularity', function describeIndexTests() {
var common;
var settingsPage;
var remote;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
remote = this.remote;
return scenarioManager.reload('emptyKibana')
.then(function () {
return settingsPage.navigateTo();
@ -111,5 +108,5 @@ define(function (require) {
});
}); // end 'change popularity'
}); // end index result popularity
};
});
}());
}());

View file

@ -1,21 +1,17 @@
define(function (require) {
var config = require('intern').config;
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
defaultTimeout,
settingsPage,
scenarioManager,
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('index result field sort', function describeIndexTests() {
var common;
var settingsPage;
var remote;
var defaultTimeout = config.timeouts.default;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
remote = this.remote;
return scenarioManager.reload('emptyKibana');
});
@ -133,5 +129,5 @@ define(function (require) {
});
}); // end describe pagination
}); // end index result field sort
};
});
}());
}());

View file

@ -1,17 +1,16 @@
define(function (require) {
var expect = require('intern/dojo/node!expect.js');
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
import {
bdd,
common,
scenarioManager,
settingsPage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('initial state', function () {
var common;
var settingsPage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
return scenarioManager.reload('emptyKibana')
.then(function () {
return settingsPage.navigateTo();
@ -61,5 +60,5 @@ define(function (require) {
.catch(common.handleError(this));
});
});
};
});
}());
}());

View file

@ -1,19 +1,8 @@
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/scenario_manager');
var initialStateTest = require('./_initial_state');
var creationChangesTest = require('./_creation_form_changes');
var indexPatternCreateDeleteTest = require('./_index_pattern_create_delete');
var indexPatternResultsSortTest = require('./_index_pattern_results_sort');
var indexPatternPopularityTest = require('./_index_pattern_popularity');
var advancedSettingsTest = require('./_advanced_settings');
import { bdd, defaultTimeout, scenarioManager } from '../../../support';
(function () {
bdd.describe('settings app', function () {
var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch));
this.timeout = config.timeouts.default;
this.timeout = defaultTimeout;
// on setup, we create an settingsPage instance
// that we will use for all the tests
@ -31,11 +20,11 @@ define(function (require) {
});
});
advancedSettingsTest(bdd, scenarioManager);
initialStateTest(bdd, scenarioManager);
creationChangesTest(bdd, scenarioManager);
indexPatternCreateDeleteTest(bdd, scenarioManager);
indexPatternResultsSortTest(bdd, scenarioManager);
indexPatternPopularityTest(bdd, scenarioManager);
require('./_initial_state');
require('./_creation_form_changes');
require('./_index_pattern_create_delete');
require('./_index_pattern_results_sort');
require('./_index_pattern_popularity');
require('./_advanced_settings');
});
});
}());

View file

@ -1,29 +1,17 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
var remote;
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
remote = this.remote;
});
bdd.before(function () {
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
@ -210,5 +198,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,20 +1,17 @@
define(function (require) {
var Common = require('../../../support/pages/common');
var SettingsPage = require('../../../support/pages/settings_page');
var VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var settingsPage;
var visualizePage;
bdd.before(function () {
common = new Common(this.remote);
settingsPage = new SettingsPage(this.remote);
visualizePage = new VisualizePage(this.remote);
return scenarioManager.reload('emptyKibana')
.then(function () {
common.debug('navigateTo');
@ -51,5 +48,5 @@ define(function (require) {
});
});
});
};
});
}());
}());

View file

@ -1,33 +1,21 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
var remote;
var fromTime;
var toTime;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
remote = this.remote;
fromTime = '2015-09-19 06:31:44.000';
toTime = '2015-09-23 18:31:44.000';
return scenarioManager.reload('emptyKibana')
.then(function () {
common.debug('navigateTo');
@ -133,5 +121,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,27 +1,18 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
var remote;
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
remote = this.remote;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
@ -161,5 +152,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,31 +1,21 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
var remote;
var fromTime;
var toTime;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
remote = this.remote;
fromTime = '2015-09-19 06:31:44.000';
toTime = '2015-09-23 18:31:44.000';
var testSubName = 'MetricChart';
common.debug('Start of test' + testSubName + 'Visualization');
@ -312,5 +302,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,27 +1,18 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
var remote;
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
remote = this.remote;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
@ -161,5 +152,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,31 +1,21 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
// var remote;
var fromTime;
var toTime;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
// remote = this.remote;
fromTime = '2015-09-19 06:31:44.000';
toTime = '2015-09-23 18:31:44.000';
return scenarioManager.reload('emptyKibana')
.then(function () {
@ -147,5 +137,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,32 +1,21 @@
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 VisualizePage = require('../../../support/pages/visualize_page');
var expect = require('intern/dojo/node!expect.js');
import {
bdd,
common,
headerPage,
scenarioManager,
settingsPage,
visualizePage
} from '../../../support';
return function (bdd, scenarioManager) {
(function () {
var expect = require('expect.js');
(function () {
bdd.describe('visualize app', function describeIndexTests() {
var common;
var headerPage;
var settingsPage;
var discoverPage;
var visualizePage;
// var remote;
var fromTime;
var toTime;
var fromTime = '2015-09-19 06:31:44.000';
var toTime = '2015-09-23 18:31:44.000';
bdd.before(function () {
common = new Common(this.remote);
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
discoverPage = new DiscoverPage(this.remote);
visualizePage = new VisualizePage(this.remote);
// remote = this.remote;
fromTime = '2015-09-19 06:31:44.000';
toTime = '2015-09-23 18:31:44.000';
return scenarioManager.reload('emptyKibana')
.then(function () {
common.debug('navigateTo');
@ -169,5 +158,5 @@ define(function (require) {
});
});
};
});
}());
}());

View file

@ -1,39 +1,8 @@
define(function (require) {
var bdd = require('intern!bdd');
var expect = require('intern/dojo/node!expect.js');
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/scenario_manager');
var HeaderPage = require('../../../support/pages/header_page');
var SettingsPage = require('../../../support/pages/settings_page');
var chartTypeTest = require('./_chart_types');
var areaChartTest = require('./_area_chart');
var lineChartTest = require('./_line_chart');
var dataTableTest = require('./_data_table');
var metricChartTest = require('./_metric_chart');
var pieChartTest = require('./_pie_chart');
var tileMapTest = require('./_tile_map');
var verticalBarChartTest = require('./_vertical_bar_chart');
import { bdd, remote, common, defaultTimeout, scenarioManager } from '../../../support';
(function () {
bdd.describe('visualize app', function () {
var common;
var remote;
var headerPage;
var settingsPage;
var scenarioManager = new ScenarioManager(url.format(config.servers.elasticsearch));
this.timeout = config.timeouts.default;
// on setup, we create an settingsPage instance
// that we will use for all the tests
bdd.before(function () {
common = new Common(this.remote);
remote = this.remote;
headerPage = new HeaderPage(this.remote);
settingsPage = new SettingsPage(this.remote);
});
this.timeout = defaultTimeout;
bdd.before(function () {
var self = this;
@ -48,21 +17,13 @@ define(function (require) {
return scenarioManager.unload('logstashFunctional');
});
chartTypeTest(bdd, scenarioManager);
areaChartTest(bdd, scenarioManager);
lineChartTest(bdd, scenarioManager);
dataTableTest(bdd, scenarioManager);
metricChartTest(bdd, scenarioManager);
pieChartTest(bdd, scenarioManager);
tileMapTest(bdd, scenarioManager);
verticalBarChartTest(bdd, scenarioManager);
require('./_chart_types');
require('./_area_chart');
require('./_line_chart');
require('./_data_table');
require('./_metric_chart');
require('./_pie_chart');
require('./_tile_map');
require('./_vertical_bar_chart');
});
});
}());

29
test/functional/index.js Normal file
View file

@ -0,0 +1,29 @@
define(function (require) {
require('intern/dojo/node!../support/env_setup');
const bdd = require('intern!bdd');
const intern = require('intern');
const earliestBeforeCbs = [];
function onEarliestBefore(cb) {
earliestBeforeCbs.push(cb);
}
global.__kibana__intern__ = { intern, bdd, onEarliestBefore };
bdd.describe('kibana', function () {
bdd.before(function () {
earliestBeforeCbs.forEach(cb => {
cb.call(this);
});
});
require([
'intern/dojo/node!../support/index',
'intern/dojo/node!./apps/discover',
'intern/dojo/node!./status_page',
'intern/dojo/node!./apps/settings',
'intern/dojo/node!./apps/visualize'
], function () {});
});
});

View file

@ -1,15 +1,10 @@
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');
import { bdd, common } from '../../support';
(function () {
var expect = require('expect.js');
bdd.describe('status page', function () {
var common;
bdd.before(function () {
common = new Common(this.remote);
// load the status page
return common.navigateToApp('status_page', false);
});
@ -27,4 +22,4 @@ define(function (require) {
.catch(common.handleError(self));
});
});
});
}());

View file

@ -14,21 +14,12 @@ define(function (require) {
}],
tunnelOptions: serverConfig.servers.webdriver,
functionalSuites: [
'test/functional/status_page/index',
'test/functional/apps/settings/index',
'test/functional/apps/discover/index',
'test/functional/apps/visualize/index'
'test/functional/index'
],
excludeInstrumentation: /(fixtures|node_modules)\//,
loaderOptions: {
paths: {
'bluebird': './node_modules/bluebird/js/browser/bluebird.js',
'moment': './node_modules/moment/moment.js'
}
},
timeouts: {
default: 90000, // this is how long a test can run before timing out
findTimeout: 10000 // this is how long we try to find elements on page
},
excludeInstrumentation: /.*/,
defaultTimeout: 90000,
defaultFindTimeout: 10000 // this is how long we try to find elements on page
}, serverConfig);
});

10
test/support/env_setup.js Normal file
View file

@ -0,0 +1,10 @@
var defaults = require('lodash').defaults;
const babelOptions = require('../../src/optimize/babel_options');
require('source-map-support').install();
require('babel/register')(defaults({
ignore: [
'test/fixtures/scenarios/**/*',
'node_modules/**',
]
}, babelOptions.node));

48
test/support/index.js Normal file
View file

@ -0,0 +1,48 @@
import url from 'url';
import ScenarioManager from '../fixtures/scenario_manager';
import Common from './pages/common';
import DiscoverPage from './pages/discover_page';
import SettingsPage from './pages/settings_page';
import HeaderPage from './pages/header_page';
import VisualizePage from './pages/visualize_page';
import ShieldPage from './pages/shield_page';
const kbnInternVars = global.__kibana__intern__;
exports.bdd = kbnInternVars.bdd;
exports.intern = kbnInternVars.intern;
exports.config = exports.intern.config;
exports.defaultTimeout = exports.config.defaultTimeout;
exports.defaultFindTimeout = exports.config.defaultFindTimeout;
exports.scenarioManager = new ScenarioManager(url.format(exports.config.servers.elasticsearch));
defineDelayedExport('remote', (suite) => suite.remote);
defineDelayedExport('common', () => new Common());
defineDelayedExport('discoverPage', () => new DiscoverPage());
defineDelayedExport('headerPage', () => new HeaderPage());
defineDelayedExport('settingsPage', () => new SettingsPage());
defineDelayedExport('visualizePage', () => new VisualizePage());
defineDelayedExport('shieldPage', () => new ShieldPage());
// creates an export for values that aren't actually avaialable until
// until tests start to run. These getters will throw errors if the export
// is accessed before it's available, hopefully making debugging easier.
// Once the first before() handler is called the onEarliestBefore() handlers
// will fire and rewrite all of these exports to be their correct value.
function defineDelayedExport(name, define) {
Object.defineProperty(exports, name, {
configurable: true,
get() {
throw new TypeError(
'remote is not available until tests start to run. Move your ' +
'usage of the import inside a test setup hook or a test itself.'
);
}
});
kbnInternVars.onEarliestBefore(function () {
Object.defineProperty(exports, name, {
value: define(this),
});
});
}

View file

@ -1,18 +1,15 @@
// in test/support/pages/common.js
define(function (require) {
var config = require('intern').config;
import { common, config, defaultFindTimeout, remote, shieldPage } from '../';
export default (function () {
var Promise = require('bluebird');
var moment = require('moment');
var testSubjSelector = require('intern/dojo/node!@spalger/test-subj-selector');
var getUrl = require('intern/dojo/node!../../utils/get_url');
var fs = require('intern/dojo/node!fs');
var _ = require('intern/dojo/node!lodash');
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;
var testSubjSelector = require('@spalger/test-subj-selector');
var getUrl = require('../../utils/get_url');
var fs = require('fs');
var _ = require('lodash');
var parse = require('url').parse;
var format = require('url').format;
var path = require('path');
function injectTimestampQuery(func, url) {
var formatted = modifyQueryString(url, function (parsed) {
@ -39,19 +36,15 @@ define(function (require) {
return format(_.pick(parsed, 'protocol', 'hostname', 'port', 'pathname', 'query', 'hash', 'auth'));
}
function Common(remote) {
function Common() {
this.remote = remote;
if (remote.get.wrapper !== injectTimestampQuery) {
this.remote.get = _.wrap(this.remote.get, injectTimestampQuery);
remote.get.wrapper = injectTimestampQuery;
this.remote.getCurrentUrl = _.wrap(this.remote.getCurrentUrl, removeTimestampQuery);
}
shieldPage = new ShieldPage(this.remote);
}
var defaultTimeout = config.timeouts.findTimeout;
Common.prototype = {
constructor: Common,
@ -113,7 +106,7 @@ define(function (require) {
var navSuccessful = new RegExp(appUrl).test(currentUrl);
if (!navSuccessful) {
var msg = 'App failed to load: ' + appName +
' in ' + defaultTimeout + 'ms' +
' in ' + defaultFindTimeout + 'ms' +
' appUrl = ' + appUrl +
' currentUrl = ' + currentUrl;
self.debug(msg);
@ -172,7 +165,7 @@ define(function (require) {
getApp: function () {
var self = this;
return self.remote.setFindTimeout(defaultTimeout)
return self.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.app-wrapper .application')
.then(function () {
return self.runScript(function () {
@ -227,7 +220,7 @@ define(function (require) {
},
try(block) {
return this.tryForTime(defaultTimeout, block);
return this.tryForTime(defaultFindTimeout, block);
},
log: function log(logString) {
@ -256,7 +249,7 @@ define(function (require) {
return self.saveScreenshot(filename)
.finally(function () {
throw new Error(reason);
throw reason;
});
};
},
@ -279,10 +272,10 @@ define(function (require) {
findTestSubject: function findTestSubject(selector) {
this.debug('in findTestSubject: ' + testSubjSelector(selector));
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector(testSubjSelector(selector));
}
};
return Common;
});
}());

View file

@ -1,16 +1,11 @@
// in test/support/pages/discover_page.js
define(function (require) {
var config = require('intern').config;
var Common = require('./common');
import { remote, common, defaultFindTimeout } from '../';
var defaultTimeout = config.timeouts.findTimeout;
var common;
export default (function () {
var thisTime;
function DiscoverPage(remote) {
function DiscoverPage() {
this.remote = remote;
common = new Common(this.remote);
thisTime = this.remote.setFindTimeout(defaultTimeout);
thisTime = this.remote.setFindTimeout(defaultFindTimeout);
}
DiscoverPage.prototype = {
@ -221,4 +216,4 @@ define(function (require) {
};
return DiscoverPage;
});
}());

View file

@ -1,27 +1,21 @@
// in test/support/pages/header_page.js
define(function (require) {
var config = require('intern').config;
var Common = require('./common');
import { common, remote, defaultFindTimeout } from '../';
var common;
export default (function () {
// the page object is created as a constructor
// so we can provide the remote Command object
// at runtime
function HeaderPage(remote) {
function HeaderPage() {
this.remote = remote;
common = new Common(this.remote);
}
var defaultTimeout = config.timeouts.findTimeout;
HeaderPage.prototype = {
constructor: HeaderPage,
clickSelector: function (selector) {
var self = this.remote;
var self = this;
return common.try(function () {
return self.setFindTimeout(defaultTimeout)
return self.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector(selector)
.then(function (tab) {
return tab.click();
@ -50,31 +44,31 @@ define(function (require) {
},
clickTimepicker: function clickTimepicker() {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findDisplayedByClassName('navbar-timepicker-time-desc').click();
},
clickAbsoluteButton: function clickAbsoluteButton() {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByLinkText('Absolute').click();
},
setFromTime: function setFromTime(timeString) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model=\'absolute.from\']')
.clearValue()
.type(timeString);
},
setToTime: function setToTime(timeString) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model=\'absolute.to\']')
.clearValue()
.type(timeString);
},
clickGoButton: function clickGoButton() {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByClassName('kbn-timepicker-go')
.click();
},
@ -105,13 +99,13 @@ define(function (require) {
},
collapseTimepicker: function collapseTimepicker() {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.fa.fa-chevron-circle-up')
.click();
},
getToastMessage: function getToastMessage() {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector('kbn-truncated.toast-message.ng-isolate-scope')
.getVisibleText();
},
@ -119,13 +113,13 @@ define(function (require) {
waitForToastMessageGone: function waitForToastMessageGone() {
var self = this;
return self.remote.setFindTimeout(defaultTimeout)
return self.remote.setFindTimeout(defaultFindTimeout)
.waitForDeletedByCssSelector('kbn-truncated.toast-message');
},
clickToastOK: function clickToastOK() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button[ng-if="notif.accept"]')
.click();
},
@ -133,11 +127,11 @@ define(function (require) {
getSpinnerDone: function getSpinnerDone() {
var self = this;
return this.remote
.setFindTimeout(defaultTimeout * 10)
.setFindTimeout(defaultFindTimeout * 10)
.findByCssSelector('.spinner.ng-hide');
}
};
return HeaderPage;
});
}());

View file

@ -1,19 +1,13 @@
// in test/support/pages/settings_page.js
define(function (require) {
var config = require('intern').config;
var Promise = require('bluebird');
var Common = require('./common');
import Bluebird from 'bluebird';
import { common, remote, defaultFindTimeout } from '../';
var defaultTimeout = config.timeouts.findTimeout;
var common;
function settingsPage(remote) {
export default (function () {
function SettingsPage() {
this.remote = remote;
common = new Common(this.remote);
}
settingsPage.prototype = {
constructor: settingsPage,
SettingsPage.prototype = {
constructor: SettingsPage,
clickAdvancedTab: function () {
common.debug('in clickAdvancedTab');
@ -40,7 +34,7 @@ define(function (require) {
return common.sleep(1000);
})
.then(function setAdvancedSettingsClickPropertyValue(selectList) {
return self.remote.setFindTimeout(defaultTimeout)
return self.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('option[label="' + propertyValue + '"]')
.click();
})
@ -64,24 +58,24 @@ define(function (require) {
getTimeBasedEventsCheckbox: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model="index.isTimeBased"]');
},
getTimeBasedIndexPatternCheckbox: function (timeout) {
timeout = timeout || defaultTimeout;
timeout = timeout || defaultFindTimeout;
// fail faster since we're sometimes checking that it doesn't exist
return this.remote.setFindTimeout(timeout)
.findByCssSelector('input[ng-model="index.nameIsPattern"]');
},
getIndexPatternField: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('[ng-model="index.name"]');
},
getTimeFieldNameField: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector('select[ng-model="index.timeField"]');
},
@ -108,46 +102,46 @@ define(function (require) {
},
getTimeFieldOption: function (selection) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector('option[label="' + selection + '"]').click();
},
getCreateButton: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector('.btn');
},
clickCreateButton: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.btn').click();
},
clickDefaultIndexButton: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button.btn.btn-warning.ng-scope').click();
},
clickDeletePattern: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button.btn.btn-danger.ng-scope').click();
},
getIndexPageHeading: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('h1.title.ng-binding.ng-isolate-scope');
},
getConfigureHeader: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('h1');
},
getTableHeader: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('table.table.table-condensed thead tr th');
},
sortBy: function (columnName) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('table.table.table-condensed thead tr th span')
.then(function (chartTypes) {
function getChartType(chart) {
@ -160,12 +154,12 @@ define(function (require) {
}
var getChartTypesPromises = chartTypes.map(getChartType);
return Promise.all(getChartTypesPromises);
return Bluebird.all(getChartTypesPromises);
});
},
getTableRow: function (rowNumber, colNumber) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
// passing in zero-based index, but adding 1 for css 1-based indexes
.findByCssSelector('div.agg-table-paginated table.table.table-condensed tbody tr:nth-child(' +
(rowNumber + 1) + ') td.ng-scope:nth-child(' +
@ -178,7 +172,7 @@ define(function (require) {
var selector = 'li.kbn-settings-tab.active a small';
return common.try(function () {
return self.remote.setFindTimeout(defaultTimeout / 10)
return self.remote.setFindTimeout(defaultFindTimeout / 10)
.findByCssSelector(selector).getVisibleText()
.then(function (theText) {
// the value has () around it, remove them
@ -189,7 +183,7 @@ define(function (require) {
getPageSize: function () {
var selectedItemLabel = '';
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('select.ng-pristine.ng-valid.ng-untouched option')
.then(function (chartTypes) {
function getChartType(chart) {
@ -206,7 +200,7 @@ define(function (require) {
}
var getChartTypesPromises = chartTypes.map(getChartType);
return Promise.all(getChartTypesPromises);
return Bluebird.all(getChartTypesPromises);
})
.then(function () {
return selectedItemLabel;
@ -214,12 +208,12 @@ define(function (require) {
},
getPageFieldCount: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('div.agg-table-paginated table.table.table-condensed tbody tr td.ng-scope:nth-child(1) span.ng-binding');
},
goToPage: function (pageNum) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('ul.pagination-other-pages-list.pagination-sm.ng-scope li.ng-scope:nth-child(' +
(pageNum + 1) + ') a.ng-binding'
)
@ -229,7 +223,7 @@ define(function (require) {
},
openControlsRow: function (row) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('table.table.table-condensed tbody tr:nth-child(' +
(row + 1) + ') td.ng-scope div.actions a.btn.btn-xs.btn-default i.fa.fa-pencil'
)
@ -239,7 +233,7 @@ define(function (require) {
},
openControlsByName: function (name) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.actions a.btn.btn-xs.btn-default[href$="/' + name + '"]')
.then(function (button) {
return button.click();
@ -247,7 +241,7 @@ define(function (require) {
},
increasePopularity: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button.btn.btn-default[aria-label="Plus"]')
.then(function (button) {
return button.click();
@ -255,7 +249,7 @@ define(function (require) {
},
getPopularity: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model="editor.field.count"]')
.then(function (input) {
return input.getProperty('value');
@ -263,7 +257,7 @@ define(function (require) {
},
controlChangeCancel: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button.btn.btn-primary[aria-label="Cancel"]')
.then(function (button) {
return button.click();
@ -271,7 +265,7 @@ define(function (require) {
},
controlChangeSave: function () {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button.btn.btn-success.ng-binding[aria-label="Update Field"]')
.then(function (button) {
return button.click();
@ -279,7 +273,7 @@ define(function (require) {
},
setPageSize: function (size) {
return this.remote.setFindTimeout(defaultTimeout)
return this.remote.setFindTimeout(defaultFindTimeout)
.findByCssSelector('form.form-inline.pagination-size.ng-scope.ng-pristine.ng-valid div.form-group option[label="' + size + '"]')
.then(function (button) {
return button.click();
@ -341,5 +335,5 @@ define(function (require) {
}
};
return settingsPage;
});
return SettingsPage;
}());

View file

@ -1,12 +1,11 @@
// in test/support/pages/shield_page.js
define(function (require) {
var config = require('intern').config;
var defaultTimeout = config.timeouts.findTimeout;
import { remote, defaultFindTimeout } from '../';
// in test/support/pages/shield_page.js
export default (function (require) {
// the page object is created as a constructor
// so we can provide the remote Command object
// at runtime
function ShieldPage(remote) {
function ShieldPage() {
this.remote = remote;
}
@ -15,7 +14,7 @@ define(function (require) {
login: function login(user, pwd) {
var remote = this.remote;
return remote.setFindTimeout(defaultTimeout)
return remote.setFindTimeout(defaultFindTimeout)
.findById('username')
.type(user)
.then(function () {
@ -32,4 +31,4 @@ define(function (require) {
};
return ShieldPage;
});
}());

View file

@ -1,15 +1,8 @@
define(function (require) {
import { common, defaultFindTimeout, remote } from '../';
var config = require('intern').config;
var registerSuite = require('intern!object');
var Common = require('./common');
var defaultTimeout = config.timeouts.findTimeout;
var common;
function VisualizePage(remote) {
export default (function () {
function VisualizePage() {
this.remote = remote;
common = new Common(this.remote);
}
VisualizePage.prototype = {
@ -17,63 +10,63 @@ define(function (require) {
clickAreaChart: function clickAreaChart() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Area chart')
.click();
},
clickDataTable: function clickDataTable() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Data table')
.click();
},
clickLineChart: function clickLineChart() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Line chart')
.click();
},
clickMarkdownWidget: function clickMarkdownWidget() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Markdown widget')
.click();
},
clickMetric: function clickMetric() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Metric')
.click();
},
clickPieChart: function clickPieChart() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Pie chart')
.click();
},
clickTileMap: function clickTileMap() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Tile map')
.click();
},
clickVerticalBarChart: function clickVerticalBarChart() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByPartialLinkText('Vertical bar chart')
.click();
},
getChartTypeCount: function getChartTypeCount() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('a.wizard-vis-type.ng-scope')
.length;
},
@ -81,7 +74,7 @@ define(function (require) {
getChartTypes: function getChartTypes() {
var types = [];
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('.wizard-type-heading h4')
.then(function (chartTypes) {
function getChartType(chart) {
@ -97,14 +90,14 @@ define(function (require) {
clickAbsoluteButton: function clickAbsoluteButton() {
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('ul.nav.nav-pills.nav-stacked.kbn-timepicker-modes:contains("absolute")')
.click();
},
setFromTime: function setFromTime(timeString) {
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('input[ng-model="absolute.from"]')
.clearValue()
.type(timeString);
@ -112,7 +105,7 @@ define(function (require) {
setToTime: function setToTime(timeString) {
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('input[ng-model="absolute.to"]')
.clearValue()
.type(timeString);
@ -120,14 +113,14 @@ define(function (require) {
clickGoButton: function clickGoButton() {
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByClassName('kbn-timepicker-go')
.click();
},
collapseChart: function collapseChart() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.visualize-show-spy > div > i')
.click();
},
@ -141,14 +134,14 @@ define(function (require) {
clickMetricEditor: function clickMetricEditor() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button[aria-label="Open Editor"]')
.click();
},
clickNewSearch: function clickNewSearch() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.list-group-item a')
.click();
},
@ -156,18 +149,18 @@ define(function (require) {
setValue: function setValue(newValue) {
var self = this.remote;
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('button[ng-click="numberListCntr.add()"]')
.click()
.then(function () {
return self
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model="numberListCntr.getList()[$index]"]')
.clearValue();
})
.then(function () {
return self
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[ng-model="numberListCntr.getList()[$index]"]')
.type(newValue);
});
@ -175,14 +168,14 @@ define(function (require) {
clickSavedSearch: function clickSavedSearch() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('li[ng-click="stepTwoMode=\'saved\'"]')
.click();
},
selectSearch: function selectSearch(searchName) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByLinkText(searchName)
.click();
},
@ -190,7 +183,7 @@ define(function (require) {
getErrorMessage: function getErrorMessage() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.item>h4')
.getVisibleText();
},
@ -198,7 +191,7 @@ define(function (require) {
// clickBucket(bucketType) 'X-Axis', 'Split Area', 'Split Chart'
clickBucket: function clickBucket(bucketName) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('li.list-group-item.list-group-menu-item.ng-binding.ng-scope')
.then(function (chartTypes) {
common.debug('found bucket types ' + chartTypes.length);
@ -220,21 +213,21 @@ define(function (require) {
selectAggregation: function selectAggregation(myString) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('option[label="' + myString + '"]')
.click();
},
getField: function getField() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.ng-valid-required[name="field"] option[selected="selected"]')
.getVisibleText();
},
selectField: function selectField(fieldValue) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
// the css below should be more selective
.findByCssSelector('option[label="' + fieldValue + '"]')
.click();
@ -242,7 +235,7 @@ define(function (require) {
orderBy: function orderBy(fieldValue) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('select.form-control.ng-pristine.ng-valid.ng-untouched.ng-valid-required[ng-model="agg.params.orderBy"] ' +
'option.ng-binding.ng-scope:contains("' + fieldValue + '")'
)
@ -252,12 +245,12 @@ define(function (require) {
getInterval: function getInterval() {
var self = this;
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('select[ng-model="agg.params.interval"]')
.getProperty('selectedIndex')
.then(function (selectedIndex) {
return self.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('select[ng-model="agg.params.interval"] option:nth-child(' + (selectedIndex + 1) + ')')
.getProperty('label');
});
@ -265,21 +258,21 @@ define(function (require) {
setInterval: function setInterval(newValue) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('select[ng-model="agg.params.interval"]')
.type(newValue);
},
setNumericInterval: function setNumericInterval(newValue) {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('input[name="interval"]')
.type(newValue);
},
clickGo: function clickGo() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.btn-success')
.click();
},
@ -287,7 +280,7 @@ define(function (require) {
clickNewVisualization: function clickNewVisualization() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button[aria-label="New Visualization"]')
.click();
},
@ -296,7 +289,7 @@ define(function (require) {
saveVisualization: function saveVisualization(vizName) {
var self = this;
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('button[aria-label="Save Visualization"]')
.click()
.then(function () {
@ -305,7 +298,7 @@ define(function (require) {
.then(function () {
common.debug('saveButton button clicked');
return self.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByName('visTitle')
.type(vizName);
})
@ -313,7 +306,7 @@ define(function (require) {
.then(function () {
common.debug('click submit button');
return self.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('.config button[type="submit"]')
.click();
})
@ -321,7 +314,7 @@ define(function (require) {
// it's only there for about 5 seconds
.then(function () {
return self.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('kbn-truncated.toast-message.ng-isolate-scope')
.getVisibleText();
});
@ -329,7 +322,7 @@ define(function (require) {
clickLoadSavedVisButton: function clickLoadSavedVisButton() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findDisplayedByCssSelector('button[aria-label="Load Saved Visualization"]')
.click();
},
@ -349,7 +342,7 @@ define(function (require) {
common.debug('clickVisualizationByLinkText(' + vizName + ')');
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByLinkText(vizName)
.click();
},
@ -379,7 +372,7 @@ define(function (require) {
getXAxisLabels: function getXAxisLabels() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('.x > g')
.then(function (chartTypes) {
function getChartType(chart) {
@ -398,7 +391,7 @@ define(function (require) {
getYAxisLabels: function getYAxisLabels() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findAllByCssSelector('.y > g')
.then(function (chartTypes) {
function getChartType(chart) {
@ -432,7 +425,7 @@ define(function (require) {
// 1). get the maximim chart Y-Axis marker value
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.y-axis-div-wrapper > div > svg > g > g:last-of-type')
.getVisibleText()
.then(function (yLabel) {
@ -445,7 +438,7 @@ define(function (require) {
// 2). find and save the y-axis pixel size (the chart height)
.then(function () {
return self
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('rect.background') // different here
.getAttribute('height');
})
@ -454,7 +447,7 @@ define(function (require) {
common.debug('height --------- ' + yAxisHeight);
})
.then(function () {
return self.setFindTimeout(defaultTimeout * 2)
return self.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('path[data-label="' + aggregateName + '"]')
.getAttribute('d');
})
@ -484,7 +477,7 @@ define(function (require) {
// 1). get the maximim chart Y-Axis marker value
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.y-axis-div-wrapper > div > svg > g > g:last-of-type')
.getVisibleText()
.then(function (yLabel) {
@ -495,7 +488,7 @@ define(function (require) {
// 2). find and save the y-axis pixel size (the chart height)
.then(function getRect() {
return self
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('clipPath rect')
.getAttribute('height')
.then(function (theHeight) {
@ -507,7 +500,7 @@ define(function (require) {
// 3). get the chart-wrapper elements
.then(function getChartWrapper() {
return self
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findAllByCssSelector('.chart-wrapper')
.then(function (chartTypes) {
@ -547,7 +540,7 @@ define(function (require) {
// 1). get the maximim chart Y-Axis marker value
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.y-axis-div-wrapper > div > svg > g > g:last-of-type')
.then(function setYAxisLabel(y) {
return y
@ -561,7 +554,7 @@ define(function (require) {
// 2). find and save the y-axis pixel size (the chart height)
.then(function getRect() {
return self
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('rect.background')
.then(function getRectHeight(chartAreaObj) {
return chartAreaObj
@ -576,7 +569,7 @@ define(function (require) {
// 3). get the chart-wrapper elements
.then(function () {
return self
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
// #kibana-body > div.content > div > div > div > div.vis-editor-canvas > visualize > div.visualize-chart > div > div.vis-col-wrapper > div.chart-wrapper > div > svg > g > g.series.\30 > rect:nth-child(1)
.findAllByCssSelector('svg > g > g.series.\\30 > rect') // rect
.then(function (chartTypes) {
@ -608,7 +601,7 @@ define(function (require) {
// 1). get the maximim chart Y-Axis marker value
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
// path.slice:nth-child(11)
.findAllByCssSelector('path.slice')
.then(function (chartTypes) {
@ -630,41 +623,41 @@ define(function (require) {
getChartAreaWidth: function getChartAreaWidth() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('clipPath rect')
.getAttribute('width');
},
getChartAreaHeight: function getChartAreaHeight() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('clipPath rect')
.getAttribute('height');
},
getDataTableData: function getDataTableData() {
return this.remote
.setFindTimeout(defaultTimeout * 2)
.setFindTimeout(defaultFindTimeout * 2)
.findByCssSelector('table.table.table-condensed tbody')
.getVisibleText();
},
getMarkdownData: function getMarkdownData() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('visualize.ng-isolate-scope')
.getVisibleText();
},
clickColumns: function clickColumns() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('div.schemaEditors.ng-scope > div > div > button:nth-child(2)')
.click();
},
waitForToastMessageGone: function waitForToastMessageGone() {
var self = this;
return common.tryForTime(defaultTimeout * 5, function tryingForTime() {
return common.tryForTime(defaultFindTimeout * 5, function tryingForTime() {
return self.remote
.setFindTimeout(100)
.findAllByCssSelector('kbn-truncated.toast-message.ng-isolate-scope')
@ -681,11 +674,11 @@ define(function (require) {
waitForVisualization: function waitForVisualization() {
return this.remote
.setFindTimeout(defaultTimeout)
.setFindTimeout(defaultFindTimeout)
.findByCssSelector('visualize-legend');
}
};
return VisualizePage;
});
}());