X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=f3d314884f952acf7aac4bff3ce90485db650f01;hb=086822e6419c89c33b322bacbbc891148a4b3647;hp=6f753225da70b90349427cf70648ee860e8487c7;hpb=783bb2a85fe33d00e82f40c8dab484e1cf0c63a1;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index 6f75322..f3d3148 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -443,7 +443,7 @@ test("bind(name, false), unbind(name, false)", function() { }); test("bind()/trigger()/unbind() on plain object", function() { - expect( 5 ); + expect( 7 ); var obj = {}; @@ -459,6 +459,7 @@ test("bind()/trigger()/unbind() on plain object", function() { var events = jQuery(obj).data("__events__"); ok( events, "Object has events bound." ); + equals( obj.events, undefined, "Events object on plain objects is not events" ); equals( typeof events, "function", "'events' expando is a function on plain objects." ); equals( obj.test, undefined, "Make sure that test event is not on the plain object." ); equals( obj.handle, undefined, "Make sure that the event handler is not on the plain object." ); @@ -473,6 +474,8 @@ test("bind()/trigger()/unbind() on plain object", function() { // Make sure it doesn't complain when no events are found jQuery(obj).unbind("test"); + + equals( obj.__events__, undefined, "Make sure events object is removed" ); }); test("unbind(type)", function() { @@ -1235,6 +1238,8 @@ test("live with namespaces", function(){ }); test("live with change", function(){ + expect(8); + var selectChange = 0, checkboxChange = 0; var select = jQuery("select[name='S1']") @@ -1266,28 +1271,13 @@ test("live with change", function(){ checkbox.trigger("change"); equals( checkboxChange, 1, "Change on checkbox." ); - // test before activate on radio - - // test blur/focus on textarea - var textarea = jQuery("#area1"), textareaChange = 0, oldVal = textarea.val(); - textarea.live("change", function() { - textareaChange++; - }); - - textarea.val(oldVal + "foo"); - textarea.trigger("change"); - equals( textareaChange, 1, "Change on textarea." ); - - textarea.val(oldVal); - textarea.die("change"); - // test blur/focus on text var text = jQuery("#name"), textChange = 0, oldTextVal = text.val(); text.live("change", function() { textChange++; }); - text.val(oldVal+"foo"); + text.val(oldTextVal+"foo"); text.trigger("change"); equals( textChange, 1, "Change on text input." ); @@ -1704,6 +1694,8 @@ test("delegate with multiple events", function(){ }); test("delegate with change", function(){ + expect(8); + var selectChange = 0, checkboxChange = 0; var select = jQuery("select[name='S1']"); @@ -1735,28 +1727,13 @@ test("delegate with change", function(){ checkbox.trigger("change"); equals( checkboxChange, 1, "Change on checkbox." ); - // test before activate on radio - - // test blur/focus on textarea - var textarea = jQuery("#area1"), textareaChange = 0, oldVal = textarea.val(); - jQuery("#body").delegate("#area1", "change", function() { - textareaChange++; - }); - - textarea.val(oldVal + "foo"); - textarea.trigger("change"); - equals( textareaChange, 1, "Change on textarea." ); - - textarea.val(oldVal); - jQuery("#body").undelegate("#area1", "change"); - // test blur/focus on text var text = jQuery("#name"), textChange = 0, oldTextVal = text.val(); jQuery("#body").delegate("#name", "change", function() { textChange++; }); - text.val(oldVal+"foo"); + text.val(oldTextVal+"foo"); text.trigger("change"); equals( textChange, 1, "Change on text input." ); @@ -1841,6 +1818,26 @@ test("window resize", function() { ok( !jQuery(window).data("__events__"), "Make sure all the events are gone." ); }); +test("focusin bubbles", function() { + //create an input and focusin on it + var input = jQuery(""), order = 0; + + input.prependTo("body"); + + jQuery("body").bind("focusin.focusinBubblesTest",function(){ + equals(1,order++,"focusin on the body second") + }); + + input.bind("focusin.focusinBubblesTest",function(){ + equals(0,order++,"focusin on the element first") + }); + + input[0].focus(); + input.remove(); + + jQuery("body").unbind("focusin.focusinBubblesTest"); +}); + /* test("jQuery(function($) {})", function() { stop();