diff options
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/test/tolerance.js')
-rw-r--r-- | ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/test/tolerance.js | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/test/tolerance.js b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/test/tolerance.js new file mode 100644 index 00000000..4bdaf6e5 --- /dev/null +++ b/ecomp-portal-FE/client/bower_components/jquery.event.drag-new/event.drop/test/tolerance.js @@ -0,0 +1,189 @@ +;(function(){ + + module("Tolerance Mode"); + + // re-usable test harness object + var obj = { + init: function( opts ){ + // the drop element + obj.$drop = $('<div />') + .css({ + position: 'absolute', + top: 200, + left: 200, + height: 100, + width: 100 + }) + .appendTo( document.body ) + .bind("dropinit",function( event ){ + if ( obj.multidrop ) + return $( this ) + .clone( true ) + .addClass('clone') + .appendTo( document.body ) + .add( this ); + }) + .bind("drop",function( event ){ + obj.count += 1; + }); + // the drag element + obj.$drag = $('<div />') + .css({ + position: 'absolute', + top: 100, + left: 100, + height: 100, + width: 100 + }) + .appendTo( document.body ) + .bind("draginit", function( event ){ + if ( obj.multidrag ) + return $( this ) + .clone( true ) + .addClass('clone') + .appendTo( document.body ) + .add( this ); + }) + .bind("dragstart",function( ev, dd ){ + if ( obj.proxy ) + return $( this ).clone() + .addClass('clone') + .appendTo( document.body ); + }) + .bind("drag",function( ev, dd ){ + if ( obj.move ) + $( dd.proxy ).css({ + top: dd.offsetY, + left: dd.offsetX + }); + }) + .bind("dragend",function( ev, dd ){ + var $div = $( this ).css({ + top: 100, + left: 100 + }); + $( document.body ).find('.clone').remove(); + }); + // reset test vars + obj.count = 0; + obj.move = obj.proxy = obj.multidrag = obj.multidrop = null; + }, + done: function(){ + obj.$drag.remove(); + obj.$drop.remove(); + start(); + } + }; + + // async iterator + function asyncEach( obj, func, after ){ + // local refs + var arr = [], i = 0, len; + // translate into a secondary array + $.each( obj, function( index, value ){ + len = arr.push({ that:this, index:index, value:value }); + }); + function next(){ + var data = arr[ i++ ], ret; + if ( i <= len ){ + if ( data ) + ret = func.call( data.that, data.index, data.value, next ); + if ( ret === false ) + done(); + } + else done(); + }; + function done(){ + if ( after ) + after(); + }; + next(); + } + + // test each mode... + $.each({ + 'mouse':{ + 'overlap':[0,0,0,0,0], + 'middle':[0,0,0,0,0], + 'fit':[0,0,0,0,0], + 'mouse':[1,1,1,2,4], + 'away':[0,0,0,0,0] + }, + 'overlap':{ + 'overlap':[0,1,1,2,4], + 'middle':[0,1,1,2,4], + 'fit':[0,1,1,2,4], + 'mouse':[0,0,0,0,0], + 'away':[0,0,0,0,0] + }, + 'middle':{ + 'overlap':[0,0,0,0,0], + 'middle':[0,1,1,2,4], + 'fit':[0,1,1,2,4], + 'mouse':[0,0,0,0,0], + 'away':[0,0,0,0,0] + }, + 'fit':{ + 'overlap':[0,0,0,0,0], + 'middle':[0,0,0,0,0], + 'fit':[0,1,1,2,4], + 'mouse':[0,0,0,0,0], + 'away':[0,0,0,0,0] + }, + 'intersect':{ + 'overlap':[0,1,1,2,4], + 'middle':[0,1,1,2,4], + 'fit':[0,1,1,2,4], + 'mouse':[1,1,1,2,4], + 'away':[0,0,0,0,0] + } + }, function( mode, expected ){ + + // test each mode + asyncTest('"'+ mode +'"',function(){ + + expect( 25 ); + + // test prep + obj.init(); + $.drop({ + mode:mode, + multi:true + }); + // drag to each position + asyncEach({ + 'overlap':{ pageX:33, pageY:33 }, + 'middle':{ pageX:66, pageY:66 }, + 'fit':{ pageX:100, pageY:100 }, + 'mouse':{ pageX:250, pageY:250 }, + 'away':{ pageX:-1, pageY:-1 } + }, function( where, coord, next ){ + // execute interaction variants + asyncEach([ + 'dropped '+ where +' (no motion)', + 'dropped '+ where +' (drag motion)', + 'dropped '+ where +' (proxy motion)', + 'dropped '+ where +' (multi drag)', + 'dropped '+ where +' (multi drop)' + ], function( i, msg, next ){ + // set-up + obj.count = 0; + obj.move = ( i > 0 ); + obj.proxy = ( i > 1 ); + obj.multidrag = ( i > 2 ); + obj.multidrop = ( i > 3 ); + // simulate a partial drag + obj.$drag + .fire("mousedown",{ pageX:0, pageY:0 }) + .fire("mousemove", coord ) + .fire("mouseup", coord ) + .fire("click", coord ); + equals( obj.count, expected[where][i], msg ); + next(); + }, next ); + }, obj.done ); + }); + + }); + +})();
\ No newline at end of file |