@@ -666,284 +666,59 @@ test( "helper, default, switching after initialization", function() {
666666 TestHelpers . draggable . shouldMove ( element , "helper: original" ) ;
667667} ) ;
668668
669- test ( "{ helper: 'clone' }, relative" , function ( ) {
670- expect ( 2 ) ;
671-
672- var element = $ ( "#draggable1" ) . draggable ( { helper : "clone" } ) ;
673- TestHelpers . draggable . shouldMove ( element , "helper: clone relative" ) ;
674- } ) ;
675-
676- test ( "{ helper: 'clone' }, absolute" , function ( ) {
677- expect ( 2 ) ;
678-
679- var element = $ ( "#draggable2" ) . draggable ( { helper : "clone" } ) ;
680- TestHelpers . draggable . shouldMove ( element , "helper: clone absolute" ) ;
681- } ) ;
682-
683- test ( "{ helper: 'original' }, relative, with scroll offset on parent" , function ( ) {
684- expect ( 6 ) ;
685-
686- var element = $ ( "#draggable1" ) . draggable ( { helper : "original" } ) ;
687-
688- TestHelpers . draggable . setScroll ( "#main" ) ;
689- TestHelpers . draggable . testScroll ( element , "relative" ) ;
690-
691- TestHelpers . draggable . setScroll ( "#main" ) ;
692- TestHelpers . draggable . testScroll ( element , "static" ) ;
693-
694- TestHelpers . draggable . setScroll ( "#main" ) ;
695- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
696-
697- TestHelpers . draggable . restoreScroll ( "#main" ) ;
698- } ) ;
699-
700- test ( "{ helper: 'original' }, relative, with scroll offset on root" , function ( ) {
701- expect ( 6 ) ;
702-
703- var element = $ ( "#draggable1" ) . draggable ( { helper : "original" } ) ;
704-
705- TestHelpers . draggable . setScroll ( document ) ;
706- TestHelpers . draggable . testScroll ( element , "relative" ) ;
707-
708- TestHelpers . draggable . setScroll ( document ) ;
709- TestHelpers . draggable . testScroll ( element , "static" ) ;
710-
711- TestHelpers . draggable . setScroll ( document ) ;
712- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
713-
714- TestHelpers . draggable . restoreScroll ( document ) ;
715- } ) ;
716-
717- test ( "{ helper: 'original' }, relative, with scroll offset on root and parent" , function ( ) {
718- expect ( 6 ) ;
719-
720- var element = $ ( "#draggable1" ) . draggable ( { helper : "original" } ) ;
721-
722- TestHelpers . draggable . setScroll ( "#main" ) ;
723- TestHelpers . draggable . setScroll ( document ) ;
724- TestHelpers . draggable . testScroll ( element , "relative" ) ;
725-
726- TestHelpers . draggable . setScroll ( "#main" ) ;
727- TestHelpers . draggable . setScroll ( document ) ;
728- TestHelpers . draggable . testScroll ( element , "static" ) ;
729-
730- TestHelpers . draggable . setScroll ( "#main" ) ;
731- TestHelpers . draggable . setScroll ( document ) ;
732- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
733-
734- TestHelpers . draggable . restoreScroll ( "#main" ) ;
735- TestHelpers . draggable . restoreScroll ( document ) ;
736- } ) ;
737-
738- test ( "{ helper: 'original' }, absolute, with scroll offset on parent" , function ( ) {
739- expect ( 6 ) ;
740-
741- var element = $ ( "#draggable1" ) . css ( { position : "absolute" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
742-
743- TestHelpers . draggable . setScroll ( "#main" ) ;
744- TestHelpers . draggable . testScroll ( element , "relative" ) ;
745-
746- TestHelpers . draggable . setScroll ( "#main" ) ;
747- TestHelpers . draggable . testScroll ( element , "static" ) ;
748-
749- TestHelpers . draggable . setScroll ( "#main" ) ;
750- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
751-
752- TestHelpers . draggable . restoreScroll ( "#main" ) ;
753- } ) ;
754-
755- test ( "{ helper: 'original' }, absolute, with scroll offset on grandparent" , function ( ) {
756- expect ( 6 ) ;
757-
758- var element = $ ( "#draggable1" ) . css ( { position : "absolute" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
759-
760- TestHelpers . draggable . setScrollable ( "#main" , false ) ;
761- TestHelpers . draggable . setScrollable ( "#scrollParent" , true ) ;
762-
763- TestHelpers . draggable . setScroll ( "#scrollParent" ) ;
764- TestHelpers . draggable . testScroll ( element , "relative" ) ;
765-
766- TestHelpers . draggable . setScroll ( "#scrollParent" ) ;
767- TestHelpers . draggable . testScroll ( element , "static" ) ;
768-
769- TestHelpers . draggable . setScroll ( "#scrollParent" ) ;
770- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
771-
772- TestHelpers . draggable . restoreScroll ( "#scrollParent" ) ;
773- } ) ;
774-
775- test ( "{ helper: 'original' }, absolute, with scroll offset on root" , function ( ) {
776- expect ( 6 ) ;
777-
778- var element = $ ( "#draggable1" ) . css ( { position : "absolute" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
779-
780- TestHelpers . draggable . setScroll ( document ) ;
781- TestHelpers . draggable . testScroll ( element , "relative" ) ;
782-
783- TestHelpers . draggable . setScroll ( document ) ;
784- TestHelpers . draggable . testScroll ( element , "static" ) ;
785-
786- TestHelpers . draggable . setScroll ( document ) ;
787- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
788-
789- TestHelpers . draggable . restoreScroll ( document ) ;
790- } ) ;
791-
792- test ( "{ helper: 'original' }, absolute, with scroll offset on root and parent" , function ( ) {
793- expect ( 6 ) ;
794-
795- var element = $ ( "#draggable1" ) . css ( { position : "absolute" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
796-
797- TestHelpers . draggable . setScroll ( "#main" ) ;
798- TestHelpers . draggable . setScroll ( document ) ;
799- TestHelpers . draggable . testScroll ( element , "relative" ) ;
800-
801- TestHelpers . draggable . setScroll ( "#main" ) ;
802- TestHelpers . draggable . setScroll ( document ) ;
803- TestHelpers . draggable . testScroll ( element , "static" ) ;
804-
805- TestHelpers . draggable . setScroll ( "#main" ) ;
806- TestHelpers . draggable . setScroll ( document ) ;
807- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
808-
809- TestHelpers . draggable . restoreScroll ( "#main" ) ;
810- TestHelpers . draggable . restoreScroll ( document ) ;
811- } ) ;
812-
813- test ( "{ helper: 'original' }, fixed, with scroll offset on parent" , function ( ) {
814- expect ( 4 ) ;
815-
816- var element = $ ( "#draggable1" ) . css ( { position : "fixed" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
817-
818- TestHelpers . draggable . setScroll ( "#main" ) ;
819- TestHelpers . draggable . testScroll ( element , "relative" ) ;
820-
821- TestHelpers . draggable . setScroll ( "#main" ) ;
822- TestHelpers . draggable . testScroll ( element , "static" ) ;
823-
824- TestHelpers . draggable . setScroll ( "#main" ) ;
825- // TODO: investigate these failure in PhantomJS
826- //TestHelpers.draggable.testScroll( element, "absolute" );
827-
828- TestHelpers . draggable . restoreScroll ( "#main" ) ;
829- } ) ;
830-
831- test ( "{ helper: 'original' }, fixed, with scroll offset on root" , function ( ) {
832- expect ( 4 ) ;
833-
834- var element = $ ( "#draggable1" ) . css ( { position : "fixed" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
835-
836- TestHelpers . draggable . setScroll ( document ) ;
837- TestHelpers . draggable . testScroll ( element , "relative" ) ;
838-
839- TestHelpers . draggable . setScroll ( document ) ;
840- TestHelpers . draggable . testScroll ( element , "static" ) ;
841-
842- TestHelpers . draggable . setScroll ( document ) ;
843- // TODO: investigate these failure in PhantomJS
844- //TestHelpers.draggable.testScroll( element, "absolute" );
845-
846- TestHelpers . draggable . restoreScroll ( document ) ;
847- } ) ;
848-
849- test ( "{ helper: 'original' }, fixed, with scroll offset on root and parent" , function ( ) {
850- expect ( 4 ) ;
851-
852- var element = $ ( "#draggable1" ) . css ( { position : "fixed" , top : 0 , left : 0 } ) . draggable ( { helper : "original" } ) ;
853-
854- TestHelpers . draggable . setScroll ( "#main" ) ;
855- TestHelpers . draggable . setScroll ( document ) ;
856- TestHelpers . draggable . testScroll ( element , "relative" ) ;
857-
858- TestHelpers . draggable . setScroll ( "#main" ) ;
859- TestHelpers . draggable . setScroll ( document ) ;
860- TestHelpers . draggable . testScroll ( element , "static" ) ;
861-
862- TestHelpers . draggable . setScroll ( "#main" ) ;
863- TestHelpers . draggable . setScroll ( document ) ;
864- // TODO: investigate these failure in PhantomJS
865- //TestHelpers.draggable.testScroll( element, "absolute" );
866-
867- TestHelpers . draggable . restoreScroll ( "#main" ) ;
868- TestHelpers . draggable . restoreScroll ( document ) ;
869- } ) ;
870-
871- test ( "{ helper: 'clone' }, absolute" , function ( ) {
872- expect ( 1 ) ;
873-
874- var helperOffset = null ,
875- origOffset = $ ( "#draggable1" ) . offset ( ) ,
876- element = $ ( "#draggable1" ) . draggable ( { helper : "clone" , drag : function ( event , ui ) {
877- helperOffset = ui . helper . offset ( ) ;
878- } } ) ;
879-
880- element . simulate ( "drag" , {
881- dx : 1 ,
882- dy : 1
883- } ) ;
884- deepEqual ( { top : helperOffset . top - 1 , left : helperOffset . left - 1 } , origOffset , "dragged[1, 1]" ) ;
885- } ) ;
886-
887- test ( "{ helper: 'clone' }, absolute with scroll offset on parent" , function ( ) {
888- expect ( 6 ) ;
889-
890- var element = $ ( "#draggable1" ) . draggable ( {
891- helper : "clone"
892- } ) ;
893-
894- TestHelpers . draggable . setScroll ( "#main" ) ;
895- TestHelpers . draggable . testScroll ( element , "relative" ) ;
896-
897- TestHelpers . draggable . setScroll ( "#main" ) ;
898- TestHelpers . draggable . testScroll ( element , "static" ) ;
899-
900- TestHelpers . draggable . setScroll ( "#main" ) ;
901- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
902-
903- TestHelpers . draggable . restoreScroll ( "#main" ) ;
904- } ) ;
905-
906- test ( "{ helper: 'clone' }, absolute with scroll offset on root" , function ( ) {
907- expect ( 6 ) ;
908-
909- var element = $ ( "#draggable1" ) . draggable ( {
910- helper : "clone"
911- } ) ;
912-
913- TestHelpers . draggable . setScroll ( document ) ;
914- TestHelpers . draggable . testScroll ( element , "relative" ) ;
915-
916- TestHelpers . draggable . setScroll ( document ) ;
917- TestHelpers . draggable . testScroll ( element , "static" ) ;
918-
919- TestHelpers . draggable . setScroll ( document ) ;
920- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
921-
922- TestHelpers . draggable . restoreScroll ( document ) ;
923- } ) ;
924-
925- test ( "{ helper: 'clone' }, absolute with scroll offset on root and parent" , function ( ) {
926- expect ( 6 ) ;
927-
928- var element = $ ( "#draggable1" ) . draggable ( {
929- helper : "clone"
930- } ) ;
669+ /* jshint loopfunc: true */
670+ ( function ( ) {
671+ var k , l , m ,
672+ scrollElements = {
673+ "no elements" : [ ] ,
674+ "parent" : [ "#main" ] ,
675+ "root" : [ document ] ,
676+ "parent and root" : [ "#main" , document ] ,
677+ "grandparent" : [ "#scrollParent" ]
678+ } ,
679+ positions = [ "absolute" , "fixed" , "relative" ] ,
680+ helpers = [ "original" , "clone" ] ,
681+ scrollPositions = [ "relative" , "static" , "absolute" ] ;
682+
683+ for ( m = 0 ; m < helpers . length ; m ++ ) {
684+ for ( l = 0 ; l < positions . length ; l ++ ) {
685+ for ( k in scrollElements ) {
686+ ( function ( position , helper , scrollElements , scrollElementsTitle ) {
687+ test ( "{ helper: '" + helper + "' }, " + position + ", with scroll offset on " + scrollElementsTitle , function ( ) {
688+ expect ( 6 ) ;
689+ var i , j ,
690+ element = $ ( "#draggable1" ) . css ( { position : position , top : 0 , left : 0 } ) . draggable ( {
691+ helper : helper
692+ } ) ;
693+
694+ if ( scrollElements . length === 1 && scrollElements [ 1 ] === "#scrollParent" ) {
695+ TestHelpers . draggable . setScrollable ( "#main" , false ) ;
696+ TestHelpers . draggable . setScrollable ( "#scrollParent" , true ) ;
697+ }
931698
932- TestHelpers . draggable . setScroll ( document ) ;
933- TestHelpers . draggable . setScroll ( "#main" ) ;
934- TestHelpers . draggable . testScroll ( element , "relative" ) ;
699+ for ( j = 0 ; j < scrollPositions . length ; j ++ ) {
700+ for ( i = 0 ; i < scrollElements . length ; i ++ ) {
701+ TestHelpers . draggable . setScroll ( scrollElements [ i ] ) ;
702+ }
935703
936- TestHelpers . draggable . setScroll ( document ) ;
937- TestHelpers . draggable . setScroll ( "#main" ) ;
938- TestHelpers . draggable . testScroll ( element , "static" ) ;
704+ TestHelpers . draggable . testScroll ( element , scrollPositions [ j ] ) ;
939705
940- TestHelpers . draggable . setScroll ( document ) ;
941- TestHelpers . draggable . setScroll ( "#main" ) ;
942- TestHelpers . draggable . testScroll ( element , "absolute" ) ;
706+ for ( i = 0 ; i < scrollElements . length ; i ++ ) {
707+ TestHelpers . draggable . restoreScroll ( scrollElements [ i ] ) ;
708+ }
709+ }
943710
944- TestHelpers . draggable . restoreScroll ( document ) ;
945- TestHelpers . draggable . restoreScroll ( "#main" ) ;
946- } ) ;
711+ if ( scrollElements . length === 1 && scrollElements [ 1 ] === "#scrollParent" ) {
712+ TestHelpers . draggable . setScrollable ( "#main" , true ) ;
713+ TestHelpers . draggable . setScrollable ( "#scrollParent" , false ) ;
714+ }
715+ } ) ;
716+ } ) ( positions [ l ] , helpers [ m ] , scrollElements [ k ] , k ) ;
717+ }
718+ }
719+ }
720+ } ) ( ) ;
721+ /* jshint loopfunc: false */
947722
948723test ( "{ opacity: 0.5 }" , function ( ) {
949724 expect ( 1 ) ;
0 commit comments