diff --git a/jquery.simulate.js b/jquery.simulate.js index eeb5624..02d33e9 100644 --- a/jquery.simulate.js +++ b/jquery.simulate.js @@ -12,7 +12,7 @@ ;(function( $, undefined ) { var rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/; + rmouseEvent = /^(?:mouse|contextmenu)|click|drag(?:start|end|over|leave|enter)|drop/; $.fn.simulate = function( type, options ) { return this.each(function() { diff --git a/test/unit/simulate.js b/test/unit/simulate.js index 07d246a..8bea640 100644 --- a/test/unit/simulate.js +++ b/test/unit/simulate.js @@ -25,6 +25,69 @@ test( "click on radio triggers change", function() { notEqual( checked, firstRadio.prop( "checked" ), "radio state changed" ); }); +test( "accept dragstart event", function() { + var bindCalled = false + jQuery('
').bind('dragstart', function(e) { + bindCalled = true + }).simulate('dragstart',{}) + equal(bindCalled, true) +}); + +test( "accept dragenter event", function() { + var bindCalled = false + jQuery('').bind('dragenter', function(e) { + bindCalled = true + }).simulate('dragenter',{}) + equal(bindCalled, true) +}); + +test( "accept drageleave event", function() { + var bindCalled = false + jQuery('').bind('dragleave', function(e) { + bindCalled = true + }).simulate('dragleave',{}) + equal(bindCalled, true) +}); + +test( "accept drageover event", function() { + var bindCalled = false + jQuery('').bind('dragover', function(e) { + bindCalled = true + }).simulate('dragover',{}) + equal(bindCalled, true) +}); + +test( "accept dragend event", function() { + var bindCalled = false + jQuery('').bind('dragend', function(e) { + bindCalled = true + }).simulate('dragend',{}) + equal(bindCalled, true) +}); + +test( "accept drop event", function() { + var bindCalled = false + jQuery('').bind('drop', function(e) { + bindCalled = true + }).simulate('drop',{}) + equal(bindCalled, true) +}); + +test( "do not accept dragunknown event", function() { + var bindCalled = false + var expectException = false + try { + jQuery('').bind('dragunknown', function(e) { + bindCalled = true + }).simulate('dragunknown',{}) + } catch (e) { + expectException = true + } + notEqual(bindCalled, true) + equal(expectException, true) +}); + + var key = jQuery.simulate.keyCode, keyEvents = [ "keydown", "keyup", "keypress" ], i = 0;