r2027 - trunk/tests/unit/sortable

r2027 - trunk/tests/unit/sortable


Author: paul.bakaus
Date: Thu Feb 5 23:39:52 2009
New Revision: 2027
Modified:
trunk/tests/unit/sortable/sortable_events.js
Log:
sortable: implemented tests for start,stop,beforeStop,change and update
Modified: trunk/tests/unit/sortable/sortable_events.js
==============================================================================
--- trunk/tests/unit/sortable/sortable_events.js    (original)
+++ trunk/tests/unit/sortable/sortable_events.js    Thu Feb 5 23:39:52 2009
@@ -6,27 +6,124 @@
module("sortable: events");
test("start", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ start: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 10 });
+    
+    ok(hash, 'start event triggered');    
+    ok(hash.helper, 'UI hash includes: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+
+            
});
test("sort", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ sort: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 10 });
+    
+    ok(hash, 'sort event triggered');    
+    ok(hash.helper, 'UI hash includes: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+    
});
test("change", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ change: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 1, dy: 1 });
+    
+    ok(!hash, '1px drag, change event should not be triggered');
+    
+    $("#sortable")
+        .sortable({ change: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });    
+        
+    ok(hash, 'change event triggered');    
+    ok(hash.helper, 'UI hash includes: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+    
});
test("beforeStop", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ beforeStop: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });    
+        
+    ok(hash, 'beforeStop event triggered');    
+    ok(hash.helper, 'UI hash includes: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+    
});
test("stop", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ stop: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });    
+        
+    ok(hash, 'stop event triggered');    
+    ok(!hash.helper, 'UI should not include: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+    
});
test("update", function() {
-    ok(false, "missing test - untested code is broken code.");
+    
+    var hash;
+    $("#sortable")
+        .sortable({ update: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 1, dy: 1 });
+    
+    ok(!hash, '1px drag, update event should not be triggered');
+    
+    $("#sortable")
+        .sortable({ update: function(e, ui) { hash = ui; } })
+        .find('li:eq(0)').simulate("drag", { dx: 0, dy: 20 });    
+        
+    ok(hash, 'update event triggered');    
+    ok(!hash.helper, 'UI hash should not include: helper');
+    ok(hash.placeholder, 'UI hash includes: placeholder');
+    ok(hash.position && (hash.position.top && hash.position.left), 'UI hash
includes: position');
+    ok(hash.absolutePosition && (hash.absolutePosition.top &&
hash.absolutePosition.left), 'UI hash includes: absolutePosition');
+    ok(hash.offset && (hash.offset.top && hash.offset.left), 'UI hash
includes: offset');
+    ok(hash.item, 'UI hash includes: item');
+    ok(!hash.sender, 'UI hash does not include: sender');
+    
});
test("receive", function() {