nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jquery.event.drag-new / event.drop / test / touch.js
1 ;(function(){
2         
3         module("Touch Interaction");
4
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.');    
8                 });
9                 return;
10         }
11
12         // a simple re-usable test harness object
13         var obj = {
14                 init: function( opts ){
15                         obj.$drag =     $('<div />')
16                                 .css({
17                                         position: 'absolute',
18                                         top: 0,
19                                         left: 0,
20                                         height: 100,
21                                         width: 100
22                                 })
23                                 .appendTo( document.body )
24                                 .bind("draginit dragstart drag dragend click", opts || {}, function( event ){
25                                         obj[ event.type ] += 1;
26                                 });
27                         obj.$drop = $('<div />')
28                                 .css({
29                                         position: 'absolute',
30                                         top: 0,
31                                         left: 0,
32                                         height: 100,
33                                         width: 100
34                                 })
35                                 .appendTo( document.body )
36                                 .bind("dropinit dropstart drop dropend",function( event ){
37                                         obj[ event.type ] += 1;                                                                                                                          
38                                 });
39                         $.extend( obj, { 
40                                 draginit:0, dragstart:0, drag:0, dragend:0, 
41                                 dropinit:0, dropstart:0, drop:0, dropend:0,     
42                                 click:0 
43                         });
44                 },
45                 touch: function(){
46                         var start = {
47                                 pageX: Math.round( Math.random() * 90 ) + 5,
48                                 pageY: Math.round( Math.random() * 90 ) + 5
49                         },
50                         end = {
51                                 pageX: Math.round( Math.random() * 90 ) + start.pageX,
52                                 pageY: Math.round( Math.random() * 90 ) + start.pageY
53                         };
54                         // simulate a complete mouse drag
55                         obj.$drag
56                                 .fire("touchstart", start )
57                                 .fire("touchmove", end )
58                                 .fire("touchend", end )
59                                 .fire("click", end );
60                 },
61                 done: function(){
62                         obj.$drag.remove();
63                         obj.$drop.remove();
64                         start();
65                 }
66         };      
67
68         asyncTest('Drag and Drop defaults',function(){
69                 // prep DEFAULT interaction
70                 obj.init();
71                 // simulate DEFAULT interaction
72                 obj.touch();
73                 // inspect results      
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");
82                 // continue
83                 obj.done();
84         });
85         
86         asyncTest('Drag "drop" option (false)',function(){
87                 // prep interaction
88                 obj.init({ drop:false });
89                 // simulate drag
90                 obj.touch();
91                 // inspect results              
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");
100                 // continue
101                 obj.done();
102         });
103         
104         asyncTest('Drag "drop" option (unmatched)',function(){
105                 // prep interaction
106                 obj.init({ drop:'body' });
107                 // simulate drag
108                 obj.touch();
109                 // inspect results              
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");
118                 // continue
119                 obj.done();
120         });
121
122         asyncTest('Drag "drop" option (matched)',function(){
123                 // prep interaction
124                 obj.init({ drop:'div' });
125                 // simulate drag
126                 obj.touch();
127                 // inspect results              
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");
136                 // continue
137                 obj.done();
138         });
139
140 })();