3 module("Mouse Interaction");
5 // a simple re-usable test harness object
7 init: function( opts ){
8 obj.$drag = $('<div />')
16 .appendTo( document.body )
17 .bind("draginit dragstart drag dragend click", opts || {}, function( event ){
18 obj[ event.type ] += 1;
20 obj.$drop = $('<div />')
28 .appendTo( document.body )
29 .bind("dropinit dropstart drop dropend",function( event ){
30 obj[ event.type ] += 1;
33 draginit:0, dragstart:0, drag:0, dragend:0,
34 dropinit:0, dropstart:0, drop:0, dropend:0,
40 pageX: Math.round( Math.random() * 90 ) + 5,
41 pageY: Math.round( Math.random() * 90 ) + 5
44 pageX: Math.round( Math.random() * 90 ) + start.pageX,
45 pageY: Math.round( Math.random() * 90 ) + start.pageY
47 // simulate a complete mouse drag
49 .fire("mousedown", start )
50 .fire("mousemove", end )
51 .fire("mouseup", end )
61 asyncTest('Drag and Drop defaults',function(){
62 // prep DEFAULT interaction
64 // simulate DEFAULT interaction
67 equals( obj.draginit, 1, "draginit");
68 equals( obj.dragstart, 1, "dragstart");
69 equals( obj.drag, 1, "drag");
70 equals( obj.dragend, 1, "dragend");
71 equals( obj.dropinit, 1, "dropinit");
72 equals( obj.dropstart, 1, "dropstart");
73 equals( obj.drop, 1, "drop");
74 equals( obj.dropend, 1, "dropend");
79 asyncTest('Drag "drop" option (false)',function(){
81 obj.init({ drop:false });
85 equals( obj.draginit, 1, "draginit");
86 equals( obj.dragstart, 1, "dragstart");
87 equals( obj.drag, 1, "drag");
88 equals( obj.dragend, 1, "dragend");
89 equals( obj.dropinit, 0, "dropinit");
90 equals( obj.dropstart, 0, "dropstart");
91 equals( obj.drop, 0, "drop");
92 equals( obj.dropend, 0, "dropend");
97 asyncTest('Drag "drop" option (unmatched)',function(){
99 obj.init({ drop:'body' });
103 equals( obj.draginit, 1, "draginit");
104 equals( obj.dragstart, 1, "dragstart");
105 equals( obj.drag, 1, "drag");
106 equals( obj.dragend, 1, "dragend");
107 equals( obj.dropinit, 0, "dropinit");
108 equals( obj.dropstart, 0, "dropstart");
109 equals( obj.drop, 0, "drop");
110 equals( obj.dropend, 0, "dropend");
115 asyncTest('Drag "drop" option (matched)',function(){
117 obj.init({ drop:'div' });
121 equals( obj.draginit, 1, "draginit");
122 equals( obj.dragstart, 1, "dragstart");
123 equals( obj.drag, 1, "drag");
124 equals( obj.dragend, 1, "dragend");
125 equals( obj.dropinit, 1, "dropinit");
126 equals( obj.dropstart, 1, "dropstart");
127 equals( obj.drop, 1, "drop");
128 equals( obj.dropend, 1, "dropend");