diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/scenario/Scenario.js | 9 | ||||
| -rw-r--r-- | src/scenario/dsl.js | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/scenario/Scenario.js b/src/scenario/Scenario.js index 149a0f09..420345f6 100644 --- a/src/scenario/Scenario.js +++ b/src/scenario/Scenario.js @@ -298,9 +298,14 @@ function browserTrigger(element, type) { var parentTrigger = fn.trigger; fn.trigger = function(type) { if (/(click|change|keydown)/.test(type)) { - return this.each(function(index, node) { - browserTrigger(node, type); + var processDefaults = []; + this.each(function(index, node) { + processDefaults.push(browserTrigger(node, type)); }); + + // this is not compatible with jQuery - we return an array of returned values, + // so that scenario runner know whether JS code has preventDefault() of the event or not... + return processDefaults; } return parentTrigger.apply(this, arguments); }; diff --git a/src/scenario/dsl.js b/src/scenario/dsl.js index 2190f7f7..946f56d3 100644 --- a/src/scenario/dsl.js +++ b/src/scenario/dsl.js @@ -323,8 +323,9 @@ angular.scenario.dsl('element', function() { return this.addFutureAction("element '" + this.label + "' click", function($window, $document, done) { var elements = $document.elements(); var href = elements.attr('href'); - elements.trigger('click'); - if (href && elements[0].nodeName.toUpperCase() === 'A') { + var eventProcessDefault = elements.trigger('click')[0]; + + if (href && elements[0].nodeName.toUpperCase() === 'A' && eventProcessDefault) { this.application.navigateTo(href, function() { done(); }, done); |
