diff options
author | jaubourg <j@ubourg.net> | 2012-10-06 22:00:43 +0200 |
---|---|---|
committer | jaubourg <j@ubourg.net> | 2012-10-06 22:00:43 +0200 |
commit | bb38f706463a4d7598505b2f7adf3ed83935f298 (patch) | |
tree | de9074d730eadbe5bf71138aef2ccb3765e5d55c /test/unit/callbacks.js | |
parent | cfe95a864330c45c2bf93ca4a89d84c01f5acff5 (diff) | |
download | jquery-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.js | 39 |
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" ); }); }); }); |