aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/scenario/Scenario.js9
-rw-r--r--src/scenario/dsl.js5
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);