From 40aa95c32097b0bc669ea5b1e127717b54b0335a Mon Sep 17 00:00:00 2001 From: jeresig Date: Thu, 14 Oct 2010 21:48:03 -0400 Subject: [PATCH] Don't test inline-block in browsers that don't support it (or an approximation of it, like IE). --- test/unit/effects.js | 63 ++++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/test/unit/effects.js b/test/unit/effects.js index 2dfe834b2..6baa0f62d 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -127,27 +127,56 @@ test("animate negative height", function() { test("animate block as inline width/height", function() { expect(3); - stop(); - jQuery("#foo").css({ display: "inline", width: '', height: '' }).animate({ width: 42, height: 42 }, 100, function() { - equals( jQuery(this).css("display"), jQuery.support.inlineBlockNeedsLayout ? "inline" : "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); - equals( this.offsetWidth, 42, "width was animated" ); - equals( this.offsetHeight, 42, "height was animated" ); - start(); - }); + + var span = jQuery("").css("display", "inline-block").appendTo("body"), + expected = span.css("display"); + + span.remove(); + + if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { + stop(); + + jQuery("#foo").css({ display: "inline", width: '', height: '' }).animate({ width: 42, height: 42 }, 100, function() { + equals( jQuery(this).css("display"), jQuery.support.inlineBlockNeedsLayout ? "inline" : "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); + equals( this.offsetWidth, 42, "width was animated" ); + equals( this.offsetHeight, 42, "height was animated" ); + start(); + }); + + // Browser doesn't support inline-block + } else { + ok( true, "Browser doesn't support inline-block" ); + ok( true, "Browser doesn't support inline-block" ); + ok( true, "Browser doesn't support inline-block" ); + } }); test("animate native inline width/height", function() { expect(3); - stop(); - jQuery("#foo").css({ display: "", width: '', height: '' }) - .append('text') - .children('span') - .animate({ width: 42, height: 42 }, 100, function() { - equals( jQuery(this).css("display"), "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); - equals( this.offsetWidth, 42, "width was animated" ); - equals( this.offsetHeight, 42, "height was animated" ); - start(); - }); + + var span = jQuery("").css("display", "inline-block").appendTo("body"), + expected = span.css("display"); + + span.remove(); + + if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { + stop(); + jQuery("#foo").css({ display: "", width: '', height: '' }) + .append('text') + .children('span') + .animate({ width: 42, height: 42 }, 100, function() { + equals( jQuery(this).css("display"), "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); + equals( this.offsetWidth, 42, "width was animated" ); + equals( this.offsetHeight, 42, "height was animated" ); + start(); + }); + + // Browser doesn't support inline-block + } else { + ok( true, "Browser doesn't support inline-block" ); + ok( true, "Browser doesn't support inline-block" ); + ok( true, "Browser doesn't support inline-block" ); + } }); test("animate block width/height", function() { -- 2.39.5