nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jquery.event.drag-new / event.drag / test / handlers.js
1 ;(function(){
2         
3         module("Event Handlers");
4
5         // a simple re-usable test harness object
6         var obj = {
7                 init: function( opts ){
8                         obj.$div =      $('<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                                         if ( obj.extra[ event.type ] )
20                                                 obj.extra[ event.type ].apply( this, arguments );
21                                         return obj.returned[ event.type ];
22                                 });
23                         
24                         $.extend( obj, { draginit:0, dragstart:0, drag:0, dragend:0, click:0 });
25                         obj.extra = {};
26                         obj.returned = {};
27                 },
28                 mouse: function(){
29                         var start = {
30                                 pageX: Math.round( Math.random() * 90 ) + 5,
31                                 pageY: Math.round( Math.random() * 90 ) + 5
32                         },
33                         end = {
34                                 pageX: Math.round( Math.random() * 90 ) + start.pageX,
35                                 pageY: Math.round( Math.random() * 90 ) + start.pageY
36                         };
37                         // simulate a complete mouse drag
38                         obj.$div
39                                 .fire("mousedown", start )
40                                 .fire("mousemove", end )
41                                 .fire("mouseup", end )
42                                 .fire("click", end );
43                 },
44                 done: function( ms ){
45                         obj.$div.remove();
46                         start();
47                 }
48         };
49                         
50         // test DRAGINIT FALSE
51         asyncTest('"draginit" return false',function(){
52                 expect( 5 );            
53                 // test prep
54                 obj.init();
55                 obj.returned['draginit'] = false;
56                 // simulate a mouse drag
57                 obj.mouse();
58                 // check counts
59                 equals( obj.draginit, 1, "draginit fired");
60                 equals( obj.dragstart, 0, "dragstart did not fire");
61                 equals( obj.drag, 0, "drag did not fire");
62                 equals( obj.dragend, 0, "dragend did not fire");
63                 equals( obj.click, 1, "click fired");
64                 // continue
65                 obj.done();     
66         });
67
68         asyncTest('"dragstart" return false',function(){
69                 expect( 5 );
70                 // test prep
71                 obj.init();
72                 obj.returned['dragstart'] = false;
73                 // simulate a mouse drag
74                 obj.mouse();
75                 // check counts
76                 equals( obj.draginit, 1, "draginit fired");
77                 equals( obj.dragstart, 1, "dragstart fired");
78                 equals( obj.drag, 0, "drag did not fire");
79                 equals( obj.dragend, 0, "dragend did not fire");
80                 equals( obj.click, 1, "click fired");
81                 // continue
82                 obj.done();     
83         });
84
85         asyncTest('"drag" return false',function(){
86                 expect( 5 );
87                 // test prep
88                 obj.init();
89                 obj.returned['drag'] = false;
90                 // simulate a mouse drag
91                 obj.mouse();
92                 // check ocunts
93                 equals( obj.draginit, 1, "draginit fired");
94                 equals( obj.dragstart, 1, "dragstart fired");
95                 equals( obj.drag, 1, "drag fired");
96                 equals( obj.dragend, 1, "dragend fired");
97                 equals( obj.click, 0, "click did not fire");
98                 // continue
99                 obj.done();     
100         });
101
102         asyncTest('"draginit" return new element',function(){
103                 expect( 8 );
104                 // test prep
105                 obj.init();
106                 var $clone = obj.returned['draginit'] = obj.$div.clone( true );
107                 obj.extra['dragstart'] = obj.extra['drag'] = obj.extra['dragend'] = function( ev, dd ){
108                         ok( dd.drag === $clone[0], ev.type +' target element' );
109                 };
110                 // simulate a mouse drag
111                 obj.mouse();
112                 // check counts
113                 equals( obj.draginit, 1, "draginit fired");
114                 equals( obj.dragstart, 1, "dragstart fired");
115                 equals( obj.drag, 1, "drag fired");
116                 equals( obj.dragend, 1, "dragend fired");
117                 equals( obj.click, 0, "click did not fire");
118                 // continue
119                 obj.done();     
120         });
121
122         asyncTest('"draginit" return multiple elements',function(){
123                 expect( 5 );
124                 // test prep
125                 obj.init();
126                 obj.returned['draginit'] = obj.$div.clone( true ).add( obj.$div );
127                 // simulate a mouse drag
128                 obj.mouse();
129                 // check counts
130                 equals( obj.draginit, 1, "draginit fired once");
131                 equals( obj.dragstart, 2, "dragstart fired twice");
132                 equals( obj.drag, 2, "drag fired twice");
133                 equals( obj.dragend, 2, "dragend fired twice");
134                 equals( obj.click, 0, "click did not fire");
135                 // continue
136                 obj.done();     
137         });
138
139
140         asyncTest('"dragstart" return proxy element',function(){
141                 expect( 7 );
142                 // test prep
143                 obj.init();
144                 var $proxy = obj.returned['dragstart'] = obj.$div.clone().addClass('proxy');
145                 obj.extra['drag'] = obj.extra['dragend'] = function( ev, dd ){
146                         ok( dd.proxy === $proxy[0], ev.type +' proxy element' );
147                 };
148                 // simulate a mouse drag
149                 obj.mouse();
150                 // check counts 
151                 equals( obj.draginit, 1, "draginit");
152                 equals( obj.dragstart, 1, "dragstart");
153                 equals( obj.drag, 1, "drag");
154                 equals( obj.dragend, 1, "dragend");
155                 equals( obj.click, 0, "click did not fire");
156                 // continue
157                 obj.done();     
158         });
159
160 })();