aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/callbacks.js
diff options
context:
space:
mode:
authorjaubourg <j@ubourg.net>2012-10-06 22:00:43 +0200
committerjaubourg <j@ubourg.net>2012-10-06 22:00:43 +0200
commitbb38f706463a4d7598505b2f7adf3ed83935f298 (patch)
treede9074d730eadbe5bf71138aef2ccb3765e5d55c /test/unit/callbacks.js
parentcfe95a864330c45c2bf93ca4a89d84c01f5acff5 (diff)
downloadjquery-bb38f706463a4d7598505b2f7adf3ed83935f298.tar.gz
jquery-bb38f706463a4d7598505b2f7adf3ed83935f298.zip
Do not iterate over functions. Fixes #12665. Unit tests added. Thanks to @kselden for finding the bug.
Diffstat (limited to 'test/unit/callbacks.js')
-rw-r--r--test/unit/callbacks.js39
1 files changed, 26 insertions, 13 deletions
diff --git a/test/unit/callbacks.js b/test/unit/callbacks.js
index 2c708bb59..f0b3fdd51 100644
--- a/test/unit/callbacks.js
+++ b/test/unit/callbacks.js
@@ -12,17 +12,17 @@ var output,
outputB = addToOutput( "B" ),
outputC = addToOutput( "C" ),
tests = {
- "": "XABC X XABCABCC X XBB X XABA X",
- "once": "XABC X X X X X XABA X",
- "memory": "XABC XABC XABCABCCC XA XBB XB XABA XC",
- "unique": "XABC X XABCA X XBB X XAB X",
- "stopOnFalse": "XABC X XABCABCC X XBB X XA X",
- "once memory": "XABC XABC X XA X XA XABA XC",
- "once unique": "XABC X X X X X XAB X",
- "once stopOnFalse": "XABC X X X X X XA X",
- "memory unique": "XABC XA XABCA XA XBB XB XAB XC",
- "memory stopOnFalse": "XABC XABC XABCABCCC XA XBB XB XA X",
- "unique stopOnFalse": "XABC X XABCA X XBB X XA X"
+ "": "XABC X XABCABCC X XBB X XABA X XX",
+ "once": "XABC X X X X X XABA X XX",
+ "memory": "XABC XABC XABCABCCC XA XBB XB XABA XC XX",
+ "unique": "XABC X XABCA X XBB X XAB X X",
+ "stopOnFalse": "XABC X XABCABCC X XBB X XA X XX",
+ "once memory": "XABC XABC X XA X XA XABA XC XX",
+ "once unique": "XABC X X X X X XAB X X",
+ "once stopOnFalse": "XABC X X X X X XA X XX",
+ "memory unique": "XABC XA XABCA XA XBB XB XAB XC X",
+ "memory stopOnFalse": "XABC XABC XABCABCCC XA XBB XB XA X XX",
+ "unique stopOnFalse": "XABC X XABCA X XBB X XA X X"
},
filters = {
"no filter": undefined,
@@ -32,7 +32,7 @@ var output,
};
}
};
-
+
function showFlags( flags ) {
if ( typeof flags === "string" ) {
return '"' + flags + '"';
@@ -60,7 +60,7 @@ jQuery.each( tests, function( strFlags, resultString ) {
test( "jQuery.Callbacks( " + showFlags( flags ) + " ) - " + filterLabel, function() {
- expect( 20 );
+ expect( 21 );
// Give qunit a little breathing room
stop();
@@ -197,6 +197,19 @@ jQuery.each( tests, function( strFlags, resultString ) {
cblist.add( outputC );
strictEqual( output, results.shift(), "Adding a callback after one returned false" );
+ // Callbacks are not iterated
+ output = "";
+ function handler( tmp ) {
+ output += "X";
+ }
+ handler.method = function() {
+ output += "!";
+ };
+ cblist = jQuery.Callbacks( flags );
+ cblist.add( handler );
+ cblist.add( handler );
+ cblist.fire();
+ strictEqual( output, results.shift(), "No callback iteration" );
});
});
});