From e8d86fc6f5334ab285a95f7772d3072e7a7a22d5 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 25 Nov 2015 12:43:58 -0600 Subject: [PATCH 1/8] use the test-subj-selector module --- package.json | 1 + src/ui/public/jquery/findTestSubject.js | 25 ++++++------------------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 82d78b030057..94cd00c66b0d 100644 --- a/package.json +++ b/package.json @@ -130,6 +130,7 @@ "whatwg-fetch": "0.9.0" }, "devDependencies": { + "@spalger/test-subj-selector": "0.2.0", "Nonsense": "0.1.2", "angular-mocks": "1.4.7", "auto-release-sinon": "1.0.3", diff --git a/src/ui/public/jquery/findTestSubject.js b/src/ui/public/jquery/findTestSubject.js index 6ffb01789a9a..ba9310c33601 100644 --- a/src/ui/public/jquery/findTestSubject.js +++ b/src/ui/public/jquery/findTestSubject.js @@ -1,3 +1,5 @@ +var testSubjSelector = require('@spalger/test-subj-selector'); + module.exports = function bindToJquery($) { /** @@ -41,28 +43,13 @@ module.exports = function bindToJquery($) { */ $.fn.findTestSubject = findTestSubject; - function findTestSubject(/* ...subjectSelectors */) { - var subjectSelectors = [].slice.apply(arguments); + function findTestSubject(...subjectSelectors) { var $els = $(); var $context = this; - subjectSelectors.forEach(function (subjectSelector) { - var cssSelectors = []; - var terms = subjectSelector - .replace(/\s*&\s*/g, '&') // remove all whitespace around joins - .split(/\s+/); - - function termToCssSelector(term) { - return term ? '[data-test-subj~="' + term + '"]' : ''; - } - - while (terms.length) { - var term = terms.shift(); - // split each term by joins/& and map to css selectors - cssSelectors.push(term.split('&').map(termToCssSelector).join('')); - } - - $els = $els.add($context.find(cssSelectors.join(' '))); + testSubjSelector(...subjectSelectors) + .forEach(function (cssSelector) { + $els = $els.add($context.find(cssSelector)); }); return $els; From dfd8d3e960452b4a8603fdd8e72ca41b285de232 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 25 Nov 2015 12:47:59 -0600 Subject: [PATCH 2/8] added util for functional tests --- src/ui/public/jquery/findTestSubject.js | 5 ++--- test/support/pages/Common.js | 5 +++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui/public/jquery/findTestSubject.js b/src/ui/public/jquery/findTestSubject.js index ba9310c33601..9c460930471b 100644 --- a/src/ui/public/jquery/findTestSubject.js +++ b/src/ui/public/jquery/findTestSubject.js @@ -47,9 +47,8 @@ module.exports = function bindToJquery($) { var $els = $(); var $context = this; - testSubjSelector(...subjectSelectors) - .forEach(function (cssSelector) { - $els = $els.add($context.find(cssSelector)); + subjectSelectors.forEach(function (selector) { + $els = $els.add($context.find(testSubjSelector(selector))); }); return $els; diff --git a/test/support/pages/Common.js b/test/support/pages/Common.js index a531c4c177ef..0734bddd8f3d 100644 --- a/test/support/pages/Common.js +++ b/test/support/pages/Common.js @@ -3,6 +3,7 @@ define(function (require) { var config = require('intern').config; var Promise = require('bluebird'); var moment = require('moment'); + var testSubjSelector = require('@spalger/test-subj-selector'); var getUrl = require('intern/dojo/node!../../utils/getUrl'); var fs = require('intern/dojo/node!fs'); var path = require('intern/dojo/node!path'); @@ -199,6 +200,10 @@ define(function (require) { .catch(function (err) { self.log('SCREENSHOT FAILED: ' + err); }); + }, + + findTestSubject: function (selector) { + return this.remote.findByCssSelector(testSubjSelector(selector)); } }; From f65434071324ba4ffed4c04845f09859f727eb76 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 25 Nov 2015 14:23:28 -0600 Subject: [PATCH 3/8] use intern require syntax --- test/support/pages/Common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/support/pages/Common.js b/test/support/pages/Common.js index 0734bddd8f3d..eeb6a8182349 100644 --- a/test/support/pages/Common.js +++ b/test/support/pages/Common.js @@ -3,7 +3,7 @@ define(function (require) { var config = require('intern').config; var Promise = require('bluebird'); var moment = require('moment'); - var testSubjSelector = require('@spalger/test-subj-selector'); + var testSubjSelector = require('intern/dojo/node!@spalger/test-subj-selector'); var getUrl = require('intern/dojo/node!../../utils/getUrl'); var fs = require('intern/dojo/node!fs'); var path = require('intern/dojo/node!path'); From ef6678459c3e903f62ab69fd2b590ec63943bc96 Mon Sep 17 00:00:00 2001 From: LeeDr Date: Wed, 25 Nov 2015 14:20:00 -0600 Subject: [PATCH 4/8] Add the conf.name as the data-test-subj to the table rows of the advanced settings. This allows functional UI automation to find the row and child form fields (not used by any automation yet). --- .../kibana/public/settings/sections/advanced/advanced_row.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 51d419b16671..c7e152bb29bc 100644 --- a/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html +++ b/src/plugins/kibana/public/settings/sections/advanced/advanced_row.html @@ -1,4 +1,4 @@ - + {{conf.name}} From f2d3d3651113685896ad0e6d8b27c12f4ed2cd0f Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 25 Nov 2015 15:17:15 -0600 Subject: [PATCH 5/8] update test-sub-selector --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 94cd00c66b0d..e700f13daeec 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "whatwg-fetch": "0.9.0" }, "devDependencies": { - "@spalger/test-subj-selector": "0.2.0", + "@spalger/test-subj-selector": "0.2.1", "Nonsense": "0.1.2", "angular-mocks": "1.4.7", "auto-release-sinon": "1.0.3", From 6311d949a11aa6dad443ad3638f1a9fa4940ece3 Mon Sep 17 00:00:00 2001 From: LeeDr Date: Wed, 25 Nov 2015 15:41:21 -0600 Subject: [PATCH 6/8] Functions and test for setting advanced properties. --- .../apps/settings/_advanced_settings.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 test/functional/apps/settings/_advanced_settings.js diff --git a/test/functional/apps/settings/_advanced_settings.js b/test/functional/apps/settings/_advanced_settings.js new file mode 100644 index 000000000000..d7de67835ec7 --- /dev/null +++ b/test/functional/apps/settings/_advanced_settings.js @@ -0,0 +1,44 @@ +define(function (require) { + var Common = require('../../../support/pages/Common'); + var SettingsPage = require('../../../support/pages/SettingsPage'); + var expect = require('intern/dojo/node!expect.js'); + var Promise = require('bluebird'); + + return function (bdd, scenarioManager) { + 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(); + }); + }); + + bdd.describe('index pattern creation', function indexPatternCreation() { + bdd.before(function () { + return settingsPage.createIndexPattern(); + }); + + bdd.it('should allow setting advanced settings', function () { + return settingsPage.clickAdvancedTab() + .then(function () { + return settingsPage.setAdvancedSetting('dateFormat:tz', 'American/Phoenix'); + // expect(patternName).to.be('logstash-*'); + }) + .catch(common.handleError(this)); + }); + + + + + }); + }); + }; +}); From 9a49fbc5c5bd645bb17f6feead83a6572a47515d Mon Sep 17 00:00:00 2001 From: LeeDr Date: Mon, 30 Nov 2015 11:59:59 -0600 Subject: [PATCH 7/8] Add data-test-subj to advanced_row.html and advanced_row.html to enable test automation. Add a test for Advanced Settings. --- src/plugins/kibana/public/settings/app.html | 4 +-- .../sections/advanced/advanced_row.html | 17 +++++++----- .../apps/settings/_advanced_settings.js | 15 ++++++----- test/functional/apps/settings/index.js | 2 ++ test/support/pages/Common.js | 3 ++- test/support/pages/SettingsPage.js | 27 +++++++++++++++++++ 6 files changed, 53 insertions(+), 15 deletions(-) diff --git a/src/plugins/kibana/public/settings/app.html b/src/plugins/kibana/public/settings/app.html index 0d86dff90fd9..6bb1ecd5a167 100644 --- a/src/plugins/kibana/public/settings/app.html +++ b/src/plugins/kibana/public/settings/app.html @@ -1,9 +1,9 @@
-