aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorey Frang <gnarf@gnarf.net>2013-01-08 03:33:01 -0600
committerCorey Frang <gnarf@gnarf.net>2013-01-08 03:33:27 -0600
commitce426c5d693ab8f15bfaf70fc4bec8f7e881d0b1 (patch)
tree6b21081412cc9b99ffc4c4a8c60a432a6f0545eb
parented6209e8b219fd8e797a42effee4ccecf063bb21 (diff)
downloadjquery-ce426c5d693ab8f15bfaf70fc4bec8f7e881d0b1.tar.gz
jquery-ce426c5d693ab8f15bfaf70fc4bec8f7e881d0b1.zip
Adding some more test coverage for .finish()
-rw-r--r--test/unit/effects.js73
1 files changed, 72 insertions, 1 deletions
diff --git a/test/unit/effects.js b/test/unit/effects.js
index 1e9093fb8..16b4c15e5 100644
--- a/test/unit/effects.js
+++ b/test/unit/effects.js
@@ -1891,7 +1891,7 @@ test( ".finish() completes all queued animations", function() {
anim[ prop ] = value;
// the delay shouldn't matter at all!
div.css( prop, 1 ).animate( anim, function() {
- ok( true, "Called animation callback" );
+ ok( true, "Called animation callback for " + prop );
}).delay( 100 );
});
equal( div.queue().length, 8, "8 animations in the queue" );
@@ -1908,6 +1908,77 @@ test( ".finish() completes all queued animations", function() {
jQuery.fx.tick();
});
+test( ".finish( false ) - unqueued animations", function() {
+ var animations = {
+ top: 100,
+ left: 100,
+ height: 100,
+ width: 100
+ },
+ div = jQuery("<div>");
+
+ expect( 10 );
+
+ jQuery.each( animations, function( prop, value ) {
+ var anim = {};
+ anim[ prop ] = value;
+ div.css( prop, 1 ).animate( anim, {
+ queue: false,
+ complete: function() {
+ ok( true, "Called animation callback for " + prop );
+ }
+ });
+ });
+ equal( div.queue().length, 0, "0 animations in the queue" );
+ div.finish( false );
+ jQuery.each( animations, function( prop, value ) {
+ equal( parseFloat( div.css( prop ) ), value, prop + " finished at correct value" );
+ });
+ equal( div.is(":animated"), false, ":animated doesn't match" );
+
+ // cleanup
+ div.remove();
+ // leaves a "shadow timer" which does nothing around, need to force a tick
+ jQuery.fx.tick();
+});
+
+test( ".finish( \"custom\" ) - custom queue animations", function() {
+ var animations = {
+ top: 100,
+ left: 100,
+ height: 100,
+ width: 100
+ },
+ div = jQuery("<div>");
+
+ expect( 11 );
+
+ jQuery.each( animations, function( prop, value ) {
+ var anim = {};
+ anim[ prop ] = value;
+ div.css( prop, 1 ).animate( anim, {
+ queue: "custom",
+ complete: function() {
+ ok( true, "Called animation callback for " + prop );
+ }
+ });
+ });
+ equal( div.queue( "custom" ).length, 4, "4 animations in the queue" );
+ // start the first animation
+ div.dequeue( "custom" );
+ equal( div.is(":animated"), true, ":animated matches" );
+ div.finish( "custom" );
+ jQuery.each( animations, function( prop, value ) {
+ equal( parseFloat( div.css( prop ) ), value, prop + " finished at correct value" );
+ });
+ equal( div.is(":animated"), false, ":animated doesn't match" );
+
+ // cleanup
+ div.remove();
+ // leaves a "shadow timer" which does nothing around, need to force a tick
+ jQuery.fx.tick();
+});
+
test( ".finish() calls finish of custom queue functions", function() {
function queueTester( next ) {