You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/02/08 09:24:15 UTC
[1/20] git commit: WICKET-5024 Global ajax event for precondition is
not called
WICKET-5024 Global ajax event for precondition is not called
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/dac7fc6b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/dac7fc6b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/dac7fc6b
Branch: refs/heads/reference-guide
Commit: dac7fc6b5235e12647c9df8386557be48b5d5bb7
Parents: 3de1a51
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Feb 6 14:23:36 2013 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Feb 6 14:23:36 2013 +0100
----------------------------------------------------------------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 2 +
wicket-core/src/test/js/ajax.js | 107 ++++++++++-----
2 files changed, 72 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/dac7fc6b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index 75ed0e4..53c09f5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -485,6 +485,8 @@
}
}
+ Wicket.Event.publish('/ajax/call/precondition', attrs);
+
if (attrs.mp) { // multipart form. jQuery.ajax() doesn't help here ...
return this.submitMultipartForm(context);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/dac7fc6b/wicket-core/src/test/js/ajax.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/ajax.js b/wicket-core/src/test/js/ajax.js
index c789559..7f09a7f 100644
--- a/wicket-core/src/test/js/ajax.js
+++ b/wicket-core/src/test/js/ajax.js
@@ -719,20 +719,23 @@ jQuery(document).ready(function() {
/**
* Verifies the order of execution of the callbacks.
- * The order must be: before, beforeSend, after, success, complete.
+ * The order must be: before, precondition, beforeSend, after, success, complete.
* Three consecutive executions are made on the same Ajax channel validating
* that they do not overlap.
*/
asyncTest('callbacks order - success scenario.', function () {
- expect(30);
+ expect(36);
var order = 0,
- // calculates the offset for the order depending on the execution number
- offset = function(round) {
- return (round * 10) - 10;
- };
+ // the number of assertions per iteration
+ numberOfTests = 12,
+
+ // calculates the offset for the order depending on the execution number
+ offset = function(extraData) {
+ return numberOfTests * extraData.round;
+ };
var attrs = {
u: 'data/ajax/emptyAjaxResponse.xml',
@@ -742,19 +745,25 @@ jQuery(document).ready(function() {
equal((1 + offset(attrs.event.extraData)), ++order, "Before handler");
}
],
+ pre: [
+ function(attrs) {
+ equal((3 + offset(attrs.event.extraData)), ++order, "Precondition");
+ return true;
+ }
+ ],
bsh: [
function(attrs) {
- equal((3 + offset(attrs.event.extraData)), ++order, "BeforeSend handler");
+ equal((5 + offset(attrs.event.extraData)), ++order, "BeforeSend handler");
}
],
ah: [
function(attrs) {
- equal((5 + offset(attrs.event.extraData)), ++order, "After handler");
+ equal((7 + offset(attrs.event.extraData)), ++order, "After handler");
}
],
sh: [
function(attrs) {
- equal((7 + offset(attrs.event.extraData)), ++order, "Success handler");
+ equal((9 + offset(attrs.event.extraData)), ++order, "Success handler");
}
],
fh: [
@@ -764,7 +773,7 @@ jQuery(document).ready(function() {
],
coh: [
function(attrs) {
- equal((9 + offset(attrs.event.extraData)), ++order, "Complete handler");
+ equal((11 + offset(attrs.event.extraData)), ++order, "Complete handler");
}
]
};
@@ -774,16 +783,21 @@ jQuery(document).ready(function() {
equal((2 + offset(attrs.event.extraData)), ++order, "Global before handler");
});
+ Wicket.Event.subscribe('/ajax/call/precondition', function(jqEvent, attrs) {
+ equal((4 + offset(attrs.event.extraData)), ++order, "Global precondition");
+ return true;
+ });
+
Wicket.Event.subscribe('/ajax/call/beforeSend', function(jqEvent, attrs) {
- equal((4 + offset(attrs.event.extraData)), ++order, "Global beforeSend handler");
+ equal((6 + offset(attrs.event.extraData)), ++order, "Global beforeSend handler");
});
Wicket.Event.subscribe('/ajax/call/after', function(jqEvent, attrs) {
- equal((6 + offset(attrs.event.extraData)), ++order, "Global after handler");
+ equal((8 + offset(attrs.event.extraData)), ++order, "Global after handler");
});
Wicket.Event.subscribe('/ajax/call/success', function(jqEvent, attrs) {
- equal((8 + offset(attrs.event.extraData)), ++order, "Global success handler");
+ equal((10 + offset(attrs.event.extraData)), ++order, "Global success handler");
});
Wicket.Event.subscribe('/ajax/call/failure', function() {
@@ -791,11 +805,12 @@ jQuery(document).ready(function() {
});
Wicket.Event.subscribe('/ajax/call/complete', function(jqEvent, attrs) {
- equal((10 + offset(attrs.event.extraData)), ++order, "Global complete handler");
+ equal((12 + offset(attrs.event.extraData)), ++order, "Global complete handler");
- if (attrs.event.extraData == 3) {
+ if (attrs.event.extraData.round === 2) {
// unregister all global subscribers
jQuery(document).off();
+ jQuery(window).off("event1");
start();
}
@@ -804,11 +819,15 @@ jQuery(document).ready(function() {
Wicket.Ajax.ajax(attrs);
var target = jQuery(window);
- target.triggerHandler("event1", 1); // execution No1
- target.triggerHandler("event1", 2); // execution No2
- target.triggerHandler("event1", 3); // execution No3
+ console.log('Iteration 1', order);
+ target.triggerHandler("event1", {"round": 0}); // execution No1
+
+ console.log('Iteration 2', order);
+ target.triggerHandler("event1", {"round": 1}); // execution No2
+
+ console.log('Iteration 3', order);
+ target.triggerHandler("event1", {"round": 2}); // execution No3
- target.off("event1");
});
/**
@@ -819,14 +838,17 @@ jQuery(document).ready(function() {
*/
asyncTest('callbacks order - failure scenario.', function () {
- expect(30);
+ expect(36);
var order = 0,
+ // the number of assertions per iteration
+ numberOfTests = 12,
+
// calculates the offset for the order depending on the execution number
- offset = function(round) {
- return (round * 10) - 10;
- };
+ offset = function(extraData) {
+ return numberOfTests * extraData.round;
+ };
var attrs = {
u: 'data/ajax/nonExistingResponse.xml',
@@ -836,14 +858,20 @@ jQuery(document).ready(function() {
equal((1 + offset(attrs.event.extraData)), ++order, "Before handler");
}
],
+ pre: [
+ function(attrs) {
+ equal((3 + offset(attrs.event.extraData)), ++order, "Precondition");
+ return true;
+ }
+ ],
bsh: [
function(attrs) {
- equal((3 + offset(attrs.event.extraData)), ++order, "BeforeSend handler");
+ equal((5 + offset(attrs.event.extraData)), ++order, "BeforeSend handler");
}
],
ah: [
function(attrs) {
- equal((5 + offset(attrs.event.extraData)), ++order, "After handler");
+ equal((7 + offset(attrs.event.extraData)), ++order, "After handler");
}
],
sh: [
@@ -853,12 +881,12 @@ jQuery(document).ready(function() {
],
fh: [
function(attrs) {
- equal((7 + offset(attrs.event.extraData)), ++order, "Failure handler");
+ equal((9 + offset(attrs.event.extraData)), ++order, "Failure handler");
}
],
coh: [
function(attrs) {
- equal((9 + offset(attrs.event.extraData)), ++order, "Complete handler");
+ equal((11 + offset(attrs.event.extraData)), ++order, "Complete handler");
}
]
};
@@ -868,12 +896,17 @@ jQuery(document).ready(function() {
equal((2 + offset(attrs.event.extraData)), ++order, "Global before handler");
});
+ Wicket.Event.subscribe('/ajax/call/precondition', function(jqEvent, attrs) {
+ equal((4 + offset(attrs.event.extraData)), ++order, "Global precondition");
+ return true;
+ });
+
Wicket.Event.subscribe('/ajax/call/beforeSend', function(jqEvent, attrs) {
- equal((4 + offset(attrs.event.extraData)), ++order, "Global beforeSend handler");
+ equal((6 + offset(attrs.event.extraData)), ++order, "Global beforeSend handler");
});
Wicket.Event.subscribe('/ajax/call/after', function(jqEvent, attrs) {
- equal((6 + offset(attrs.event.extraData)), ++order, "Global after handler");
+ equal((8 + offset(attrs.event.extraData)), ++order, "Global after handler");
});
Wicket.Event.subscribe('/ajax/call/success', function() {
@@ -881,16 +914,18 @@ jQuery(document).ready(function() {
});
Wicket.Event.subscribe('/ajax/call/failure', function(jqEvent, attrs) {
- equal((8 + offset(attrs.event.extraData)), ++order, "Global failure handler");
+ equal((10 + offset(attrs.event.extraData)), ++order, "Global failure handler");
});
Wicket.Event.subscribe('/ajax/call/complete', function(jqEvent, attrs) {
- equal((10 + offset(attrs.event.extraData)), ++order, "Global complete handler");
+ equal((12 + offset(attrs.event.extraData)), ++order, "Global complete handler");
- if (attrs.event.extraData == 3) {
+ if (attrs.event.extraData.round === 2) {
// unregister all global subscribers
jQuery(document).off();
+ jQuery(window).off("event1");
+
start();
}
});
@@ -898,11 +933,9 @@ jQuery(document).ready(function() {
Wicket.Ajax.ajax(attrs);
var target = jQuery(window);
- target.triggerHandler("event1", 1); // execution No1
- target.triggerHandler("event1", 2); // execution No2
- target.triggerHandler("event1", 3); // execution No3
-
- target.off("event1");
+ target.triggerHandler("event1", {"round": 0}); // execution No1
+ target.triggerHandler("event1", {"round": 1}); // execution No2
+ target.triggerHandler("event1", {"round": 2}); // execution No3
});
/**