Skip to content

Commit c9b0e28

Browse files
committed
Draggable Tests: consolidate drag tests and provide error messages for all assertions.
1 parent 0144b27 commit c9b0e28

File tree

3 files changed

+64
-65
lines changed

3 files changed

+64
-65
lines changed

tests/unit/draggable/draggable_core.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ test( "element types", function() {
4444

4545
test( "No options, relative", function() {
4646
expect( 1 );
47-
TestHelpers.draggable.shouldMove( $( "#draggable1" ).draggable() );
47+
TestHelpers.draggable.shouldMove( $( "#draggable1" ).draggable(), "no options, relative" );
4848
});
4949

5050
test( "No options, absolute", function() {
5151
expect( 1 );
52-
TestHelpers.draggable.shouldMove( $( "#draggable2" ).draggable() );
52+
TestHelpers.draggable.shouldMove( $( "#draggable2" ).draggable(), "no options, absolute" );
5353
});
5454

5555
test( "resizable handle with complex markup (#8756 / #8757)", function() {
@@ -199,7 +199,7 @@ test( "#5727: draggable from iframe" , function() {
199199

200200
equal( draggable1.closest( iframeBody ).length, 1 );
201201

202-
TestHelpers.draggable.shouldMove( draggable1 );
202+
TestHelpers.draggable.shouldMove( draggable1, "draggable from an iframe" );
203203
});
204204

205205
test( "#8399: A draggable should become the active element after you are finished interacting with it, but not before.", function() {

tests/unit/draggable/draggable_options.js

Lines changed: 55 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,31 @@ module( "draggable: options" );
66
test( "{ appendTo: 'parent' }, default, no clone", function() {
77
expect( 2 );
88
var element = $( "#draggable2" ).draggable({ appendTo: "parent" });
9-
TestHelpers.draggable.shouldMove( element );
9+
TestHelpers.draggable.shouldMove( element, "absolute appendTo: parent" );
1010

1111
element = $( "#draggable1" ).draggable({ appendTo: "parent" });
12-
TestHelpers.draggable.shouldMove( element );
12+
TestHelpers.draggable.shouldMove( element, "relative appendTo: parent" );
1313
});
1414

1515
// TODO: This doesn't actually test whether append happened, possibly remove
1616
test( "{ appendTo: Element }, no clone", function() {
1717
expect( 2 );
1818
var element = $( "#draggable2" ).draggable({ appendTo: $( "#draggable2" ).parent()[ 0 ] });
1919

20-
TestHelpers.draggable.shouldMove( element );
20+
TestHelpers.draggable.shouldMove( element, "absolute appendTo: Element" );
2121

2222
element = $( "#draggable1" ).draggable({ appendTo: $( "#draggable2" ).parent()[ 0 ] });
23-
TestHelpers.draggable.shouldMove( element );
23+
TestHelpers.draggable.shouldMove( element, "relative appendTo: Element" );
2424
});
2525

2626
// TODO: This doesn't actually test whether append happened, possibly remove
2727
test( "{ appendTo: Selector }, no clone", function() {
2828
expect( 2 );
2929
var element = $( "#draggable2" ).draggable({ appendTo: "#main" });
30-
TestHelpers.draggable.shouldMove( element );
30+
TestHelpers.draggable.shouldMove( element, "absolute appendTo: Selector" );
3131

3232
element = $( "#draggable1" ).draggable({ appendTo: "#main" });
33-
TestHelpers.draggable.shouldMove( element );
33+
TestHelpers.draggable.shouldMove( element, "relative appendTo: Selector" );
3434
});
3535

3636
test( "{ appendTo: 'parent' }, default", function() {
@@ -102,19 +102,19 @@ test( "appendTo, default, switching after initialization", function() {
102102
test( "{ axis: false }, default", function() {
103103
expect( 1 );
104104
var element = $( "#draggable2" ).draggable({ axis: false });
105-
TestHelpers.draggable.shouldMove( element );
105+
TestHelpers.draggable.shouldMove( element, "axis: false" );
106106
});
107107

108108
test( "{ axis: 'x' }", function() {
109109
expect( 1 );
110110
var element = $( "#draggable2" ).draggable({ axis: "x" });
111-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0 );
111+
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0, "axis: x" );
112112
});
113113

114114
test( "{ axis: 'y' }", function() {
115115
expect( 1 );
116116
var element = $( "#draggable2" ).draggable({ axis: "y" });
117-
TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50 );
117+
TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50, "axis: y" );
118118
});
119119

120120
test( "{ axis: ? }, unexpected", function() {
@@ -132,7 +132,7 @@ test( "{ axis: ? }, unexpected", function() {
132132

133133
$.each(unexpected, function(key, val) {
134134
element = $( "#draggable2" ).draggable({ axis: val });
135-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50, "axis: " + key );
135+
TestHelpers.draggable.shouldMove( element, "axis: " + key );
136136
element.draggable( "destroy" );
137137
});
138138
});
@@ -143,15 +143,15 @@ test( "axis, default, switching after initialization", function() {
143143
var element = $( "#draggable1" ).draggable({ axis : false });
144144

145145
// Any Direction
146-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
146+
TestHelpers.draggable.shouldMove( element, "axis: default" );
147147

148148
// Only horizontal
149149
element.draggable( "option", "axis", "x" );
150-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0 );
150+
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0, "axis: x as option" );
151151

152152
// Vertical only
153153
element.draggable( "option", "axis", "y" );
154-
TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50 );
154+
TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50, "axis: y as option" );
155155

156156
});
157157

@@ -161,25 +161,25 @@ test( "{ cancel: 'input,textarea,button,select,option' }, default", function() {
161161
$( "<div id='draggable-option-cancel-default'><input type='text'></div>" ).appendTo( "#main" );
162162

163163
var element = $( "#draggable-option-cancel-default" ).draggable({ cancel: "input,textarea,button,select,option" });
164-
TestHelpers.draggable.shouldMove( element );
164+
TestHelpers.draggable.shouldMove( element, "cancel: default, element dragged" );
165165

166166
element.draggable( "destroy" );
167167

168168
element = $( "#draggable-option-cancel-default" ).draggable({ cancel: "input,textarea,button,select,option" });
169-
TestHelpers.draggable.testDrag( element, "#draggable-option-cancel-default input", 50, 50, 0, 0 );
169+
TestHelpers.draggable.shouldNotMove( element, "cancel: default, input dragged", "#draggable-option-cancel-default input" );
170170
element.draggable( "destroy" );
171171
});
172172

173173
test( "{ cancel: 'span' }", function() {
174174
expect( 2 );
175175

176176
var element = $( "#draggable2" ).draggable();
177-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50 );
177+
TestHelpers.draggable.shouldMove( element, "cancel: default, span dragged", "#draggable2 span" );
178178

179179
element.draggable( "destroy" );
180180

181181
element = $( "#draggable2" ).draggable({ cancel: "span" });
182-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 0, 0 );
182+
TestHelpers.draggable.shouldNotMove( element, "cancel: span, span dragged","#draggable2 span" );
183183
});
184184

185185
test( "{ cancel: ? }, unexpected", function() {
@@ -202,7 +202,7 @@ test( "{ cancel: ? }, unexpected", function() {
202202
});
203203
});
204204

205-
/**
205+
/*
206206
test( "{ cancel: Selectors }, matching parent selector", function() {
207207
208208
expect( 5 );
@@ -215,17 +215,15 @@ test( "{ cancel: Selectors }, matching parent selector", function() {
215215
216216
$( "#wrapping a" ).append( element );
217217
218-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50, "drag span child" );
219-
TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ) );
220-
TestHelpers.draggable.shouldNotMove( $( "#wrapping a" ) );
218+
TestHelpers.draggable.shouldMove( element, "drag span child", "#draggable2 span" );
219+
TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ), "drag span a" );
220+
TestHelpers.draggable.shouldNotMove( $( "#wrapping a" ), "drag wrapping a" );
221221
222222
$( "#draggable2" ).draggable( "option", "cancel", "span > a" );
223223
$( "#draggable2" ).find( "a" ).append( "<a>" );
224224
225-
226-
TestHelpers.draggable.testDrag( element, $( "#draggable2 span a" ).last(), 50, 50, 50, 50, "drag span child" );
227-
TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ).first() );
228-
225+
TestHelpers.draggable.shouldMove( element, "drag span child", $( "#draggable2 span a" ).last() );
226+
TestHelpers.draggable.shouldNotMove( $( "#draggable2 span a" ).first(), "drag span a first child" );
229227
});
230228
*/
231229

@@ -237,17 +235,16 @@ test( "cancelement, default, switching after initialization", function() {
237235
var input = $( "#draggable-option-cancel-default input" ),
238236
element = $( "#draggable-option-cancel-default" ).draggable();
239237

240-
TestHelpers.draggable.testDrag( element, input, 50, 50, 0, 0 );
238+
TestHelpers.draggable.shouldNotMove( element, "cancel: default, input dragged", input );
241239

242240
element.draggable( "option", "cancel", "textarea" );
243-
TestHelpers.draggable.testDrag( element, input, 50, 50, 50, 50 );
241+
TestHelpers.draggable.shouldMove( element, "cancel: textarea, input dragged", input );
244242

245243
element.draggable( "option", "cancel", "input" );
246-
TestHelpers.draggable.testDrag( element, input, 50, 50, 0, 0 );
244+
TestHelpers.draggable.shouldNotMove( element, "cancel: input, input dragged", input );
247245
});
248246

249247
/*
250-
251248
test( "{ connectToSortable: selector }, default", function() {
252249
expect( 1 );
253250
@@ -303,7 +300,7 @@ test( "{ containment: [x1, y1, x2, y2] }", function() {
303300

304301
element.draggable( "option", "containment", [ eo.left, eo.top, eo.left + element.width() + 5, eo.top + element.height() + 5 ] );
305302

306-
TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0 );
303+
TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0, "containment: [x1, y1, x2, y2]" );
307304
});
308305

309306
test( "{ containment: 'parent' }, relative", function() {
@@ -382,7 +379,7 @@ test( "containment, default, switching after initialization", function() {
382379

383380
var element = $( "#draggable1" ).draggable({ containment: false });
384381

385-
TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 );
382+
TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100, "containment: default" );
386383

387384
element.draggable( "option", "containment", "parent" )
388385
.css({
@@ -391,10 +388,10 @@ test( "containment, default, switching after initialization", function() {
391388
})
392389
.appendTo( $( "#main" ) );
393390

394-
TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0 );
391+
TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0, "containment: parent as option" );
395392

396393
element.draggable( "option", "containment", false );
397-
TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 );
394+
TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100, "containment: false as option" );
398395
});
399396

400397
test( "{ cursor: 'auto' }, default", function() {
@@ -593,29 +590,29 @@ test( "disabled", function() {
593590

594591
var element = $( "#draggable1" ).draggable();
595592

596-
TestHelpers.draggable.shouldMove( element );
593+
TestHelpers.draggable.shouldMove( element, "disabled: default" );
597594

598595
element.draggable( "option", "disabled", true );
599-
TestHelpers.draggable.shouldNotMove( element );
596+
TestHelpers.draggable.shouldNotMove( element, "option: disabled true" );
600597

601598
element.draggable( "option", "disabled", false );
602-
TestHelpers.draggable.shouldMove( element );
599+
TestHelpers.draggable.shouldMove( element, "option: disabled false" );
603600
});
604601

605602
test( "{ grid: [50, 50] }, relative", function() {
606603
expect( 2 );
607604

608605
var element = $( "#draggable1" ).draggable({ grid: [ 50, 50 ] });
609-
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
610-
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
606+
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0, "grid: [50, 50] relative" );
607+
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50, "grid: [50, 50] relative" );
611608
});
612609

613610
test( "{ grid: [50, 50] }, absolute", function() {
614611
expect( 2 );
615612

616613
var element = $( "#draggable2" ).draggable({ grid: [ 50, 50 ] });
617-
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
618-
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
614+
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0, "grid: [50, 50] absolute" );
615+
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50, "grid: [50, 50] absolute" );
619616
});
620617

621618
test( "grid, switching after initialization", function() {
@@ -624,69 +621,69 @@ test( "grid, switching after initialization", function() {
624621
var element = $( "#draggable1" ).draggable();
625622

626623
// Forward
627-
TestHelpers.draggable.testDrag( element, element, 24, 24, 24, 24 );
628-
TestHelpers.draggable.testDrag( element, element, 0, 0, 0, 0 );
624+
TestHelpers.draggable.testDrag( element, element, 24, 24, 24, 24, "grid: default" );
625+
TestHelpers.draggable.testDrag( element, element, 0, 0, 0, 0, "grid: default" );
629626

630627
element.draggable( "option", "grid", [ 50,50 ] );
631628

632-
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
633-
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
629+
TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0, "grid: [50, 50] as option" );
630+
TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50, "grid: [50, 50] as option" );
634631
});
635632

636633
test( "{ handle: 'span' }", function() {
637634
expect( 3 );
638635

639636
var element = $( "#draggable2" ).draggable({ handle: "span" });
640637

641-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50, "drag span" );
642-
TestHelpers.draggable.testDrag( element, "#draggable2 span em", 50, 50, 50, 50, "drag span child" );
643-
TestHelpers.draggable.shouldNotMove( element, "drag element" );
638+
TestHelpers.draggable.shouldMove( element, "handle: span", "#draggable2 span");
639+
TestHelpers.draggable.shouldMove( element, "handle: span child", "#draggable2 span em" );
640+
TestHelpers.draggable.shouldNotMove( element, "handle: span element" );
644641
});
645642

646643
test( "handle, default, switching after initialization", function() {
647644
expect( 6 );
648645

649646
var element = $( "#draggable2" ).draggable();
650647

651-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
652-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
648+
TestHelpers.draggable.shouldMove( element, "handle: default, element dragged" );
649+
TestHelpers.draggable.shouldMove( element, "handle: default, span dragged", "#draggable2 span" );
653650

654651
// Switch
655652
element.draggable( "option", "handle", "span" );
656-
TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 0 );
657-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
653+
TestHelpers.draggable.shouldNotMove( element, "handle: span as option, element dragged" );
654+
TestHelpers.draggable.shouldMove( element, "handle: span as option, span dragged", "#draggable2 span" );
658655

659656
// And back
660657
element.draggable( "option", "handle", false );
661-
TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
662-
TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
658+
TestHelpers.draggable.shouldMove( element, "handle: false as option, element dragged" );
659+
TestHelpers.draggable.shouldMove( element, "handle: false as option, span dragged", "#draggable2 span" );
663660
});
664661

665662
test( "helper, default, switching after initialization", function() {
666663
expect( 3 );
667664

668665
var element = $( "#draggable1" ).draggable();
669-
TestHelpers.draggable.shouldMove( element );
666+
TestHelpers.draggable.shouldMove( element, "helper: default" );
670667

671668
element.draggable( "option", "helper", "clone" );
672-
TestHelpers.draggable.shouldNotMove( element );
669+
TestHelpers.draggable.shouldNotMove( element, "helper: clone" );
673670

674671
element.draggable( "option", "helper", "original" );
675-
TestHelpers.draggable.shouldMove( element );
672+
TestHelpers.draggable.shouldMove( element, "helper: original" );
676673
});
677674

678675
test( "{ helper: 'clone' }, relative", function() {
679676
expect( 1 );
680677

681678
var element = $( "#draggable1" ).draggable({ helper: "clone" });
682-
TestHelpers.draggable.shouldNotMove( element );
679+
TestHelpers.draggable.shouldNotMove( element, "helper: clone relative" );
683680
});
684681

685682
test( "{ helper: 'clone' }, absolute", function() {
686683
expect( 1 );
687684

688685
var element = $( "#draggable2" ).draggable({ helper: "clone" });
689-
TestHelpers.draggable.shouldNotMove( element );
686+
TestHelpers.draggable.shouldNotMove( element, "helper: clone absolute" );
690687
});
691688

692689
test( "{ helper: 'original' }, relative, with scroll offset on parent", function() {

tests/unit/draggable/draggable_test_helpers.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ TestHelpers.draggable = {
2525
msg = msg ? msg + "." : "";
2626
deepEqual( actual, expected, "dragged[" + dx + ", " + dy + "] " + msg );
2727
},
28-
shouldMove: function( el, why ) {
29-
TestHelpers.draggable.testDrag( el, el, 50, 50, 50, 50, why );
28+
shouldMove: function( el, why, handle ) {
29+
handle = handle || el;
30+
TestHelpers.draggable.testDrag( el, handle, 50, 50, 50, 50, why );
3031
},
31-
shouldNotMove: function( el, why ) {
32-
TestHelpers.draggable.testDrag( el, el, 50, 50, 0, 0, why );
32+
shouldNotMove: function( el, why, handle ) {
33+
handle = handle || el;
34+
TestHelpers.draggable.testDrag( el, handle, 50, 50, 0, 0, why );
3335
},
3436
testScroll: function( el, position ) {
3537
var oldPosition = $( "#main" ).css( "position" );

0 commit comments

Comments
 (0)