aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/sortable
diff options
context:
space:
mode:
authorAndrei Picus <office.nightcrawler@gmail.com>2014-01-14 11:10:27 +0200
committerMike Sherov <mike.sherov@gmail.com>2014-08-13 20:27:26 -0400
commit1cfebf803beedef05e8dcdd54e34d10c412a9a2b (patch)
tree70f7b92a1c383846d3bc191e9f40c2e447d6ee85 /tests/unit/sortable
parent4dad6bb99dae280108338c040d016f795d0da328 (diff)
downloadjquery-ui-1cfebf803beedef05e8dcdd54e34d10c412a9a2b.tar.gz
jquery-ui-1cfebf803beedef05e8dcdd54e34d10c412a9a2b.zip
Sortable: fire "over" and "out" even when a connectWith hasn't changed
Fixes #9335
Diffstat (limited to 'tests/unit/sortable')
-rw-r--r--tests/unit/sortable/sortable.html3
-rw-r--r--tests/unit/sortable/sortable_events.js103
2 files changed, 105 insertions, 1 deletions
diff --git a/tests/unit/sortable/sortable.html b/tests/unit/sortable/sortable.html
index 85126d62d..8fe07ede1 100644
--- a/tests/unit/sortable/sortable.html
+++ b/tests/unit/sortable/sortable.html
@@ -16,7 +16,8 @@
"ui/core.js",
"ui/widget.js",
"ui/mouse.js",
- "ui/sortable.js"
+ "ui/sortable.js",
+ "ui/draggable.js"
]
});
</script>
diff --git a/tests/unit/sortable/sortable_events.js b/tests/unit/sortable/sortable_events.js
index 8333b8bd4..1bf72cc6a 100644
--- a/tests/unit/sortable/sortable_events.js
+++ b/tests/unit/sortable/sortable_events.js
@@ -258,11 +258,114 @@ test( "over", function() {
equal( overCount, 1, "over fires only once" );
});
+// http://bugs.jqueryui.com/ticket/9335
+// Sortable: over & out events does not consistently fire
+test( "over, fires with draggable connected to sortable", function() {
+ expect( 3 );
+
+ var hash,
+ overCount = 0,
+ item = $( "<div></div>" ).text( "6" ).insertAfter( "#sortable" );
+
+ item.draggable({
+ connectToSortable: "#sortable"
+ });
+ $( ".connectWith" ).sortable({
+ connectWith: ".connectWith",
+ over: function( event, ui ) {
+ hash = ui;
+ overCount++;
+ }
+ });
+
+ item.simulate( "drag", {
+ dy: -20
+ });
+
+ ok( hash, "over event triggered" );
+ ok( !hash.sender, "UI should not include: sender" );
+ equal( overCount, 1, "over fires only once" );
+});
+
+test( "over, with connected sortable", function() {
+ expect( 3 );
+
+ var hash,
+ overCount = 0;
+
+ $( ".connectWith" ).sortable({
+ connectWith: ".connectWith"
+ });
+ $( "#sortable2" ).on( "sortover", function( event, ui ) {
+ hash = ui;
+ overCount++;
+ });
+ $( "#sortable" ).find( "li:eq(0)" ).simulate( "drag", {
+ dy: 102
+ });
+
+ ok( hash, "over event triggered" );
+ equal( hash.sender[ 0 ], $(" #sortable" )[ 0 ], "UI includes: sender" );
+ equal( overCount, 1, "over fires only once" );
+});
+
/*
test("out", function() {
ok(false, "missing test - untested code is broken code.");
});
+*/
+
+test( "out, with connected sortable", function() {
+ expect( 2 );
+
+ var hash,
+ outCount = 0;
+
+ $( ".connectWith" ).sortable({
+ connectWith: ".connectWith"
+ });
+ $( "#sortable" ).on( "sortout", function( event, ui ) {
+ hash = ui;
+ outCount++;
+ });
+ $( "#sortable" ).find( "li:last" ).simulate( "drag", {
+ dy: 40
+ });
+
+ ok( hash, "out event triggered" );
+ equal( outCount, 1, "out fires only once" );
+});
+
+test( "repeated out & over between connected sortables", function() {
+ expect( 2 );
+ var outCount = 0,
+ overCount = 0;
+
+ $( ".connectWith" ).sortable({
+ connectWith: ".connectWith",
+ over: function() {
+ overCount++;
+ },
+ out: function( event, ui ) {
+ // Ignore events that trigger when an item has dropped
+ // checking for the presence of the helper.
+ if ( !ui.helper ) {
+ outCount++;
+ }
+ }
+ });
+ $( "#sortable" ).find( "li:last" ).simulate( "drag", {
+ dy: 40
+ }).simulate( "drag", {
+ dy: -40
+ });
+
+ equal( outCount, 2, "out fires twice" );
+ equal( overCount, 4, "over fires four times" );
+});
+
+/*
test("activate", function() {
ok(false, "missing test - untested code is broken code.");
});