Skip to content

Commit fbc5544

Browse files
committed
Draggable: Convert tests to new infrastructure
Ref #10119 Ref jquerygh-1528
1 parent 9fb04e4 commit fbc5544

7 files changed

+245
-252
lines changed

tests/unit/draggable/draggable.html

+57-86
Original file line numberDiff line numberDiff line change
@@ -4,94 +4,65 @@
44
<meta charset="utf-8">
55
<title>jQuery UI Draggable Test Suite</title>
66

7-
<script src="../../jquery.js"></script>
8-
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
9-
7+
<script src="../../lib/css.js" data-modules="core"></script>
8+
<script src="../../lib/bootstrap.js" data-widget="draggable"></script>
109
<style>
11-
#main {
12-
width: 1000px;
13-
height: 1000px;
14-
overflow: scroll;
15-
overflow-x: scroll;
16-
overflow-y: scroll;
17-
position: relative;
18-
left: 0;
19-
top: 0;
20-
}
21-
#main-forceScrollable {
22-
position: absolute;
23-
left: 0;
24-
top: 0;
25-
width: 1100px;
26-
height: 1100px;
27-
}
28-
#scrollParent {
29-
width: 1200px;
30-
height: 1200px;
31-
position: relative;
32-
left: 0;
33-
top: 0;
34-
overflow: hidden;
35-
overflow-x: hidden;
36-
overflow-y: hidden;
37-
}
38-
#scrollParent-forceScrollable {
39-
position: absolute;
40-
left: 0;
41-
top: 0;
42-
width: 1300px;
43-
height: 1300px;
44-
}
45-
/* See #9077 */
46-
#draggable3, #draggable4 {
47-
z-index: 100;
48-
}
49-
.sortable {
50-
position: relative;
51-
top: 8000px;
52-
left: 10px;
53-
width: 300px;
54-
padding: 0;
55-
margin: 0;
56-
border: 0;
57-
}
58-
.sortable li {
59-
height: 100px;
60-
padding: 0;
61-
margin: 0;
62-
border: 0;
63-
list-style: none;
64-
display: inline-block;
65-
}
10+
#main {
11+
width: 1000px;
12+
height: 1000px;
13+
overflow: scroll;
14+
overflow-x: scroll;
15+
overflow-y: scroll;
16+
position: relative;
17+
left: 0;
18+
top: 0;
19+
}
20+
#main-forceScrollable {
21+
position: absolute;
22+
left: 0;
23+
top: 0;
24+
width: 1100px;
25+
height: 1100px;
26+
}
27+
#scrollParent {
28+
width: 1200px;
29+
height: 1200px;
30+
position: relative;
31+
left: 0;
32+
top: 0;
33+
overflow: hidden;
34+
overflow-x: hidden;
35+
overflow-y: hidden;
36+
}
37+
#scrollParent-forceScrollable {
38+
position: absolute;
39+
left: 0;
40+
top: 0;
41+
width: 1300px;
42+
height: 1300px;
43+
}
44+
/* See #9077 */
45+
#draggable3, #draggable4 {
46+
z-index: 100;
47+
}
48+
.sortable {
49+
position: relative;
50+
top: 8000px;
51+
left: 10px;
52+
width: 300px;
53+
padding: 0;
54+
margin: 0;
55+
border: 0;
56+
}
57+
.sortable li {
58+
height: 100px;
59+
padding: 0;
60+
margin: 0;
61+
border: 0;
62+
list-style: none;
63+
display: inline-block;
64+
}
6665
</style>
67-
68-
<script src="../../../external/qunit/qunit.js"></script>
69-
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
70-
<script src="../testsuite.js"></script>
71-
<script src="../../../external/qunit-assert-classes/qunit-assert-classes.js"></script>
72-
<script>
73-
TestHelpers.loadResources({
74-
css: [ "core" ],
75-
js: [
76-
"ui/core.js",
77-
"ui/widget.js",
78-
"ui/mouse.js",
79-
"ui/resizable.js",
80-
"ui/draggable.js",
81-
"ui/droppable.js",
82-
"ui/sortable.js"
83-
]
84-
});
85-
</script>
86-
87-
<script src="draggable_common.js"></script>
88-
<script src="draggable_core.js"></script>
89-
<script src="draggable_events.js"></script>
90-
<script src="draggable_methods.js"></script>
91-
<script src="draggable_options.js"></script>
92-
<script src="draggable_test_helpers.js"></script>
93-
94-
<script src="../swarminject.js"></script>
9566
</head>
9667
<body>
9768

