X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Feffects.js;h=6baa0f62d8025bada17888fa69d98e15e4ab0269;hb=0564553bf15cd54eb5af18810bf2e9300628ccc1;hp=dd95d1ba61b975b524c4c55e3343204bc7f8a758;hpb=91028794d5029365eca0c3d40cfdae016403cbe6;p=jquery.git
diff --git a/test/unit/effects.js b/test/unit/effects.js
index dd95d1b..6baa0f6 100644
--- a/test/unit/effects.js
+++ b/test/unit/effects.js
@@ -38,9 +38,10 @@ test("show()", function() {
});
// #show-tests * is set display: none in CSS
- jQuery("#main").append('
');
-
- var old = jQuery("#show-tests table").show().css("display") !== "table";
+ jQuery("#main").append('');
+
+ var old = jQuery("#test-table").show().css("display") !== "table";
+ jQuery("#test-table").remove();
var test = {
"div" : "block",
@@ -71,10 +72,11 @@ test("show(Number) - other displays", function() {
stop();
// #show-tests * is set display: none in CSS
- jQuery("#main").append('');
+ jQuery("#main").append('');
- var old = jQuery("#show-tests table").show().css("display") !== "table",
+ var old = jQuery("#test-table").show().css("display") !== "table",
num = 0;
+ jQuery("#test-table").remove();
var test = {
"div" : "block",
@@ -94,10 +96,7 @@ test("show(Number) - other displays", function() {
};
jQuery.each(test, function(selector, expected) {
- // IE sometimes has issues with chained functions referencing
- // assignments from outside the closure
- var elem = jQuery(selector, "#show-tests");
- elem.show(1, function() {
+ var elem = jQuery(selector, "#show-tests").show(1, function() {
equals( elem.css("display"), expected, "Show using correct display type for " + selector );
if ( ++num === 15 ) {
start();
@@ -128,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() {
@@ -771,3 +799,33 @@ test("animate with per-property easing", function(){
});
});
+
+test("hide hidden elements (bug #7141)", function() {
+ expect(3);
+ QUnit.reset();
+
+ var div = jQuery("").appendTo("#main");
+ equals( div.css("display"), "none", "Element is hidden by default" );
+ div.hide();
+ ok( !div.data("olddisplay"), "olddisplay is undefined after hiding an already-hidden element" );
+ div.show();
+ equals( div.css("display"), "block", "Show a double-hidden element" );
+
+ div.remove();
+});
+
+test("hide hidden elements, with animation (bug #7141)", function() {
+ expect(3);
+ QUnit.reset();
+ stop();
+
+ var div = jQuery("").appendTo("#main");
+ equals( div.css("display"), "none", "Element is hidden by default" );
+ div.hide(1, function () {
+ ok( !div.data("olddisplay"), "olddisplay is undefined after hiding an already-hidden element" );
+ div.show(1, function () {
+ equals( div.css("display"), "block", "Show a double-hidden element" );
+ start();
+ });
+ });
+});