X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=5efa0ec51de44941de5d7956d8f4ea05e5a11c8a;hb=ee845c49758eeb5236d9e4520b7921e12d5f29b9;hp=b5e24c8e742fda84efc969740ddab9023b193a6e;hpb=cb811c04b035eb2d652b0831e20ea1d3a4d9c448;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index b5e24c8..5efa0ec 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -1,5 +1,25 @@ module("event"); +test("null or undefined handler", function() { + expect(2); + // Supports Fixes bug #7229 + try { + + jQuery("#firstp").click(null); + + ok(true, "Passing a null handler will not throw an exception"); + + } catch (e) {} + + try { + + jQuery("#firstp").click(undefined); + + ok(true, "Passing an undefined handler will not throw an exception"); + + } catch (e) {} +}); + test("bind(), with data", function() { expect(3); var handler = function(event) { @@ -443,7 +463,7 @@ test("bind(name, false), unbind(name, false)", function() { }); test("bind()/trigger()/unbind() on plain object", function() { - expect( 5 ); + expect( 7 ); var obj = {}; @@ -457,8 +477,9 @@ test("bind()/trigger()/unbind() on plain object", function() { ok( true, "Custom event run." ); }); - var events = jQuery(obj).data("events"); + 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 +494,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 +1258,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 +1291,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 +1714,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 +1747,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." ); @@ -1829,6 +1826,38 @@ test("Non DOM element events", function() { jQuery(o).trigger('nonelementobj'); }); +test("window resize", function() { + expect(2); + + jQuery(window).unbind(); + + jQuery(window).bind("resize", function(){ + ok( true, "Resize event fired." ); + }).resize().unbind("resize"); + + 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();