/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/draggable/draggable_options.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/draggable/draggable_options.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 40800 byte(s)
initial import
1 (function( $ ) {
2
3 module( "draggable: options" );
4
5 // TODO: This doesn't actually test whether append happened, possibly remove
6 test( "{ appendTo: 'parent' }, default, no clone", function() {
7 expect( 2 );
8 var element = $( "#draggable2" ).draggable({ appendTo: "parent" });
9 TestHelpers.draggable.shouldMove( element );
10
11 element = $( "#draggable1" ).draggable({ appendTo: "parent" });
12 TestHelpers.draggable.shouldMove( element );
13 });
14
15 // TODO: This doesn't actually test whether append happened, possibly remove
16 test( "{ appendTo: Element }, no clone", function() {
17 expect( 2 );
18 var element = $( "#draggable2" ).draggable({ appendTo: $( "#draggable2" ).parent()[ 0 ] });
19
20 TestHelpers.draggable.shouldMove( element );
21
22 element = $( "#draggable1" ).draggable({ appendTo: $( "#draggable2" ).parent()[ 0 ] });
23 TestHelpers.draggable.shouldMove( element );
24 });
25
26 // TODO: This doesn't actually test whether append happened, possibly remove
27 test( "{ appendTo: Selector }, no clone", function() {
28 expect( 2 );
29 var element = $( "#draggable2" ).draggable({ appendTo: "#main" });
30 TestHelpers.draggable.shouldMove( element );
31
32 element = $( "#draggable1" ).draggable({ appendTo: "#main" });
33 TestHelpers.draggable.shouldMove( element );
34 });
35
36 test( "{ appendTo: 'parent' }, default", function() {
37 expect( 2 );
38
39 var element = $( "#draggable1" ).draggable();
40
41 TestHelpers.draggable.trackAppendedParent( element );
42
43 equal( element.draggable( "option", "appendTo" ), "parent" );
44
45 TestHelpers.draggable.move( element, 1, 1 );
46 equal( element.data( "last_dragged_parent" ), $( "#qunit-fixture" )[ 0 ] );
47 });
48
49 test( "{ appendTo: Element }", function() {
50 expect( 1 );
51
52 var appendTo = $( "#draggable2" ).parent()[ 0 ],
53 element = $( "#draggable1" ).draggable({ appendTo: appendTo });
54
55 TestHelpers.draggable.trackAppendedParent( element );
56
57 TestHelpers.draggable.move( element, 1, 1 );
58 equal( element.data( "last_dragged_parent" ), appendTo );
59 });
60
61 test( "{ appendTo: jQuery }", function() {
62 expect( 1 );
63
64 var appendTo = $( "#draggable2" ).parent(),
65 element = $( "#draggable1" ).draggable({ appendTo: appendTo });
66
67 TestHelpers.draggable.trackAppendedParent( element );
68
69 TestHelpers.draggable.move( element, 1, 1 );
70 equal( element.data( "last_dragged_parent" ), appendTo[ 0 ] );
71 });
72
73 test( "{ appendTo: Selector }", function() {
74 expect( 1 );
75
76 var appendTo = "#main",
77 element = $( "#draggable1" ).draggable({ appendTo: appendTo });
78
79 TestHelpers.draggable.trackAppendedParent( element );
80
81 TestHelpers.draggable.move( element, 1, 1 );
82 equal( element.data( "last_dragged_parent" ), $(appendTo)[ 0 ] );
83 });
84
85 test( "appendTo, default, switching after initialization", function() {
86 expect( 2 );
87
88 var element = $( "#draggable1" ).draggable({ helper : "clone" });
89
90 TestHelpers.draggable.trackAppendedParent( element );
91
92 // Move and make sure element was appended to fixture
93 TestHelpers.draggable.move( element, 1, 1 );
94 equal( element.data( "last_dragged_parent" ), $( "#qunit-fixture" )[ 0 ] );
95
96 // Move and make sure element was appended to main
97 element.draggable( "option", "appendTo", $( "#main" ) );
98 TestHelpers.draggable.move( element, 2, 2 );
99 equal( element.data( "last_dragged_parent" ), $( "#main" )[ 0 ] );
100 });
101
102 test( "{ axis: false }, default", function() {
103 expect( 1 );
104 var element = $( "#draggable2" ).draggable({ axis: false });
105 TestHelpers.draggable.shouldMove( element );
106 });
107
108 test( "{ axis: 'x' }", function() {
109 expect( 1 );
110 var element = $( "#draggable2" ).draggable({ axis: "x" });
111 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0 );
112 });
113
114 test( "{ axis: 'y' }", function() {
115 expect( 1 );
116 var element = $( "#draggable2" ).draggable({ axis: "y" });
117 TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50 );
118 });
119
120 test( "{ axis: ? }, unexpected", function() {
121 var element,
122 unexpected = {
123 "true": true,
124 "{}": {},
125 "[]": [],
126 "null": null,
127 "undefined": undefined,
128 "function() {}": function() {}
129 };
130
131 expect( 6 );
132
133 $.each(unexpected, function(key, val) {
134 element = $( "#draggable2" ).draggable({ axis: val });
135 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50, "axis: " + key );
136 element.draggable( "destroy" );
137 });
138 });
139
140 test( "axis, default, switching after initialization", function() {
141 expect( 3 );
142
143 var element = $( "#draggable1" ).draggable({ axis : false });
144
145 // Any Direction
146 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
147
148 // Only horizontal
149 element.draggable( "option", "axis", "x" );
150 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 0 );
151
152 // Vertical only
153 element.draggable( "option", "axis", "y" );
154 TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 50 );
155
156 });
157
158 test( "{ cancel: 'input,textarea,button,select,option' }, default", function() {
159 expect( 2 );
160
161 $( "<div id='draggable-option-cancel-default'><input type='text'></div>" ).appendTo( "#main" );
162
163 var element = $( "#draggable-option-cancel-default" ).draggable({ cancel: "input,textarea,button,select,option" });
164 TestHelpers.draggable.shouldMove( element );
165
166 element.draggable( "destroy" );
167
168 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 );
170 element.draggable( "destroy" );
171 });
172
173 test( "{ cancel: 'span' }", function() {
174 expect( 2 );
175
176 var element = $( "#draggable2" ).draggable();
177 TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50 );
178
179 element.draggable( "destroy" );
180
181 element = $( "#draggable2" ).draggable({ cancel: "span" });
182 TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 0, 0 );
183 });
184
185 test( "{ cancel: ? }, unexpected", function() {
186 expect( 6 );
187
188 var element,
189 unexpected = {
190 "true": true,
191 "false": false,
192 "{}": {},
193 "[]": [],
194 "null": null,
195 "undefined": undefined
196 };
197
198 $.each( unexpected, function( key, val ) {
199 element = $( "#draggable2" ).draggable({ cancel: val });
200 TestHelpers.draggable.shouldMove( element, "cancel: " + key );
201 element.draggable( "destroy" );
202 });
203 });
204
205 /**
206 test( "{ cancel: Selectors }, matching parent selector", function() {
207
208 expect( 5 );
209
210 var element = $( "#draggable2" ).draggable({ cancel: "span a" });
211
212 $( "#qunit-fixture" ).append( "<span id='wrapping'><a></a></span>" );
213
214 element.find( "span" ).append( "<a>" );
215
216 $( "#wrapping a" ).append( element );
217
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" ) );
221
222 $( "#draggable2" ).draggable( "option", "cancel", "span > a" );
223 $( "#draggable2" ).find( "a" ).append( "<a>" );
224
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
229 });
230 */
231
232 test( "cancelement, default, switching after initialization", function() {
233 expect( 3 );
234
235 $( "<div id='draggable-option-cancel-default'><input type='text'></div>" ).appendTo( "#main" );
236
237 var input = $( "#draggable-option-cancel-default input" ),
238 element = $( "#draggable-option-cancel-default" ).draggable();
239
240 TestHelpers.draggable.testDrag( element, input, 50, 50, 0, 0 );
241
242 element.draggable( "option", "cancel", "textarea" );
243 TestHelpers.draggable.testDrag( element, input, 50, 50, 50, 50 );
244
245 element.draggable( "option", "cancel", "input" );
246 TestHelpers.draggable.testDrag( element, input, 50, 50, 0, 0 );
247 });
248
249 /*
250
251 test( "{ connectToSortable: selector }, default", function() {
252 expect( 1 );
253
254 ok(false, "missing test - untested code is broken code" );
255 });
256 */
257
258 test( "{ containment: Element }", function() {
259 expect( 1 );
260
261 var offsetAfter,
262 element = $( "#draggable1" ).draggable({ containment: $( "#draggable1" ).parent()[ 0 ] }),
263 p = element.parent(),
264 po = p.offset(),
265 expected = {
266 left: po.left + TestHelpers.draggable.border( p, "left" ) + TestHelpers.draggable.margin( element, "left" ),
267 top: po.top + TestHelpers.draggable.border( p, "top" ) + TestHelpers.draggable.margin( element, "top" )
268 };
269
270 element.simulate( "drag", {
271 dx: -100,
272 dy: -100
273 });
274 offsetAfter = element.offset();
275 deepEqual( offsetAfter, expected, "compare offset to parent" );
276 });
277
278 test( "{ containment: Selector }", function() {
279 expect( 1 );
280
281 var offsetAfter,
282 element = $( "#draggable1" ).draggable({ containment: $( "#qunit-fixture" ) }),
283 p = element.parent(),
284 po = p.offset(),
285 expected = {
286 left: po.left + TestHelpers.draggable.border( p, "left" ) + TestHelpers.draggable.margin( element, "left" ),
287 top: po.top + TestHelpers.draggable.border( p, "top" ) + TestHelpers.draggable.margin( element, "top" )
288 };
289
290 element.simulate( "drag", {
291 dx: -100,
292 dy: -100
293 });
294 offsetAfter = element.offset();
295 deepEqual( offsetAfter, expected, "compare offset to parent" );
296 });
297
298 test( "{ containment: [x1, y1, x2, y2] }", function() {
299 expect( 1 );
300
301 var element = $( "#draggable1" ).draggable(),
302 eo = element.offset();
303
304 element.draggable( "option", "containment", [ eo.left, eo.top, eo.left + element.width() + 5, eo.top + element.height() + 5 ] );
305
306 TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0 );
307 });
308
309 test( "{ containment: 'parent' }, relative", function() {
310 expect( 1 );
311
312 var offsetAfter,
313 element = $( "#draggable1" ).draggable({ containment: "parent" }),
314 p = element.parent(),
315 po = p.offset(),
316 expected = {
317 left: po.left + TestHelpers.draggable.border( p, "left" ) + TestHelpers.draggable.margin( element, "left" ),
318 top: po.top + TestHelpers.draggable.border( p, "top" ) + TestHelpers.draggable.margin( element, "top" )
319 };
320
321 element.simulate( "drag", {
322 dx: -100,
323 dy: -100
324 });
325 offsetAfter = element.offset();
326 deepEqual( offsetAfter, expected, "compare offset to parent" );
327 });
328
329 test( "{ containment: 'parent' }, absolute", function() {
330 expect( 1 );
331
332 var offsetAfter,
333 element = $( "#draggable2" ).draggable({ containment: "parent" }),
334 p = element.parent(),
335 po = p.offset(),
336 expected = {
337 left: po.left + TestHelpers.draggable.border( p, "left" ) + TestHelpers.draggable.margin( element, "left" ),
338 top: po.top + TestHelpers.draggable.border( p, "top" ) + TestHelpers.draggable.margin( element, "top" )
339 };
340
341 element.simulate( "drag", {
342 dx: -100,
343 dy: -100
344 });
345 offsetAfter = element.offset();
346 deepEqual( offsetAfter, expected, "compare offset to parent" );
347 });
348
349 test( "containment, account for border", function() {
350 expect( 2 );
351
352 var el = $("#draggable1").appendTo("#main"),
353 parent = el.parent().css({
354 height: "100px",
355 width: "100px",
356 borderStyle: "solid",
357 borderWidth: "5px 10px 15px 20px"
358 }),
359 parentBottom = parent.offset().top + parent.outerHeight(),
360 parentRight = parent.offset().left + parent.outerWidth(),
361 parentBorderBottom = TestHelpers.draggable.border( parent, "bottom" ),
362 parentBorderRight = TestHelpers.draggable.border( parent, "right" );
363
364 el.css({
365 height: "5px",
366 width: "5px"
367 }).draggable({ containment: "parent" });
368
369 el.simulate( "drag", {
370 dx: 100,
371 dy: 100
372 });
373
374 equal( el.offset().top, parentBottom - parentBorderBottom - el.height(),
375 "The draggable should be on top of its parent's bottom border" );
376 equal( el.offset().left, parentRight - parentBorderRight - el.width(),
377 "The draggable should be to the right of its parent's right border" );
378 });
379
380 test( "containment, default, switching after initialization", function() {
381 expect( 3 );
382
383 var element = $( "#draggable1" ).draggable({ containment: false });
384
385 TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 );
386
387 element.draggable( "option", "containment", "parent" )
388 .css({
389 top: 0,
390 left: 0
391 })
392 .appendTo( $( "#main" ) );
393
394 TestHelpers.draggable.testDrag( element, element, -100, -100, 0, 0 );
395
396 element.draggable( "option", "containment", false );
397 TestHelpers.draggable.testDrag( element, element, -100, -100, -100, -100 );
398 });
399
400 test( "{ cursor: 'auto' }, default", function() {
401 function getCursor() {
402 return $( "#draggable2" ).css( "cursor" );
403 }
404
405 expect( 2 );
406
407 var actual, after,
408 expected = "auto",
409 element = $( "#draggable2" ).draggable({
410 cursor: expected,
411 start: function() {
412 actual = getCursor();
413 }
414 }),
415 before = getCursor();
416
417 element.simulate( "drag", {
418 dx: -1,
419 dy: -1
420 });
421 after = getCursor();
422
423 equal( actual, expected, "start callback: cursor '" + expected + "'" );
424 equal( after, before, "after drag: cursor restored" );
425 });
426
427 test( "{ cursor: 'move' }", function() {
428 function getCursor() {
429 return $( "body" ).css( "cursor" );
430 }
431
432 expect( 2 );
433
434 var actual, after,
435 expected = "move",
436 element = $( "#draggable2" ).draggable({
437 cursor: expected,
438 start: function() {
439 actual = getCursor();
440 }
441 }),
442 before = getCursor();
443
444 element.simulate( "drag", {
445 dx: -1,
446 dy: -1
447 });
448 after = getCursor();
449
450 equal( actual, expected, "start callback: cursor '" + expected + "'" );
451 equal( after, before, "after drag: cursor restored" );
452 });
453
454 test( "cursor, default, switching after initialization", function() {
455 expect( 3 );
456
457 var element = $( "#draggable1" ).draggable();
458
459 TestHelpers.draggable.trackMouseCss( element );
460
461 TestHelpers.draggable.move( element, 1, 1 );
462 equal( element.data( "last_dragged_cursor" ), "auto" );
463
464 element.draggable( "option", "cursor", "move" );
465 TestHelpers.draggable.move( element, 1, 1 );
466 equal( element.data( "last_dragged_cursor" ), "move" );
467
468 element.draggable( "option", "cursor", "ns-resize" );
469 TestHelpers.draggable.move( element, 1, 1 );
470 equal( element.data( "last_dragged_cursor" ), "ns-resize" );
471 });
472
473 test( "cursorAt", function() {
474 expect( 24 );
475
476 var deltaX = -3,
477 deltaY = -3,
478 tests = {
479 "false": { cursorAt : false },
480 "{ left: -5, top: -5 }": { x: -5, y: -5, cursorAt : { left: -5, top: -5 } },
481 "[ 10, 20 ]": { x: 10, y: 20, cursorAt : [ 10, 20 ] },
482 "'10 20'": { x: 10, y: 20, cursorAt : "10 20" },
483 "{ left: 20, top: 40 }": { x: 20, y: 40, cursorAt : { left: 20, top: 40 } },
484 "{ right: 10, bottom: 20 }": { x: 10, y: 20, cursorAt : { right: 10, bottom: 20 } }
485 };
486
487 $.each( tests, function( testName, testData ) {
488 $.each( [ "relative", "absolute" ], function( i, position ) {
489 var element = $( "#draggable" + ( i + 1 ) ).draggable({
490 cursorAt: testData.cursorAt,
491 drag: function( event, ui ) {
492 if( !testData.cursorAt ) {
493 equal( ui.position.left - ui.originalPosition.left, deltaX, testName + " " + position + " left" );
494 equal( ui.position.top - ui.originalPosition.top, deltaY, testName + " " + position + " top" );
495 } else if( testData.cursorAt.right ) {
496 equal( ui.helper.width() - ( event.clientX - ui.offset.left ), testData.x - TestHelpers.draggable.unreliableOffset, testName + " " + position + " left" );
497 equal( ui.helper.height() - ( event.clientY - ui.offset.top ), testData.y - TestHelpers.draggable.unreliableOffset, testName + " " +position + " top" );
498 } else {
499 equal( event.clientX - ui.offset.left, testData.x + TestHelpers.draggable.unreliableOffset, testName + " " + position + " left" );
500 equal( event.clientY - ui.offset.top, testData.y + TestHelpers.draggable.unreliableOffset, testName + " " + position + " top" );
501 }
502 }
503 });
504
505 element.simulate( "drag", {
506 moves: 1,
507 dx: deltaX,
508 dy: deltaY
509 });
510 });
511 });
512 });
513
514 test( "cursorAt, switching after initialization", function() {
515 expect( 24 );
516
517 var deltaX = -3,
518 deltaY = -3,
519 tests = {
520 "false": { cursorAt : false },
521 "{ left: -5, top: -5 }": { x: -5, y: -5, cursorAt : { left: -5, top: -5 } },
522 "[ 10, 20 ]": { x: 10, y: 20, cursorAt : [ 10, 20 ] },
523 "'10 20'": { x: 10, y: 20, cursorAt : "10 20" },
524 "{ left: 20, top: 40 }": { x: 20, y: 40, cursorAt : { left: 20, top: 40 } },
525 "{ right: 10, bottom: 20 }": { x: 10, y: 20, cursorAt : { right: 10, bottom: 20 } }
526 };
527
528 $.each( tests, function( testName, testData ) {
529 $.each( [ "relative", "absolute" ], function( i, position ) {
530 var element = $( "#draggable" + ( i + 1 ) );
531
532 element.draggable({
533 drag: function( event, ui ) {
534 if( !testData.cursorAt ) {
535 equal( ui.position.left - ui.originalPosition.left, deltaX, testName + " " + position + " left" );
536 equal( ui.position.top - ui.originalPosition.top, deltaY, testName + " " + position + " top" );
537 } else if( testData.cursorAt.right ) {
538 equal( ui.helper.width() - ( event.clientX - ui.offset.left ), testData.x - TestHelpers.draggable.unreliableOffset, testName + " " + position + " left" );
539 equal( ui.helper.height() - ( event.clientY - ui.offset.top ), testData.y - TestHelpers.draggable.unreliableOffset, testName + " " +position + " top" );
540 } else {
541 equal( event.clientX - ui.offset.left, testData.x + TestHelpers.draggable.unreliableOffset, testName + " " + position + " left" );
542 equal( event.clientY - ui.offset.top, testData.y + TestHelpers.draggable.unreliableOffset, testName + " " + position + " top" );
543 }
544 }
545 });
546
547 element.draggable( "option", "cursorAt", false );
548 element.draggable( "option", "cursorAt", testData.cursorAt );
549
550 element.simulate( "drag", {
551 moves: 1,
552 dx: deltaX,
553 dy: deltaY
554 });
555 });
556 });
557 });
558
559 test( "disabled", function() {
560 expect( 3 );
561
562 var element = $( "#draggable1" ).draggable();
563
564 TestHelpers.draggable.shouldMove( element );
565
566 element.draggable( "option", "disabled", true );
567 TestHelpers.draggable.shouldNotMove( element );
568
569 element.draggable( "option", "disabled", false );
570 TestHelpers.draggable.shouldMove( element );
571 });
572
573 test( "{ grid: [50, 50] }, relative", function() {
574 expect( 2 );
575
576 var element = $( "#draggable1" ).draggable({ grid: [ 50, 50 ] });
577 TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
578 TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
579 });
580
581 test( "{ grid: [50, 50] }, absolute", function() {
582 expect( 2 );
583
584 var element = $( "#draggable2" ).draggable({ grid: [ 50, 50 ] });
585 TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
586 TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
587 });
588
589 test( "grid, switching after initialization", function() {
590 expect( 4 );
591
592 var element = $( "#draggable1" ).draggable();
593
594 // Forward
595 TestHelpers.draggable.testDrag( element, element, 24, 24, 24, 24 );
596 TestHelpers.draggable.testDrag( element, element, 0, 0, 0, 0 );
597
598 element.draggable( "option", "grid", [ 50,50 ] );
599
600 TestHelpers.draggable.testDrag( element, element, 24, 24, 0, 0 );
601 TestHelpers.draggable.testDrag( element, element, 26, 25, 50, 50 );
602 });
603
604 test( "{ handle: 'span' }", function() {
605 expect( 3 );
606
607 var element = $( "#draggable2" ).draggable({ handle: "span" });
608
609 TestHelpers.draggable.testDrag( element, "#draggable2 span", 50, 50, 50, 50, "drag span" );
610 TestHelpers.draggable.testDrag( element, "#draggable2 span em", 50, 50, 50, 50, "drag span child" );
611 TestHelpers.draggable.shouldNotMove( element, "drag element" );
612 });
613
614 test( "handle, default, switching after initialization", function() {
615 expect( 6 );
616
617 var element = $( "#draggable2" ).draggable();
618
619 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
620 TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
621
622 // Switch
623 element.draggable( "option", "handle", "span" );
624 TestHelpers.draggable.testDrag( element, element, 50, 50, 0, 0 );
625 TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
626
627 // And back
628 element.draggable( "option", "handle", false );
629 TestHelpers.draggable.testDrag( element, element, 50, 50, 50, 50 );
630 TestHelpers.draggable.testDrag( element, "#draggable2 span", 100, 100, 100, 100 );
631 });
632
633 test( "helper, default, switching after initialization", function() {
634 expect( 3 );
635
636 var element = $( "#draggable1" ).draggable();
637 TestHelpers.draggable.shouldMove( element );
638
639 element.draggable( "option", "helper", "clone" );
640 TestHelpers.draggable.shouldNotMove( element );
641
642 element.draggable( "option", "helper", "original" );
643 TestHelpers.draggable.shouldMove( element );
644 });
645
646 test( "{ helper: 'clone' }, relative", function() {
647 expect( 1 );
648
649 var element = $( "#draggable1" ).draggable({ helper: "clone" });
650 TestHelpers.draggable.shouldNotMove( element );
651 });
652
653 test( "{ helper: 'clone' }, absolute", function() {
654 expect( 1 );
655
656 var element = $( "#draggable2" ).draggable({ helper: "clone" });
657 TestHelpers.draggable.shouldNotMove( element );
658 });
659
660 test( "{ helper: 'original' }, relative, with scroll offset on parent", function() {
661 expect( 3 );
662
663 var element = $( "#draggable1" ).draggable({ helper: "original" });
664
665 TestHelpers.draggable.setScroll();
666 TestHelpers.draggable.testScroll( element, "relative" );
667
668 TestHelpers.draggable.setScroll();
669 TestHelpers.draggable.testScroll( element, "static" );
670
671 TestHelpers.draggable.setScroll();
672 TestHelpers.draggable.testScroll( element, "absolute" );
673
674 TestHelpers.draggable.restoreScroll();
675 });
676
677 test( "{ helper: 'original' }, relative, with scroll offset on root", function() {
678 expect( 3 );
679
680 var element = $( "#draggable1" ).draggable({ helper: "original" });
681
682 TestHelpers.draggable.setScroll( "root" );
683 TestHelpers.draggable.testScroll( element, "relative" );
684
685 TestHelpers.draggable.setScroll( "root" );
686 TestHelpers.draggable.testScroll( element, "static" );
687
688 TestHelpers.draggable.setScroll( "root" );
689 TestHelpers.draggable.testScroll( element, "absolute" );
690
691 TestHelpers.draggable.restoreScroll( "root" );
692 });
693
694 test( "{ helper: 'original' }, relative, with scroll offset on root and parent", function() {
695 expect( 3 );
696
697 var element = $( "#draggable1" ).draggable({ helper: "original" });
698
699 TestHelpers.draggable.setScroll();
700 TestHelpers.draggable.setScroll( "root" );
701 TestHelpers.draggable.testScroll( element, "relative" );
702
703 TestHelpers.draggable.setScroll();
704 TestHelpers.draggable.setScroll( "root" );
705 TestHelpers.draggable.testScroll( element, "static" );
706
707 TestHelpers.draggable.setScroll();
708 TestHelpers.draggable.setScroll( "root" );
709 TestHelpers.draggable.testScroll( element, "absolute" );
710
711 TestHelpers.draggable.restoreScroll();
712 TestHelpers.draggable.restoreScroll( "root" );
713 });
714
715 test( "{ helper: 'original' }, absolute, with scroll offset on parent", function() {
716 expect( 3 );
717
718 var element = $( "#draggable1" ).css({ position: "absolute", top: 0, left: 0 }).draggable({ helper: "original" });
719
720 TestHelpers.draggable.setScroll();
721 TestHelpers.draggable.testScroll( element, "relative" );
722
723 TestHelpers.draggable.setScroll();
724 TestHelpers.draggable.testScroll( element, "static" );
725
726 TestHelpers.draggable.setScroll();
727 TestHelpers.draggable.testScroll( element, "absolute" );
728
729 TestHelpers.draggable.restoreScroll();
730 });
731
732 test( "{ helper: 'original' }, absolute, with scroll offset on root", function() {
733 expect( 3 );
734
735 var element = $( "#draggable1" ).css({ position: "absolute", top: 0, left: 0 }).draggable({ helper: "original" });
736
737 TestHelpers.draggable.setScroll( "root" );
738 TestHelpers.draggable.testScroll( element, "relative" );
739
740 TestHelpers.draggable.setScroll( "root" );
741 TestHelpers.draggable.testScroll( element, "static" );
742
743 TestHelpers.draggable.setScroll( "root" );
744 TestHelpers.draggable.testScroll( element, "absolute" );
745
746 TestHelpers.draggable.restoreScroll( "root" );
747 });
748
749 test( "{ helper: 'original' }, absolute, with scroll offset on root and parent", function() {
750 expect( 3 );
751
752 var element = $( "#draggable1" ).css({ position: "absolute", top: 0, left: 0 }).draggable({ helper: "original" });
753
754 TestHelpers.draggable.setScroll();
755 TestHelpers.draggable.setScroll( "root" );
756 TestHelpers.draggable.testScroll( element, "relative" );
757
758 TestHelpers.draggable.setScroll();
759 TestHelpers.draggable.setScroll( "root" );
760 TestHelpers.draggable.testScroll( element, "static" );
761
762 TestHelpers.draggable.setScroll();
763 TestHelpers.draggable.setScroll( "root" );
764 TestHelpers.draggable.testScroll( element, "absolute" );
765
766 TestHelpers.draggable.restoreScroll();
767 TestHelpers.draggable.restoreScroll( "root" );
768 });
769
770 test( "{ helper: 'original' }, fixed, with scroll offset on parent", function() {
771 expect( 3 );
772
773 var element = $( "#draggable1" ).css({ position: "fixed", top: 0, left: 0 }).draggable({ helper: "original" });
774
775 TestHelpers.draggable.setScroll();
776 TestHelpers.draggable.testScroll( element, "relative" );
777
778 TestHelpers.draggable.setScroll();
779 TestHelpers.draggable.testScroll( element, "static" );
780
781 TestHelpers.draggable.setScroll();
782 TestHelpers.draggable.testScroll( element, "absolute" );
783
784 TestHelpers.draggable.restoreScroll();
785 });
786
787 test( "{ helper: 'original' }, fixed, with scroll offset on root", function() {
788 expect( 3 );
789
790 var element = $( "#draggable1" ).css({ position: "fixed", top: 0, left: 0 }).draggable({ helper: "original" });
791
792 TestHelpers.draggable.setScroll( "root" );
793 TestHelpers.draggable.testScroll( element, "relative" );
794
795 TestHelpers.draggable.setScroll( "root" );
796 TestHelpers.draggable.testScroll( element, "static" );
797
798 TestHelpers.draggable.setScroll( "root" );
799 TestHelpers.draggable.testScroll( element, "absolute" );
800
801 TestHelpers.draggable.restoreScroll( "root" );
802 });
803
804 test( "{ helper: 'original' }, fixed, with scroll offset on root and parent", function() {
805 expect( 3 );
806
807 var element = $( "#draggable1" ).css({ position: "fixed", top: 0, left: 0 }).draggable({ helper: "original" });
808
809 TestHelpers.draggable.setScroll();
810 TestHelpers.draggable.setScroll( "root" );
811 TestHelpers.draggable.testScroll( element, "relative" );
812
813 TestHelpers.draggable.setScroll();
814 TestHelpers.draggable.setScroll( "root" );
815 TestHelpers.draggable.testScroll( element, "static" );
816
817 TestHelpers.draggable.setScroll();
818 TestHelpers.draggable.setScroll( "root" );
819 TestHelpers.draggable.testScroll( element, "absolute" );
820
821 TestHelpers.draggable.restoreScroll();
822 TestHelpers.draggable.restoreScroll( "root" );
823 });
824
825 test( "{ helper: 'clone' }, absolute", function() {
826 expect( 1 );
827
828 var helperOffset = null,
829 origOffset = $( "#draggable1" ).offset(),
830 element = $( "#draggable1" ).draggable({ helper: "clone", drag: function( event, ui) {
831 helperOffset = ui.helper.offset();
832 } });
833
834 element.simulate( "drag", {
835 dx: 1,
836 dy: 1
837 });
838 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
839 });
840
841 test( "{ helper: 'clone' }, absolute with scroll offset on parent", function() {
842 expect( 3 );
843
844 TestHelpers.draggable.setScroll();
845 var helperOffset = null,
846 origOffset = null,
847 element = $( "#draggable1" ).draggable({
848 helper: "clone",
849 drag: function( event, ui) {
850 helperOffset = ui.helper.offset();
851 }
852 });
853
854 $( "#main" ).css( "position", "relative" );
855 origOffset = $( "#draggable1" ).offset();
856 element.simulate( "drag", {
857 dx: 1,
858 dy: 1
859 });
860 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
861
862 $( "#main" ).css( "position", "static" );
863 origOffset = $( "#draggable1" ).offset();
864 element.simulate( "drag", {
865 dx: 1,
866 dy: 1
867 });
868 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
869
870 $( "#main" ).css( "position", "absolute" );
871 origOffset = $( "#draggable1" ).offset();
872 element.simulate( "drag", {
873 dx: 1,
874 dy: 1
875 });
876 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
877
878 TestHelpers.draggable.restoreScroll();
879 });
880
881 test( "{ helper: 'clone' }, absolute with scroll offset on root", function() {
882 expect( 3 );
883
884 TestHelpers.draggable.setScroll( "root" );
885 var helperOffset = null,
886 origOffset = null,
887 element = $( "#draggable1" ).draggable({
888 helper: "clone",
889 drag: function( event, ui) {
890 helperOffset = ui.helper.offset();
891 }
892 });
893
894 $( "#main" ).css( "position", "relative" );
895 origOffset = $( "#draggable1" ).offset();
896 element.simulate( "drag", {
897 dx: 1,
898 dy: 1
899 });
900 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
901
902 $( "#main" ).css( "position", "static" );
903 origOffset = $( "#draggable1" ).offset();
904 element.simulate( "drag", {
905 dx: 1,
906 dy: 1
907 });
908 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
909
910 $( "#main" ).css( "position", "absolute" );
911 origOffset = $( "#draggable1" ).offset();
912 element.simulate( "drag", {
913 dx: 1,
914 dy: 1
915 });
916 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
917
918 TestHelpers.draggable.restoreScroll( "root" );
919 });
920
921 test( "{ helper: 'clone' }, absolute with scroll offset on root and parent", function() {
922 expect( 3 );
923
924 TestHelpers.draggable.setScroll( "root" );
925 TestHelpers.draggable.setScroll();
926
927 var helperOffset = null,
928 origOffset = null,
929 element = $( "#draggable1" ).draggable({
930 helper: "clone",
931 drag: function( event, ui) {
932 helperOffset = ui.helper.offset();
933 }
934 });
935
936 $( "#main" ).css( "position", "relative" );
937 origOffset = $( "#draggable1" ).offset();
938 element.simulate( "drag", {
939 dx: 1,
940 dy: 1
941 });
942 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
943
944 $( "#main" ).css( "position", "static" );
945 origOffset = $( "#draggable1" ).offset();
946 element.simulate( "drag", {
947 dx: 1,
948 dy: 1
949 });
950 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
951
952 $( "#main" ).css( "position", "absolute" );
953 origOffset = $( "#draggable1" ).offset();
954 element.simulate( "drag", {
955 dx: 1,
956 dy: 1
957 });
958 deepEqual({ top: helperOffset.top - 1, left: helperOffset.left - 1 }, origOffset, "dragged[1, 1]" );
959
960 TestHelpers.draggable.restoreScroll( "root" );
961 TestHelpers.draggable.restoreScroll();
962 });
963
964 test( "{ opacity: 0.5 }", function() {
965 expect( 1 );
966
967 var opacity = null,
968 element = $( "#draggable2" ).draggable({
969 opacity: 0.5,
970 start: function() {
971 opacity = $(this).css( "opacity" );
972 }
973 });
974
975 element.simulate( "drag", {
976 dx: -1,
977 dy: -1
978 });
979
980 equal( opacity, 0.5, "start callback: opacity is" );
981 });
982
983 test( "opacity, default, switching after initialization", function() {
984 expect( 3 );
985
986 var opacity = null,
987 element = $( "#draggable2" ).draggable({
988 start: function() {
989 opacity = $(this).css( "opacity" );
990 }
991 });
992
993 TestHelpers.draggable.move( element, 1, 1 );
994 equal( opacity, 1 );
995
996 element.draggable( "option", "opacity", 0.5 );
997 TestHelpers.draggable.move( element, 2, 1 );
998 equal( opacity, 0.5 );
999
1000 element.draggable( "option", "opacity", false );
1001 TestHelpers.draggable.move( element, 3, 1 );
1002 equal( opacity, 1 );
1003 });
1004
1005 asyncTest( "revert and revertDuration", function() {
1006 expect( 4 );
1007
1008 var element = $( "#draggable2" ).draggable({
1009 revert: true,
1010 revertDuration: 0
1011 });
1012 TestHelpers.draggable.shouldNotMove( element, "revert: true, revertDuration: 0 should revert immediately" );
1013
1014 $( "#draggable2" ).draggable( "option", "revert", "invalid" );
1015 TestHelpers.draggable.shouldNotMove( element, "revert: invalid, revertDuration: 0 should revert immediately" );
1016
1017 $( "#draggable2" ).draggable( "option", "revert", false );
1018 TestHelpers.draggable.shouldMove( element, "revert: false should allow movement" );
1019
1020 $( "#draggable2" ).draggable( "option", {
1021 revert: true,
1022 revertDuration: 200,
1023 stop: function() {
1024 start();
1025 }
1026 });
1027
1028 // animation are async, so test for it asynchronously
1029 TestHelpers.draggable.move( element, 50, 50 );
1030 setTimeout( function() {
1031 ok( $( "#draggable2" ).is( ":animated" ), "revert: true with revertDuration should animate" );
1032 });
1033 });
1034
1035 test( "revert: valid", function() {
1036 expect( 1 );
1037
1038 var element = $( "#draggable2" ).draggable({
1039 revert: "valid",
1040 revertDuration: 0
1041 });
1042
1043 $( "#droppable" ).droppable();
1044
1045 TestHelpers.draggable.testDrag( element, element, 100, 100, 0, 0, "revert: valid reverts when dropped on a droppable" );
1046 });
1047
1048 test( "scope", function() {
1049 expect( 2 );
1050
1051 var element = $( "#draggable2" ).draggable({
1052 scope: "tasks",
1053 revert: "valid",
1054 revertDuration: 0
1055 });
1056
1057 $( "#droppable" ).droppable({ scope: "tasks" });
1058
1059 TestHelpers.draggable.testDrag( element, element, 100, 100, 0, 0, "revert: valid reverts when dropped on a droppable in scope" );
1060
1061 $( "#droppable" ).droppable( "destroy" ).droppable({ scope: "nottasks" });
1062
1063 TestHelpers.draggable.testDrag( element, element, 100, 100, 100, 100, "revert: valid reverts when dropped on a droppable out of scope" );
1064 });
1065
1066 test( "scroll, scrollSensitivity, and scrollSpeed", function() {
1067 expect( 2 );
1068
1069 var viewportHeight = $( window ).height(),
1070 element = $( "#draggable1" ).draggable({ scroll: true }),
1071 scrollSensitivity = element.draggable( "option", "scrollSensitivity" ),
1072 scrollSpeed = element.draggable( "option", "scrollSpeed" );
1073
1074 element.offset({
1075 top: viewportHeight - scrollSensitivity - 1,
1076 left: 1
1077 });
1078
1079 element.simulate( "drag", {
1080 dx: 1,
1081 y: viewportHeight - scrollSensitivity - 1,
1082 moves: 1
1083 });
1084
1085 ok( $( window ).scrollTop() === 0, "scroll: true doesn't scroll when the element is dragged outside of scrollSensitivity" );
1086
1087 element.draggable( "option", "scrollSensitivity", scrollSensitivity + 10 );
1088
1089 element.offset({
1090 top: viewportHeight - scrollSensitivity - 1,
1091 left: 1
1092 });
1093
1094 element.simulate( "drag", {
1095 dx: 1,
1096 y: viewportHeight - scrollSensitivity - 1,
1097 moves: 1
1098 });
1099
1100 ok( $( window ).scrollTop() === scrollSpeed, "scroll: true scrolls when the element is dragged within scrollSensitivity" );
1101
1102 TestHelpers.draggable.restoreScroll( document );
1103 });
1104
1105 test( "#6817: auto scroll goes double distance when dragging", function() {
1106 expect( 2 );
1107
1108 var offsetBefore,
1109 distance = 10,
1110 viewportHeight = $( window ).height(),
1111 element = $( "#draggable1" ).draggable({
1112 scroll: true,
1113 stop: function( e, ui ) {
1114 equal( ui.offset.top, newY, "offset of item matches pointer position after scroll" );
1115 // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
1116 closeEnough( ui.offset.top - offsetBefore.top, distance, 1, "offset of item only moves expected distance after scroll" );
1117 }
1118 }),
1119 scrollSensitivity = element.draggable( "option", "scrollSensitivity" ),
1120 oldY = viewportHeight - scrollSensitivity,
1121 newY = oldY + distance;
1122
1123 element.offset({
1124 top: oldY,
1125 left: 1
1126 });
1127
1128 offsetBefore = element.offset();
1129
1130 element.simulate( "drag", {
1131 handle: "corner",
1132 dx: 1,
1133 y: newY,
1134 moves: 1
1135 });
1136
1137 TestHelpers.draggable.restoreScroll( document );
1138 });
1139
1140 test( "snap, snapMode, and snapTolerance", function() {
1141 expect( 10 );
1142
1143 var newX, newY,
1144 snapTolerance = 15,
1145 element = $( "#draggable1" ).draggable({
1146 snap: true,
1147 snapMode: "both",
1148 snapTolerance: snapTolerance
1149 }),
1150 element2 = $( "#draggable2" ).draggable();
1151
1152 element.offset({
1153 top: 1,
1154 left: 1
1155 });
1156
1157 newX = element2.offset().left - element.outerWidth() - snapTolerance - 2;
1158 newY = element2.offset().top;
1159
1160 element.simulate( "drag", {
1161 handle: "corner",
1162 x: newX,
1163 y: newY,
1164 moves: 1
1165 });
1166
1167 // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
1168 closeEnough( element.offset().left, newX, 1, "doesn't snap outside the snapTolerance" );
1169 closeEnough( element.offset().top, newY, 1, "doesn't snap outside the snapTolerance" );
1170
1171 newX += 3;
1172
1173 element.simulate( "drag", {
1174 handle: "corner",
1175 x: newX,
1176 y: newY,
1177 moves: 1
1178 });
1179
1180 notDeepEqual( element.offset(), { top: newY, left: newX }, "snaps inside the snapTolerance" );
1181
1182 element.draggable( "option", "snap", "#draggable2" );
1183
1184 element.simulate( "drag", {
1185 handle: "corner",
1186 x: newX,
1187 y: newY,
1188 moves: 1
1189 });
1190
1191 notDeepEqual( element.offset(), { top: newY, left: newX }, "snaps based on selector" );
1192
1193 element.draggable( "option", "snap", "#draggable3" );
1194
1195 element.simulate( "drag", {
1196 handle: "corner",
1197 x: newX,
1198 y: newY,
1199 moves: 1
1200 });
1201
1202 deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap based on invalid selector" );
1203
1204 element.draggable( "option", "snap", true );
1205 element.draggable( "option", "snapTolerance", snapTolerance - 2 );
1206 element.simulate( "drag", {
1207 handle: "corner",
1208 x: newX,
1209 y: newY,
1210 moves: 1
1211 });
1212
1213 deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap outside the modified snapTolerance" );
1214
1215 element.draggable( "option", "snapTolerance", snapTolerance );
1216 element.draggable( "option", "snapMode", "inner" );
1217
1218 element.simulate( "drag", {
1219 handle: "corner",
1220 x: newX,
1221 y: newY,
1222 moves: 1
1223 });
1224
1225 deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap inside the outer snapTolerance area when snapMode is inner" );
1226
1227 newX = element2.offset().left - snapTolerance - 1;
1228 newY = element2.offset().top;
1229
1230 element.simulate( "drag", {
1231 handle: "corner",
1232 x: newX,
1233 y: newY,
1234 moves: 1
1235 });
1236
1237 deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap inside the outer snapTolerance area when snapMode is inner" );
1238
1239 newX++;
1240
1241 element.simulate( "drag", {
1242 handle: "corner",
1243 x: newX,
1244 y: newY,
1245 moves: 1
1246 });
1247
1248 notDeepEqual( element.offset(), { top: newY, left: newX }, "snaps inside the inner snapTolerance area when snapMode is inner" );
1249
1250 element.draggable( "option", "snapMode", "outer" );
1251
1252 element.simulate( "drag", {
1253 handle: "corner",
1254 x: newX,
1255 y: newY,
1256 moves: 1
1257 });
1258
1259 deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap on the inner snapTolerance area when snapMode is outer" );
1260 });
1261
1262 test( "#8459: element can snap to an element that was removed during drag", function() {
1263 expect( 2 );
1264
1265 var newX, newY,
1266 snapTolerance = 15,
1267 element = $( "#draggable1" ).draggable({
1268 snap: true,
1269 snapMode: "both",
1270 snapTolerance: snapTolerance,
1271 start: function() {
1272 element2.remove();
1273 }
1274 }),
1275 element2 = $( "#draggable2" ).draggable();
1276
1277 element.offset({
1278 top: 1,
1279 left: 1
1280 });
1281
1282 newX = element2.offset().left - element.outerWidth() - snapTolerance + 1;
1283 newY = element2.offset().top;
1284
1285 element.simulate( "drag", {
1286 handle: "corner",
1287 x: newX,
1288 y: newY,
1289 moves: 1
1290 });
1291
1292 // Support: Opera 12.10, Safari 5.1, jQuery <1.8
1293 if ( TestHelpers.draggable.unreliableContains ) {
1294 ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
1295 ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
1296 } else {
1297 // TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
1298 closeEnough( element.offset().left, newX, 1, "doesn't snap to a removed element" );
1299 closeEnough( element.offset().top, newY, 1, "doesn't snap to a removed element" );
1300 }
1301 });
1302
1303 test( "#8165: Snapping large rectangles to small rectangles doesn't snap properly", function() {
1304 expect( 1 );
1305
1306 var snapTolerance = 20,
1307 y = 1,
1308 element = $( "#draggable1" )
1309 .css({
1310 width: "50px",
1311 height: "200px"
1312 }).offset({
1313 top: y,
1314 left: 1
1315 }),
1316 element2 = $( "#draggable2" )
1317 .css({
1318 width: "50px",
1319 height: "50px"
1320 }).offset({
1321 top: y + snapTolerance + 1,
1322 left: 200
1323 }),
1324 newX = element2.offset().left - element.outerWidth() - snapTolerance + 1;
1325
1326 $( "#draggable1, #draggable2" ).draggable({
1327 snap: true,
1328 snapTolerance: snapTolerance
1329 });
1330
1331 element.simulate( "drag", {
1332 handle: "corner",
1333 x: newX,
1334 moves: 1
1335 });
1336
1337 notDeepEqual( element.offset(), { top: y, left: newX }, "snaps even if only a side (not a corner) is inside the snapTolerance" );
1338 });
1339
1340 test( "stack", function() {
1341 expect( 2 );
1342
1343 var element = $( "#draggable1" ).draggable({
1344 stack: "#draggable1, #draggable2"
1345 }),
1346 element2 = $( "#draggable2" ).draggable({
1347 stack: "#draggable1, #draggable2"
1348 });
1349
1350 TestHelpers.draggable.move( element, 1, 1 );
1351 equal( element.css( "zIndex" ), "2", "stack increments zIndex correctly" );
1352
1353 TestHelpers.draggable.move( element2, 1, 1 );
1354 equal( element2.css( "zIndex" ), "3", "stack increments zIndex correctly" );
1355 });
1356
1357 test( "{ zIndex: 10 }", function() {
1358 expect( 1 );
1359
1360 var actual,
1361 expected = 10,
1362 element = $( "#draggable2" ).draggable({
1363 zIndex: expected,
1364 start: function() {
1365 actual = $(this).css( "zIndex" );
1366 }
1367 });
1368
1369 element.simulate( "drag", {
1370 dx: -1,
1371 dy: -1
1372 });
1373
1374 equal( actual, expected, "start callback: zIndex is" );
1375
1376 });
1377
1378 test( "zIndex, default, switching after initialization", function() {
1379
1380 expect( 3 );
1381
1382 var zindex = null,
1383 element = $( "#draggable2" ).draggable({
1384 start: function() {
1385 zindex = $(this).css( "z-index" );
1386 }
1387 });
1388
1389 element.css( "z-index", 1 );
1390
1391 TestHelpers.draggable.move( element, 1, 1 );
1392 equal( zindex, 1 );
1393
1394 element.draggable( "option", "zIndex", 5 );
1395 TestHelpers.draggable.move( element, 2, 1 );
1396 equal( zindex, 5 );
1397
1398 element.draggable( "option", "zIndex", false );
1399 TestHelpers.draggable.move( element, 3, 1 );
1400 equal( zindex, 1 );
1401
1402 });
1403
1404 })( jQuery );

  ViewVC Help
Powered by ViewVC 1.1.20