3 module("Touch Interaction");
5 if ( !document.createEvent ){
6 test("Touch Simulation Not Supported",function(){
7 ok( true, 'This browser does not support "document.createEvent" and cannot simulate touch events.');
12 // a simple re-usable test harness object
14 init: function( opts ){
15 obj.$drag = $('<div />')
23 .appendTo( document.body )
24 .bind("draginit dragstart drag dragend click", opts || {}, function( event ){
25 obj[ event.type ] += 1;
27 obj.$drop = $('<div />')
35 .appendTo( document.body )
36 .bind("dropinit dropstart drop dropend",function( event ){
37 obj[ event.type ] += 1;
40 draginit:0, dragstart:0, drag:0, dragend:0,
41 dropinit:0, dropstart:0, drop:0, dropend:0,
47 pageX: Math.round( Math.random() * 90 ) + 5,
48 pageY: Math.round( Math.random() * 90 ) + 5
51 pageX: Math.round( Math.random() * 90 ) + start.pageX,
52 pageY: Math.round( Math.random() * 90 ) + start.pageY
54 // simulate a complete mouse drag
56 .fire("touchstart", start )
57 .fire("touchmove", end )
58 .fire("touchend", end )
68 asyncTest('Drag and Drop defaults',function(){
69 // prep DEFAULT interaction
71 // simulate DEFAULT interaction
74 equals( obj.draginit, 1, "draginit");
75 equals( obj.dragstart, 1, "dragstart");
76 equals( obj.drag, 1, "drag");
77 equals( obj.dragend, 1, "dragend");
78 equals( obj.dropinit, 1, "dropinit");
79 equals( obj.dropstart, 1, "dropstart");
80 equals( obj.drop, 1, "drop");
81 equals( obj.dropend, 1, "dropend");
86 asyncTest('Drag "drop" option (false)',function(){
88 obj.init({ drop:false });
92 equals( obj.draginit, 1, "draginit");
93 equals( obj.dragstart, 1, "dragstart");
94 equals( obj.drag, 1, "drag");
95 equals( obj.dragend, 1, "dragend");
96 equals( obj.dropinit, 0, "dropinit");
97 equals( obj.dropstart, 0, "dropstart");
98 equals( obj.drop, 0, "drop");
99 equals( obj.dropend, 0, "dropend");
104 asyncTest('Drag "drop" option (unmatched)',function(){
106 obj.init({ drop:'body' });
110 equals( obj.draginit, 1, "draginit");
111 equals( obj.dragstart, 1, "dragstart");
112 equals( obj.drag, 1, "drag");
113 equals( obj.dragend, 1, "dragend");
114 equals( obj.dropinit, 0, "dropinit");
115 equals( obj.dropstart, 0, "dropstart");
116 equals( obj.drop, 0, "drop");
117 equals( obj.dropend, 0, "dropend");
122 asyncTest('Drag "drop" option (matched)',function(){
124 obj.init({ drop:'div' });
128 equals( obj.draginit, 1, "draginit");
129 equals( obj.dragstart, 1, "dragstart");
130 equals( obj.drag, 1, "drag");
131 equals( obj.dragend, 1, "dragend");
132 equals( obj.dropinit, 1, "dropinit");
133 equals( obj.dropstart, 1, "dropstart");
134 equals( obj.drop, 1, "drop");
135 equals( obj.dropend, 1, "dropend");