nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jquery.event.drag-new / event.drop / test / interaction.js
1 ;(function(){
2         
3         module("Mouse Interaction");    
4         
5         // a simple re-usable test harness object
6         var obj = {
7                 init: function( opts ){
8                         obj.$drag =     $('<div />')
9                                 .css({
10                                         position: 'absolute',
11                                         top: 0,
12                                         left: 0,
13                                         height: 100,
14                                         width: 100
15                                 })
16                                 .appendTo( document.body )
17                                 .bind("draginit dragstart drag dragend click", opts || {}, function( event ){
18                                         obj[ event.type ] += 1;
19                                 });
20                         obj.$drop = $('<div />')
21                                 .css({
22                                         position: 'absolute',
23                                         top: 0,
24                                         left: 0,
25                                         height: 100,
26                                         width: 100
27                                 })
28                                 .appendTo( document.body )
29                                 .bind("dropinit dropstart drop dropend",function( event ){
30                                         obj[ event.type ] += 1;                                                                                                                          
31                                 });
32                         $.extend( obj, { 
33                                 draginit:0, dragstart:0, drag:0, dragend:0, 
34                                 dropinit:0, dropstart:0, drop:0, dropend:0,     
35                                 click:0 
36                         });
37                 },
38                 mouse: function(){
39                         var start = {
40                                 pageX: Math.round( Math.random() * 90 ) + 5,
41                                 pageY: Math.round( Math.random() * 90 ) + 5
42                         },
43                         end = {
44                                 pageX: Math.round( Math.random() * 90 ) + start.pageX,
45                                 pageY: Math.round( Math.random() * 90 ) + start.pageY
46                         };
47                         // simulate a complete mouse drag
48                         obj.$drag
49                                 .fire("mousedown", start )
50                                 .fire("mousemove", end )
51                                 .fire("mouseup", end )
52                                 .fire("click", end );
53                 },
54                 done: function(){
55                         obj.$drag.remove();
56                         obj.$drop.remove();
57                         start();
58                 }
59         };      
60
61         asyncTest('Drag and Drop defaults',function(){
62                 // prep DEFAULT interaction
63                 obj.init();
64                 // simulate DEFAULT interaction
65                 obj.mouse();
66                 // inspect results      
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");
75                 // continue
76                 obj.done();
77         });
78         
79         asyncTest('Drag "drop" option (false)',function(){
80                 // prep interaction
81                 obj.init({ drop:false });
82                 // simulate drag
83                 obj.mouse();
84                 // inspect results              
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");
93                 // continue
94                 obj.done();
95         });
96         
97         asyncTest('Drag "drop" option (unmatched)',function(){
98                 // prep interaction
99                 obj.init({ drop:'body' });
100                 // simulate drag
101                 obj.mouse();
102                 // inspect results              
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");
111                 // continue
112                 obj.done();
113         });
114
115         asyncTest('Drag "drop" option (matched)',function(){
116                 // prep interaction
117                 obj.init({ drop:'div' });
118                 // simulate drag
119                 obj.mouse();
120                 // inspect results              
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");
129                 // continue
130                 obj.done();
131         });
132         
133 })();
134