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/21 15:19:47 UTC

[1/2] git commit: WICKET-5039 Manual invocation of FunctionsExecutor#notify() is broken

WICKET-5039 Manual invocation of FunctionsExecutor#notify() is broken


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/498f445c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/498f445c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/498f445c

Branch: refs/heads/master
Commit: 498f445c8edf143bec2b311c76d1939f406841fa
Parents: 635ced5
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Feb 21 15:58:03 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Feb 21 15:58:03 2013 +0200

----------------------------------------------------------------------
 .../wicket/ajax/res/js/wicket-ajax-jquery.js       |    6 +++++-
 wicket-core/src/test/js/ajax.js                    |    2 +-
 wicket-core/src/test/js/data/ajax/evaluationId.xml |    2 +-
 .../js/data/ajax/evaluationIdentifierAndCodeId.xml |    2 +-
 4 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/498f445c/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 84b9f96..664c48f 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
@@ -1029,6 +1029,10 @@
 		 * @param node {XmlElement} - the <[priority-]evaluate> element with the script to evaluate
 		 */
 		processEvaluation: function (context, node) {
+
+			// used to match evaluation scripts which manually call FunctionsExecuter's notify() when ready
+			var scriptWithIdentifierR = new RegExp("^\\(function\\(\\)\\{([a-zA-Z_][a-zA-Z0-9_]*)\\|((.|\\n)*)?\\}\\)\\(\\);$");
+
 			context.steps.push(function (notify) {
 				// get the javascript body
 				var text = jQuery(node).text();
@@ -1042,7 +1046,7 @@
 				// test if the javascript is in form of identifier|code
 				// if it is, we allow for letting the javascript decide when the rest of processing will continue
 				// by invoking identifier();
-				var res = text.match(new RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$"));
+				var res = text.match(scriptWithIdentifierR);
 
 				if (res !== null) {
 					var f = jQuery.noop;

http://git-wip-us.apache.org/repos/asf/wicket/blob/498f445c/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 e49b5d6..fac63a4 100644
--- a/wicket-core/src/test/js/ajax.js
+++ b/wicket-core/src/test/js/ajax.js
@@ -100,7 +100,7 @@ jQuery(document).ready(function() {
 		 */
 		asyncTest('processEvaluation with identifier|code.', function () {
 
-			expect(2);
+			expect(3);
 
 			var attrs = {
 				u: 'data/ajax/evaluationIdentifierAndCodeId.xml',

http://git-wip-us.apache.org/repos/asf/wicket/blob/498f445c/wicket-core/src/test/js/data/ajax/evaluationId.xml
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/data/ajax/evaluationId.xml b/wicket-core/src/test/js/data/ajax/evaluationId.xml
index fb294d0..f95d077 100644
--- a/wicket-core/src/test/js/data/ajax/evaluationId.xml
+++ b/wicket-core/src/test/js/data/ajax/evaluationId.xml
@@ -15,4 +15,4 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<ajax-response><evaluate>start(); ok(true, 'Evaluation must be executed!');</evaluate></ajax-response>
\ No newline at end of file
+<ajax-response><evaluate>(function(){start(); ok(true, 'Evaluation must be executed!');})();</evaluate></ajax-response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/498f445c/wicket-core/src/test/js/data/ajax/evaluationIdentifierAndCodeId.xml
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/data/ajax/evaluationIdentifierAndCodeId.xml b/wicket-core/src/test/js/data/ajax/evaluationIdentifierAndCodeId.xml
index 7cb65d6..04698b2 100644
--- a/wicket-core/src/test/js/data/ajax/evaluationIdentifierAndCodeId.xml
+++ b/wicket-core/src/test/js/data/ajax/evaluationIdentifierAndCodeId.xml
@@ -15,4 +15,4 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<ajax-response><evaluate>ignored|start(); ok(true, 'Evaluation with identifier must be executed!'); arguments[0]();</evaluate></ajax-response>
\ No newline at end of file
+<ajax-response><evaluate>(function(){ignored|start(); ok(true, 'Evaluation with identifier must be executed!'); equal(typeof(ignored), 'function', 'The passed identifier must be a function'); arguments[0]();})();</evaluate></ajax-response>
\ No newline at end of file