mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-05-24 00:24:07 +03:00
Merge commit 'd21ea7816e
' as 'jquery-ui'
This commit is contained in:
commit
e904a80717
629 changed files with 341074 additions and 0 deletions
26
jquery-ui/tests/unit/droppable/all.html
Normal file
26
jquery-ui/tests/unit/droppable/all.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>jQuery UI Droppable Test Suite</title>
|
||||
|
||||
<script src="../../../external/jquery/jquery.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
|
||||
<link rel="stylesheet" href="../qunit-composite.css">
|
||||
<script src="../../../external/qunit/qunit.js"></script>
|
||||
<script src="../qunit-composite.js"></script>
|
||||
<script src="../subsuite.js"></script>
|
||||
|
||||
<script>
|
||||
testAllVersions( "droppable" );
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture">
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
46
jquery-ui/tests/unit/droppable/droppable.html
Normal file
46
jquery-ui/tests/unit/droppable/droppable.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>jQuery UI Droppable Test Suite</title>
|
||||
|
||||
<script src="../../jquery.js"></script>
|
||||
<link rel="stylesheet" href="../../../external/qunit/qunit.css">
|
||||
<script src="../../../external/qunit/qunit.js"></script>
|
||||
<script src="../../../external/jquery-simulate/jquery.simulate.js"></script>
|
||||
<script src="../testsuite.js"></script>
|
||||
<script>
|
||||
TestHelpers.loadResources({
|
||||
css: [ "core" ],
|
||||
js: [
|
||||
"ui/core.js",
|
||||
"ui/widget.js",
|
||||
"ui/mouse.js",
|
||||
"ui/draggable.js",
|
||||
"ui/droppable.js"
|
||||
]
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="droppable_common.js"></script>
|
||||
<script src="droppable_core.js"></script>
|
||||
<script src="droppable_events.js"></script>
|
||||
<script src="droppable_methods.js"></script>
|
||||
<script src="droppable_options.js"></script>
|
||||
<script src="droppable_test_helpers.js"></script>
|
||||
|
||||
<script src="../swarminject.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture">
|
||||
|
||||
<div id="draggable1" style="width: 25px; height: 25px;">Draggable</div>
|
||||
<div id="droppable1" style="width: 100px; height: 100px;">Droppable</div>
|
||||
<div id="droppable2" style="width: 100px; height: 100px;">Droppable</div>
|
||||
<div style='width:1000px;height:1000px;'> </div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
20
jquery-ui/tests/unit/droppable/droppable_common.js
vendored
Normal file
20
jquery-ui/tests/unit/droppable/droppable_common.js
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
TestHelpers.commonWidgetTests( "droppable", {
|
||||
defaults: {
|
||||
accept: "*",
|
||||
activeClass: false,
|
||||
addClasses: true,
|
||||
disabled: false,
|
||||
greedy: false,
|
||||
hoverClass: false,
|
||||
scope: "default",
|
||||
tolerance: "intersect",
|
||||
|
||||
// callbacks
|
||||
activate: null,
|
||||
create: null,
|
||||
deactivate: null,
|
||||
drop: null,
|
||||
out: null,
|
||||
over: null
|
||||
}
|
||||
});
|
29
jquery-ui/tests/unit/droppable/droppable_core.js
vendored
Normal file
29
jquery-ui/tests/unit/droppable/droppable_core.js
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* droppable_core.js
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
module("droppable: core");
|
||||
|
||||
test("element types", function() {
|
||||
var typeNames = ("p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form" +
|
||||
",table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr" +
|
||||
",acronym,code,samp,kbd,var,img,hr" +
|
||||
",input,button,label,select,iframe").split(",");
|
||||
|
||||
expect( typeNames.length );
|
||||
|
||||
$.each(typeNames, function(i) {
|
||||
var typeName = typeNames[i],
|
||||
el = $(document.createElement(typeName)).appendTo("body");
|
||||
|
||||
(typeName === "table" && el.append("<tr><td>content</td></tr>"));
|
||||
el.droppable();
|
||||
TestHelpers.droppable.shouldDrop();
|
||||
el.droppable("destroy");
|
||||
el.remove();
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery);
|
63
jquery-ui/tests/unit/droppable/droppable_events.js
vendored
Normal file
63
jquery-ui/tests/unit/droppable/droppable_events.js
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
(function( $ ) {
|
||||
|
||||
module( "droppable: events" );
|
||||
|
||||
test( "droppable destruction/recreation on drop event", function() {
|
||||
expect( 1 );
|
||||
|
||||
var config = {
|
||||
activeClass: "active",
|
||||
drop: function() {
|
||||
var element = $( this ),
|
||||
newDroppable = $( "<div>" )
|
||||
.css({ width: 100, height: 100 })
|
||||
.text( "Droppable" );
|
||||
element.after( newDroppable );
|
||||
element.remove();
|
||||
newDroppable.droppable( config );
|
||||
}
|
||||
},
|
||||
|
||||
draggable = $( "#draggable1" ).draggable(),
|
||||
droppable1 = $( "#droppable1" ).droppable( config ),
|
||||
droppable2 = $( "#droppable2" ).droppable( config ),
|
||||
|
||||
droppableOffset = droppable1.offset(),
|
||||
draggableOffset = draggable.offset(),
|
||||
dx = droppableOffset.left - draggableOffset.left,
|
||||
dy = droppableOffset.top - draggableOffset.top;
|
||||
|
||||
draggable.simulate( "drag", {
|
||||
dx: dx,
|
||||
dy: dy
|
||||
});
|
||||
|
||||
ok( !droppable2.hasClass( "active" ), "subsequent droppable no longer active" );
|
||||
});
|
||||
|
||||
|
||||
|
||||
// todo: comment the following in when ready to actually test
|
||||
/*
|
||||
test("activate", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test("deactivate", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test("over", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test("out", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test("drop", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
*/
|
||||
|
||||
})( jQuery );
|
91
jquery-ui/tests/unit/droppable/droppable_methods.js
vendored
Normal file
91
jquery-ui/tests/unit/droppable/droppable_methods.js
vendored
Normal file
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
* droppable_methods.js
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module("droppable: methods");
|
||||
|
||||
test("init", function() {
|
||||
expect( 5 );
|
||||
|
||||
$("<div></div>").appendTo("body").droppable().remove();
|
||||
ok(true, ".droppable() called on element");
|
||||
|
||||
$([]).droppable();
|
||||
ok(true, ".droppable() called on empty collection");
|
||||
|
||||
$("<div></div>").droppable();
|
||||
ok(true, ".droppable() called on disconnected DOMElement");
|
||||
|
||||
$("<div></div>").droppable().droppable("option", "foo");
|
||||
ok(true, "arbitrary option getter after init");
|
||||
|
||||
$("<div></div>").droppable().droppable("option", "foo", "bar");
|
||||
ok(true, "arbitrary option setter after init");
|
||||
});
|
||||
|
||||
test("destroy", function() {
|
||||
expect( 4 );
|
||||
|
||||
$("<div></div>").appendTo("body").droppable().droppable("destroy").remove();
|
||||
ok(true, ".droppable('destroy') called on element");
|
||||
|
||||
$([]).droppable().droppable("destroy");
|
||||
ok(true, ".droppable('destroy') called on empty collection");
|
||||
|
||||
$("<div></div>").droppable().droppable("destroy");
|
||||
ok(true, ".droppable('destroy') called on disconnected DOMElement");
|
||||
|
||||
var expected = $("<div></div>").droppable(),
|
||||
actual = expected.droppable("destroy");
|
||||
equal(actual, expected, "destroy is chainable");
|
||||
});
|
||||
|
||||
test("enable", function() {
|
||||
expect(7);
|
||||
|
||||
var el, expected, actual;
|
||||
|
||||
el = $("#droppable1").droppable({ disabled: true });
|
||||
TestHelpers.droppable.shouldNotDrop();
|
||||
el.droppable("enable");
|
||||
TestHelpers.droppable.shouldDrop();
|
||||
equal(el.droppable("option", "disabled"), false, "disabled option getter");
|
||||
el.droppable("destroy");
|
||||
el.droppable({ disabled: true });
|
||||
TestHelpers.droppable.shouldNotDrop();
|
||||
el.droppable("option", "disabled", false);
|
||||
equal(el.droppable("option", "disabled"), false, "disabled option setter");
|
||||
TestHelpers.droppable.shouldDrop();
|
||||
|
||||
expected = $("<div></div>").droppable(),
|
||||
actual = expected.droppable("enable");
|
||||
equal(actual, expected, "enable is chainable");
|
||||
});
|
||||
|
||||
test( "disable", function() {
|
||||
expect( 10 );
|
||||
|
||||
var actual, expected,
|
||||
element = $( "#droppable1" ).droppable({ disabled: false });
|
||||
|
||||
TestHelpers.droppable.shouldDrop();
|
||||
element.droppable( "disable" );
|
||||
TestHelpers.droppable.shouldNotDrop();
|
||||
equal( element.droppable( "option", "disabled" ), true, "disabled option getter" );
|
||||
element.droppable( "destroy" );
|
||||
element.droppable({ disabled: false });
|
||||
TestHelpers.droppable.shouldDrop();
|
||||
element.droppable( "option", "disabled", true );
|
||||
ok( !element.droppable( "widget" ).hasClass( "ui-state-disabled" ), "element does not get ui-state-disabled" );
|
||||
ok( !element.droppable( "widget" ).attr( "aria-disabled" ), "element does not get aria-disabled" );
|
||||
ok( element.droppable( "widget" ).hasClass( "ui-droppable-disabled" ), "element gets ui-droppable-disabled" );
|
||||
equal( element.droppable( "option", "disabled" ), true, "disabled option setter" );
|
||||
TestHelpers.droppable.shouldNotDrop();
|
||||
|
||||
expected = $( "<div></div>" ).droppable();
|
||||
actual = expected.droppable( "disable" );
|
||||
equal( actual, expected, "disable is chainable" );
|
||||
});
|
||||
|
||||
})( jQuery );
|
204
jquery-ui/tests/unit/droppable/droppable_options.js
vendored
Normal file
204
jquery-ui/tests/unit/droppable/droppable_options.js
vendored
Normal file
|
@ -0,0 +1,204 @@
|
|||
/*
|
||||
* droppable_options.js
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module( "droppable: options" );
|
||||
|
||||
/*
|
||||
test( "{ accept '*' }, default ", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test( "{ accept: Selector }", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test( "{ accept: function(draggable) }", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test( "activeClass", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
*/
|
||||
test( "{ addClasses: true }, default", function() {
|
||||
expect( 1 );
|
||||
var el = $( "<div />" ).droppable({ addClasses: true });
|
||||
ok( el.is( ".ui-droppable" ), "'ui-droppable' class added" );
|
||||
el.droppable( "destroy" );
|
||||
});
|
||||
|
||||
test( "{ addClasses: false }", function() {
|
||||
expect( 1 );
|
||||
var el = $( "<div />" ).droppable({ addClasses: false });
|
||||
ok( !el.is( ".ui-droppable" ), "'ui-droppable' class not added" );
|
||||
el.droppable( "destroy" );
|
||||
});
|
||||
|
||||
test( "scope", function() {
|
||||
expect( 4 );
|
||||
var droppableOffset, draggableOffset, oldDraggableOffset, dx, dy,
|
||||
draggable1 = $( "<div />" ).appendTo( "#qunit-fixture" ).draggable({ revert: "invalid" }),
|
||||
draggable2 = $( "<div />" ).appendTo( "#qunit-fixture" ).droppable(),
|
||||
droppable = $( "<div />" ).appendTo( "#qunit-fixture" ).droppable(),
|
||||
newScope = "test";
|
||||
|
||||
draggable1.draggable( "option", "scope", newScope );
|
||||
droppable.droppable( "option", "scope", newScope );
|
||||
|
||||
// Test that droppable accepts draggable with new scope.
|
||||
droppableOffset = droppable.offset();
|
||||
draggableOffset = draggable1.offset();
|
||||
dx = droppableOffset.left - draggableOffset.left;
|
||||
dy = droppableOffset.top - draggableOffset.top;
|
||||
|
||||
draggable1.simulate( "drag", {
|
||||
dx: dx,
|
||||
dy: dy
|
||||
});
|
||||
|
||||
draggableOffset = draggable1.offset();
|
||||
equal( draggableOffset.left, droppableOffset.left );
|
||||
equal( draggableOffset.top, droppableOffset.top );
|
||||
|
||||
// Test that droppable doesn't accept draggable with old scope.
|
||||
draggableOffset = draggable2.offset();
|
||||
dx = droppableOffset.left - draggableOffset.left;
|
||||
dy = droppableOffset.top - draggableOffset.top;
|
||||
oldDraggableOffset = draggableOffset;
|
||||
|
||||
draggable2.simulate( "drag", {
|
||||
dx: dx,
|
||||
dy: dy
|
||||
});
|
||||
|
||||
draggableOffset = draggable2.offset();
|
||||
equal( draggableOffset.left, oldDraggableOffset.left );
|
||||
equal( draggableOffset.top, oldDraggableOffset.top );
|
||||
});
|
||||
/*
|
||||
test( "greedy", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test( "hoverClass", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
|
||||
test( "tolerance, fit", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
*/
|
||||
|
||||
test( "tolerance, intersect", function() {
|
||||
expect( 2 );
|
||||
|
||||
var draggable, droppable,
|
||||
dataset = [
|
||||
[ 0, 0, false, "too far up and left" ],
|
||||
[ 6, 0, false, "too far up" ],
|
||||
[ 0, 6, false, "too far left" ],
|
||||
[ 6, 6, true, "top left corner" ],
|
||||
[ 14, 14, true, "bottom right corner" ],
|
||||
[ 15, 6, false, "too far right" ],
|
||||
[ 6, 15, false, "too far down" ],
|
||||
[ 15, 15, false, "too far down and right" ]
|
||||
];
|
||||
|
||||
draggable = $( "<div />" )
|
||||
.appendTo( "#qunit-fixture" )
|
||||
.css({
|
||||
width: 10,
|
||||
height: 10,
|
||||
position: "absolute",
|
||||
|
||||
// http://bugs.jqueryui.com/ticket/6876
|
||||
// Droppable: droppable region is offset by draggables margin
|
||||
marginTop: 3,
|
||||
marginLeft: 3
|
||||
})
|
||||
.draggable();
|
||||
|
||||
droppable = $( "<div />" )
|
||||
.appendTo( "#qunit-fixture" )
|
||||
.css({ width: 10, height: 10, position: "absolute", top: 13, left: 13 })
|
||||
.droppable({ tolerance: "intersect" });
|
||||
|
||||
$.each( dataset, function() {
|
||||
var data = this;
|
||||
|
||||
draggable.css({
|
||||
top: 0,
|
||||
left: 0
|
||||
});
|
||||
|
||||
droppable.unbind( "drop" ).bind( "drop", function() {
|
||||
equal( true, data[ 2 ], data[ 3 ] );
|
||||
});
|
||||
|
||||
$( draggable ).simulate( "drag", {
|
||||
dx: data[ 0 ],
|
||||
dy: data[ 1 ]
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test( "tolerance, pointer", function() {
|
||||
expect( 3 );
|
||||
|
||||
var draggable, droppable,
|
||||
dataset = [
|
||||
[ -1, -1, false, "too far up and left" ],
|
||||
[ -1, 0, false, "too far left" ],
|
||||
[ 0, -1, false, "too far up" ],
|
||||
[ 0, 0, true, "top left corner" ],
|
||||
[ 9, 9, true, "bottom right corner" ],
|
||||
[ 10, 9, false, "too far right" ],
|
||||
[ 9, 10, false, "too far down" ],
|
||||
[ 10, 10, false, "too far down and right" ]
|
||||
];
|
||||
|
||||
draggable = $( "<div />" )
|
||||
.appendTo( "#qunit-fixture" )
|
||||
.css({ width: 10, height: 10, position: "absolute" })
|
||||
.draggable();
|
||||
|
||||
droppable = $( "<div />" )
|
||||
.appendTo( "#qunit-fixture" )
|
||||
.css({ width: 10, height: 10, position: "absolute", top: 5, left: 5 })
|
||||
.droppable({ tolerance: "pointer" });
|
||||
|
||||
$.each( dataset, function() {
|
||||
var data = this;
|
||||
|
||||
droppable.unbind( "drop" ).bind( "drop", function() {
|
||||
equal( true, data[ 2 ], data[ 3 ] );
|
||||
});
|
||||
|
||||
$( draggable ).simulate( "drag", {
|
||||
dx: ( data[ 0 ] - $( draggable ).position().left ),
|
||||
dy: ( data[ 1 ] - $( draggable ).position().top )
|
||||
});
|
||||
});
|
||||
|
||||
// http://bugs.jqueryui.com/ticket/4977 - tolerance, pointer - bug when pointer outside draggable
|
||||
draggable.css({ top: 0, left: 0 }).draggable( "option", "axis", "x" );
|
||||
droppable.css({ top: 15, left: 15 });
|
||||
|
||||
droppable.unbind( "drop" ).bind( "drop", function() {
|
||||
ok( true, "drop fires as long as pointer is within droppable" );
|
||||
});
|
||||
|
||||
$( draggable ).simulate( "drag", {
|
||||
dx: 10,
|
||||
dy: 10
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
test( "tolerance, touch", function() {
|
||||
ok(false, 'missing test - untested code is broken code');
|
||||
});
|
||||
*/
|
||||
})(jQuery);
|
10
jquery-ui/tests/unit/droppable/droppable_test_helpers.js
vendored
Normal file
10
jquery-ui/tests/unit/droppable/droppable_test_helpers.js
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
TestHelpers.droppable = {
|
||||
shouldDrop: function() {
|
||||
// todo: actually implement this
|
||||
ok(true, "missing test - untested code is broken code");
|
||||
},
|
||||
shouldNotDrop: function() {
|
||||
// todo: actually implement this
|
||||
ok(true, "missing test - untested code is broken code");
|
||||
}
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue