diff options
author | David Bonner <dbonner@cogolabs.com> | 2012-10-15 17:20:33 -0400 |
---|---|---|
committer | Rick Waldron <waldron.rick@gmail.com> | 2012-10-15 17:20:33 -0400 |
commit | 9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74 (patch) | |
tree | 5f145091dacd9348725f20fe6e6fa9535ad9c3ef /test/unit/deprecated.js | |
parent | d6c84c5bb55814df0063e04b12c4143d07cba3f7 (diff) | |
download | jquery-9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74.tar.gz jquery-9104a3d5f2a1bb72b89ebdbad3f0bfdb2ea8ab74.zip |
Deprecate fn toggle Closes gh-970 https://github.com/jquery/2012-dev-summit/issues/24
Diffstat (limited to 'test/unit/deprecated.js')
-rw-r--r-- | test/unit/deprecated.js | 122 |
1 files changed, 99 insertions, 23 deletions
diff --git a/test/unit/deprecated.js b/test/unit/deprecated.js index 0f77040c1..15fdf85cb 100644 --- a/test/unit/deprecated.js +++ b/test/unit/deprecated.js @@ -1,28 +1,104 @@ +if ( jQuery.browser ) { module("deprecated"); -// Start jQuery.browser tests -if ( jQuery.browser && jQuery.uaMatch ) { - if ( jQuery.get && !isLocal ) { - asyncTest( "browser", function() { - jQuery.get( "data/ua.txt", function( data ) { - var uas = data.split( "\n" ); - expect( (uas.length - 1) * 2 ); - - jQuery.each(uas, function() { - var parts = this.split( "\t" ), - agent = parts[2], - ua; - - if ( agent ) { - ua = jQuery.uaMatch( agent ); - equal( ua.browser, parts[0], "browser (" + agent + ")" ); - equal( ua.version, parts[1], "version (" + agent + ")" ); - } - }); - - start(); +if ( jQuery.get && !isLocal ) { + asyncTest( "browser", function() { + jQuery.get( "data/ua.txt", function( data ) { + var uas = data.split( "\n" ); + expect( (uas.length - 1) * 2 ); + + jQuery.each(uas, function() { + var parts = this.split( "\t" ), + agent = parts[2], + ua; + + if ( agent ) { + ua = jQuery.uaMatch( agent ); + equal( ua.browser, parts[0], "browser (" + agent + ")" ); + equal( ua.version, parts[1], "version (" + agent + ")" ); + } }); + + start(); + }); + }); +} + +test("toggle(Function, Function, ...)", function() { + expect(16); + + var count = 0, + fn1 = function(e) { count++; }, + fn2 = function(e) { count--; }, + preventDefault = function(e) { e.preventDefault(); }, + link = jQuery("#mark"); + link.click(preventDefault).click().toggle(fn1, fn2).click().click().click().click().click(); + equal( count, 1, "Check for toggle(fn, fn)" ); + + jQuery("#firstp").toggle(function () { + equal(arguments.length, 4, "toggle correctly passes through additional triggered arguments, see #1701" ); + }, function() {}).trigger("click", [ 1, 2, 3 ]); + + var first = 0; + jQuery("#simon1").one("click", function() { + ok( true, "Execute event only once" ); + jQuery(this).toggle(function() { + equal( first++, 0, "toggle(Function,Function) assigned from within one('xxx'), see #1054" ); + }, function() { + equal( first, 1, "toggle(Function,Function) assigned from within one('xxx'), see #1054" ); }); - } + return false; + }).click().click().click(); + + var turn = 0; + var fns = [ + function(){ + turn = 1; + }, + function(){ + turn = 2; + }, + function(){ + turn = 3; + } + ]; + + var $div = jQuery("<div> </div>").toggle( fns[0], fns[1], fns[2] ); + $div.click(); + equal( turn, 1, "Trying toggle with 3 functions, attempt 1 yields 1"); + $div.click(); + equal( turn, 2, "Trying toggle with 3 functions, attempt 2 yields 2"); + $div.click(); + equal( turn, 3, "Trying toggle with 3 functions, attempt 3 yields 3"); + $div.click(); + equal( turn, 1, "Trying toggle with 3 functions, attempt 4 yields 1"); + $div.click(); + equal( turn, 2, "Trying toggle with 3 functions, attempt 5 yields 2"); + + $div.unbind("click",fns[0]); + var data = jQuery._data( $div[0], "events" ); + ok( !data, "Unbinding one function from toggle unbinds them all"); + + // manually clean up detached elements + $div.remove(); + + // Test Multi-Toggles + var a = [], b = []; + $div = jQuery("<div/>"); + $div.toggle(function(){ a.push(1); }, function(){ a.push(2); }); + $div.click(); + deepEqual( a, [1], "Check that a click worked." ); + + $div.toggle(function(){ b.push(1); }, function(){ b.push(2); }); + $div.click(); + deepEqual( a, [1,2], "Check that a click worked with a second toggle." ); + deepEqual( b, [1], "Check that a click worked with a second toggle." ); + + $div.click(); + deepEqual( a, [1,2,1], "Check that a click worked with a second toggle, second click." ); + deepEqual( b, [1,2], "Check that a click worked with a second toggle, second click." ); + + // manually clean up detached elements + $div.remove(); +}); } -// End of jQuery.browser tests |