tests/unit/draggable/draggable_common.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
TestHelpers.commonWidgetTests( "draggable", {
1+
define( [
2+
"lib/common",
3+
"ui/draggable"
4+
], function( common ) {
5+
6+
common.testWidget( "draggable", {
27
defaults: {
38
appendTo: "parent",
49
axis: false,
@@ -39,3 +44,5 @@ TestHelpers.commonWidgetTests( "draggable", {
3944
stop: null
4045
}
4146
});
47+
48+
} );

tests/unit/draggable/draggable_core.js

+22-19
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
/*
2-
* draggable_core.js
3-
*/
4-
5-
(function( $ ) {
1+
define( [
2+
"jquery",
3+
"lib/helper",
4+
"./draggable_test_helpers",
5+
"ui/draggable",
6+
"ui/droppable",
7+
"ui/resizable"
8+
], function( $, testHelpers, draggableTestHelpers ) {
69

710
module( "draggable: core" );
811

@@ -44,12 +47,12 @@ test( "element types", function( assert ) {
4447

4548
test( "No options, relative", function() {
4649
expect( 2 );
47-
TestHelpers.draggable.shouldMove( $( "#draggable1" ).draggable(), "no options, relative" );
50+
draggableTestHelpers.shouldMove( $( "#draggable1" ).draggable(), "no options, relative" );
4851
});
4952

5053
test( "No options, absolute", function() {
5154
expect( 2 );
52-
TestHelpers.draggable.shouldMove( $( "#draggable2" ).draggable(), "no options, absolute" );
55+
draggableTestHelpers.shouldMove( $( "#draggable2" ).draggable(), "no options, absolute" );
5356
});
5457

5558
test( "resizable handle with complex markup (#8756 / #8757)", function() {
@@ -92,7 +95,7 @@ test( "#8269: Removing draggable element on drop", function() {
9295
});
9396

9497
// Support: Opera 12.10, Safari 5.1, jQuery <1.8
95-
if ( TestHelpers.draggable.unreliableContains ) {
98+
if ( draggableTestHelpers.unreliableContains ) {
9699
ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
97100
ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
98101
} else {
@@ -118,7 +121,7 @@ test( "Stray mousemove after mousedown still drags", function() {
118121
$( document ).simulate( "mousemove", { button: -1 });
119122
});
120123

121-
TestHelpers.draggable.shouldMove( element, "element is draggable" );
124+
draggableTestHelpers.shouldMove( element, "element is draggable" );
122125
});
123126

124127
test( "#6258: not following mouse when scrolled and using overflow-y: scroll", function() {
@@ -138,7 +141,7 @@ test( "#6258: not following mouse when scrolled and using overflow-y: scroll", f
138141
oldOverflowY = $( "html" ).css( "overflow-y" ),
139142
oldOverflowX = $( "html" ).css( "overflow-x" );
140143

141-
TestHelpers.forceScrollableWindow();
144+
testHelpers.forceScrollableWindow();
142145

143146
$( "html" )
144147
.css( "overflow-y", "scroll" )
@@ -164,7 +167,7 @@ test( "#9315: jumps down with offset of scrollbar", function() {
164167
}
165168
});
166169

167-
TestHelpers.forceScrollableWindow();
170+
testHelpers.forceScrollableWindow();
168171

169172
$( "html" ).scrollTop( 300 ).scrollLeft( 300 );
170173

@@ -198,7 +201,7 @@ test( "scroll offset with fixed ancestors", function() {
198201
}
199202
});
200203

201-
TestHelpers.forceScrollableWindow();
204+
testHelpers.forceScrollableWindow();
202205

203206
$( "#wrapper" ).css( "position", "fixed" );
204207
$( "#wrapper2" ).css( "position", "absolute" );
@@ -269,8 +272,8 @@ test( "#5727: draggable from iframe", function() {
269272
equal( draggable1.closest( iframeBody ).length, 1 );
270273

271274
// TODO: fix draggable within an IFRAME to fire events on the element properly
272-
// and these TestHelpers.draggable.shouldMove relies on events for testing
273-
//TestHelpers.draggable.shouldMove( draggable1, "draggable from an iframe" );
275+
// and these draggableTestHelpers.shouldMove relies on events for testing
276+
//draggableTestHelpers.shouldMove( draggable1, "draggable from an iframe" );
274277
});
275278

276279
test( "#8399: A draggable should become the active element after you are finished interacting with it, but not before.", function() {
@@ -282,7 +285,7 @@ test( "#8399: A draggable should become the active element after you are finishe
282285
notStrictEqual( document.activeElement, element.get( 0 ), "moving a draggable anchor did not make it the active element" );
283286
});
284287

285-
TestHelpers.draggable.move( element, 50, 50 );
288+
draggableTestHelpers.move( element, 50, 50 );
286289

287290
strictEqual( document.activeElement, element.get( 0 ), "finishing moving a draggable anchor made it the active element" );
288291
});
@@ -293,16 +296,16 @@ asyncTest( "blur behavior", function() {
293296
var element = $( "#draggable1" ).draggable(),
294297
focusElement = $( "<div tabindex='1'></div>" ).appendTo( element );
295298

296-
TestHelpers.onFocus( focusElement, function() {
299+
testHelpers.onFocus( focusElement, function() {
297300
strictEqual( document.activeElement, focusElement.get( 0 ), "test element is focused before mousing down on a draggable" );
298301

299-
TestHelpers.draggable.move( focusElement, 1, 1 );
302+
draggableTestHelpers.move( focusElement, 1, 1 );
300303

301304
// http://bugs.jqueryui.com/ticket/10527
302305
// Draggable: Can't select option in modal dialog (IE8)
303306
strictEqual( document.activeElement, focusElement.get( 0 ), "test element is focused after mousing down on itself" );
304307

305-
TestHelpers.draggable.move( element, 50, 50 );
308+
draggableTestHelpers.move( element, 50, 50 );
306309

307310
// http://bugs.jqueryui.com/ticket/4261
308311
// active element should blur when mousing down on a draggable
@@ -341,4 +344,4 @@ test( "ui-draggable-handle managed correctly in nested draggables", function( as
341344
assert.hasClasses( child, "ui-draggable-handle", "child retains class name on destroy" );
342345
});
343346

344-
})( jQuery );
347+
} );

tests/unit/draggable/draggable_events.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
/*
2-
* draggable_events.js
3-
*/
4-
(function( $ ) {
1+
define( [
2+
"jquery",
3+
"ui/draggable"
4+
], function( $ ) {
55

66
var element;
77

@@ -161,4 +161,4 @@ test( "position and offset in hash is consistent between start, drag, and stop",
161161
deepEqual( dragOffset, stopOffset, "drag offset equals stop offset" );
162162
});
163163

164-
})( jQuery );
164+
} );

tests/unit/draggable/draggable_methods.js

+14-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
/*
2-
* draggable_methods.js
3-
*/
4-
(function( $ ) {
1+
define( [
2+
"jquery",
3+
"./draggable_test_helpers",
4+
"ui/draggable"
5+
], function( $, draggableTestHelpers ) {
56

67
var element;
78

@@ -54,19 +55,19 @@ test( "enable", function() {
5455
expect( 11 );
5556

5657
element.draggable({ disabled: true });
57-
TestHelpers.draggable.shouldNotDrag( element, ".draggable({ disabled: true })" );
58+
draggableTestHelpers.shouldNotDrag( element, ".draggable({ disabled: true })" );
5859

5960
element.draggable("enable");
60-
TestHelpers.draggable.shouldMove( element, ".draggable('enable')" );
61+
draggableTestHelpers.shouldMove( element, ".draggable('enable')" );
6162
equal( element.draggable( "option", "disabled" ), false, "disabled option getter" );
6263

6364
element.draggable("destroy");
6465
element.draggable({ disabled: true });
65-
TestHelpers.draggable.shouldNotDrag( element, ".draggable({ disabled: true })" );
66+
draggableTestHelpers.shouldNotDrag( element, ".draggable({ disabled: true })" );
6667

6768
element.draggable( "option", "disabled", false );
6869
equal(element.draggable( "option", "disabled" ), false, "disabled option setter" );
69-
TestHelpers.draggable.shouldMove( element, ".draggable('option', 'disabled', false)" );
70+
draggableTestHelpers.shouldMove( element, ".draggable('option', 'disabled', false)" );
7071

7172
var expected = element.draggable(),
7273
actual = expected.draggable("enable");
@@ -77,19 +78,19 @@ test( "disable", function( assert ) {
7778
expect( 14 );
7879

7980
element = $( "#draggable2" ).draggable({ disabled: false });
80-
TestHelpers.draggable.shouldMove( element, ".draggable({ disabled: false })" );
81+
draggableTestHelpers.shouldMove( element, ".draggable({ disabled: false })" );
8182

8283
element.draggable( "disable" );
83-
TestHelpers.draggable.shouldNotDrag( element, ".draggable('disable')" );
84+
draggableTestHelpers.shouldNotDrag( element, ".draggable('disable')" );
8485
equal( element.draggable( "option", "disabled" ), true, "disabled option getter" );
8586

8687
element.draggable( "destroy" );
8788
element.draggable({ disabled: false });
88-
TestHelpers.draggable.shouldMove( element, ".draggable({ disabled: false })" );
89+
draggableTestHelpers.shouldMove( element, ".draggable({ disabled: false })" );
8990

9091
element.draggable( "option", "disabled", true );
9192
equal( element.draggable( "option", "disabled" ), true, "disabled option setter" );
92-
TestHelpers.draggable.shouldNotDrag( element, ".draggable('option', 'disabled', true)" );
93+
draggableTestHelpers.shouldNotDrag( element, ".draggable('option', 'disabled', true)" );
9394

9495
assert.lacksClasses( element.draggable( "widget" ), "ui-state-disabled" );
9596
ok( !element.draggable( "widget" ).attr( "aria-disabled" ), "element does not get aria-disabled" );
@@ -100,4 +101,4 @@ test( "disable", function( assert ) {
100101
equal( actual, expected, "disable is chainable" );
101102
});
102103

103-
})( jQuery );
104+
} );

0 commit comments

Comments
 (0)