diff options
author | Richard Gibson <richard.gibson@gmail.com> | 2013-08-26 16:36:55 -0400 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2013-08-27 08:38:29 -0400 |
commit | 29903f38afc188c250c9a48ee5a7ad4ce62a4a75 (patch) | |
tree | dd9cc063920fea4cdddfd1776c8158f5b8582ec2 /test | |
parent | 2ac1cd91db5c20cbe8ba0db44f7640cd150060ee (diff) | |
download | jquery-29903f38afc188c250c9a48ee5a7ad4ce62a4a75.tar.gz jquery-29903f38afc188c250c9a48ee5a7ad4ce62a4a75.zip |
No ticket: improve line-height animation test robustness
(cherry picked from commit 2b6a7b1caf5f95034e0324a44ca9e3f27956ff64)
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/effects.js | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/test/unit/effects.js b/test/unit/effects.js index 87bb151e9..79b0f380f 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -1412,7 +1412,8 @@ test("Do not append px to 'fill-opacity' #9548", 1, function() { }); asyncTest("line-height animates correctly (#13855)", 12, function() { - var + var longDuration = 2000, + shortDuration = 500, animated = jQuery( "<p style='line-height: 100;'>unitless</p>" + "<p style='line-height: 5000px;'>px</p>" + @@ -1421,29 +1422,43 @@ asyncTest("line-height animates correctly (#13855)", 12, function() { ).appendTo("#qunit-fixture"), initialHeight = jQuery.map( animated, function( el ) { return jQuery( el ).height(); - }); + }), + tolerance = 1.5, + t0 = +(new Date()); - animated.animate( { "line-height": "hide" }, 1500 ); + animated.animate( { "line-height": "hide" }, longDuration ); setTimeout(function() { + var progress = ( (new Date()) - t0 ) / longDuration; + animated.each(function( i ) { var label = jQuery.text( this ), initial = initialHeight[ i ], - height = jQuery( this ).height(); - ok( height < initial, "hide " + label + ": upper bound; height: " + height + "; intitial: " + initial ); - ok( height > initial / 2, "hide " + label + ": lower bound; height: " + height + "; intitial/2: " + initial / 2 ); + height = jQuery( this ).height(), + lower = initial * ( 1 - progress ) / tolerance; + ok( height < initial, "hide " + label + ": upper bound; " + + height + " < " + initial + " @ " + ( progress * 100 ) + "%" ); + ok( height > lower, "hide " + label + ": lower bound; " + + height + " > " + lower + " @ " + ( progress * 100 ) + "%" ); }); - animated.stop( true, true ).hide().animate( { "line-height": "show" }, 1500 ); + + t0 = +(new Date()); + animated.stop( true, true ).hide().animate( { "line-height": "show" }, longDuration ); setTimeout(function() { + var progress = ( (new Date()) - t0 ) / longDuration; + animated.each(function( i ) { var label = jQuery.text( this ), initial = initialHeight[ i ], - height = jQuery( this ).height(); - ok( height < initial / 2, "show " + label + ": upper bound; height: " + height + "; intitial/2: " + initial / 2 ); + height = jQuery( this ).height(), + upper = initial * progress * tolerance; + ok( height < upper, "show " + label + ": upper bound; " + + height + " < " + upper + " @ " + ( progress * 100 ) + "%" ); }); + animated.stop( true, true ); start(); - }, 400 ); - }, 400 ); + }, shortDuration ); + }, shortDuration ); }); // Start 1.8 Animation tests |