X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=test%2Funit%2Feffects.js;h=7fb1c7d8d972d2929245508117defc895c6d2eb1;hb=c5edf982d59977c506fececd504a3dbfd1a398dc;hp=aca9263840d92d2bdfd1a21be5c77944d7f85aad;hpb=118c8c4600b62d6de2b0248ae27626da74dcf5b2;p=jquery.git diff --git a/test/unit/effects.js b/test/unit/effects.js index aca9263..7fb1c7d 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -1,4 +1,4 @@ -module("effects"); +module("effects", { teardown: moduleTeardown }); test("sanity check", function() { expect(1); @@ -14,7 +14,7 @@ test("show()", function() { equals( hiddendiv.css("display"), "block", "Make sure a pre-hidden div is visible." ); - var div = jQuery("
").hide().appendTo("body").show(); + var div = jQuery("
").hide().appendTo("#main").show(); equal( div.css("display"), "block", "Make sure pre-hidden divs show" ); @@ -39,24 +39,23 @@ test("show()", function() { ok( pass, "Show" ); var speeds = { - "null speed": null, - "undefined speed": undefined, - "empty string speed": "", - "false speed": false + "null speed": null, + "undefined speed": undefined, + "empty string speed": "", + "false speed": false }; jQuery.each(speeds, function(name, speed) { - pass = true; - div.hide().show(speed).each(function() { - if ( this.style.display == "none" ) pass = false; - }); - ok( pass, "Show with " + name); - }); - + pass = true; + div.hide().show(speed).each(function() { + if ( this.style.display == "none" ) pass = false; + }); + ok( pass, "Show with " + name); + }); jQuery.each(speeds, function(name, speed) { - pass = true; - div.hide().show(speed, function() { + pass = true; + div.hide().show(speed, function() { pass = false; }); ok( pass, "Show with " + name + " does not call animate callback" ); @@ -64,7 +63,7 @@ test("show()", function() { // #show-tests * is set display: none in CSS jQuery("#main").append('

'); - + var old = jQuery("#test-table").show().css("display") !== "table"; jQuery("#test-table").remove(); @@ -132,37 +131,35 @@ test("show(Number) - other displays", function() { -// Supports #7397 +// Supports #7397 test("Persist correct display value", function() { - expect(4); + expect(3); QUnit.reset(); stop(); // #show-tests * is set display: none in CSS - jQuery("#main").append('
'); - - var $span = jQuery("#show-tests span"), - orig = $span.css("display"), - num = 0; - - equal(orig, "none", "Expecting to start at display: none"); + jQuery("#main").append('
foo
'); + + var $span = jQuery("#show-tests span"), + displayNone = $span.css("display"), + display = '', num = 0; + + $span.show(); - $span.text('Saving...').fadeIn(100, function() { + display = $span.css("display"); - equal($span.css("display"), "block", "Expecting display: block"); + $span.hide(); - $span.text('Saved!').fadeOut(100, function () { - - equal($span.css("display"), "none", "Expecting display: none"); - - $span.text('Saving...').fadeIn(100, function() { - - equal($span.css("display"), "block", "Expecting display: block"); - - start(); - }); - }); - }); + $span.fadeIn(100, function() { + equals($span.css("display"), display, "Expecting display: " + display); + $span.fadeOut(100, function () { + equals($span.css("display"), displayNone, "Expecting display: " + displayNone); + $span.fadeIn(100, function() { + equals($span.css("display"), display, "Expecting display: " + display); + start(); + }); + }); + }); }); test("animate(Hash, Object, Function)", function() { @@ -190,7 +187,7 @@ test("animate block as inline width/height", function() { var span = jQuery("").css("display", "inline-block").appendTo("body"), expected = span.css("display"); - + span.remove(); if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { @@ -216,7 +213,7 @@ test("animate native inline width/height", function() { var span = jQuery("").css("display", "inline-block").appendTo("body"), expected = span.css("display"); - + span.remove(); if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { @@ -399,13 +396,16 @@ test("animate duration 0", function() { $elem.hide(0, function(){ ok(true, "Hide callback with no duration"); }); + + // manually clean up detached elements + $elem.remove(); }); test("animate hyphenated properties", function(){ expect(1); stop(); - jQuery("#nothiddendiv") + jQuery("#foo") .css("font-size", 10) .animate({"font-size": 20}, 200, function(){ equals( this.style.fontSize, "20px", "The font-size property was animated." ); @@ -429,7 +429,7 @@ test("stop()", function() { expect(3); stop(); - var $foo = jQuery("#nothiddendiv"); + var $foo = jQuery("#foo"); var w = 0; $foo.hide().width(200).width(); @@ -442,6 +442,8 @@ test("stop()", function() { nw = $foo.width(); notEqual( nw, w, "Stop didn't reset the animation " + nw + "px " + w + "px"); setTimeout(function(){ + $foo.removeData(); + $foo.removeData(undefined, true); equals( nw, $foo.width(), "The animation didn't continue" ); start(); }, 100); @@ -452,7 +454,7 @@ test("stop() - several in queue", function() { expect(3); stop(); - var $foo = jQuery("#nothiddendivchild"); + var $foo = jQuery("#foo"); var w = 0; $foo.hide().width(200).width(); @@ -477,7 +479,7 @@ test("stop(clearQueue)", function() { expect(4); stop(); - var $foo = jQuery("#nothiddendiv"); + var $foo = jQuery("#foo"); var w = 0; $foo.hide().width(200).width(); @@ -504,7 +506,7 @@ test("stop(clearQueue, gotoEnd)", function() { expect(1); stop(); - var $foo = jQuery("#nothiddendivchild"); + var $foo = jQuery("#foo"); var w = 0; $foo.hide().width(200).width(); @@ -532,7 +534,7 @@ test("stop(clearQueue, gotoEnd)", function() { test("toggle()", function() { expect(6); - var x = jQuery("#nothiddendiv"); + var x = jQuery("#foo"); ok( x.is(":visible"), "is visible" ); x.toggle(); ok( x.is(":hidden"), "is hidden" ); @@ -556,6 +558,23 @@ jQuery.checkOverflowDisplay = function(){ start(); } +test("support negative values < -10000 (bug #7193)", function () { + expect(1); + stop(); + + jQuery.extend(jQuery.fx.step, { + "marginBottom": function(fx) { + equals( fx.cur(), -11000, "Element has margin-bottom of -11000" ); + delete jQuery.fx.step.marginBottom; + } + }); + + jQuery("#main").css("marginBottom", "-11000px").animate({ marginBottom: "-11001px" }, { + duration: 1, + complete: start + }); +}); + test("JS Overflow and Display", function() { expect(2); stop(); @@ -716,6 +735,9 @@ jQuery.each( { } } + // manually remove generated element + jQuery(this).remove(); + start(); }); }); @@ -742,6 +764,10 @@ jQuery.checkState = function(){ var cur = self.style[ c ] || jQuery.css(self, c); equals( cur, v, "Make sure that " + c + " is reset (Old: " + v + " Cur: " + cur + ")"); }); + + // manually clean data on modified element + jQuery.removeData(this, 'olddisplay', true); + start(); } @@ -770,7 +796,7 @@ test("Chain toggle out", function() { jQuery('#toggleout div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast',jQuery.checkState); }); test("Chain toggle out with easing and callback", function() { - jQuery('#toggleout div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast','linear',jQuery.checkState); + jQuery('#toggleout div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast','linear',jQuery.checkState); }); test("Chain slideDown slideUp", function() { jQuery('#slidedown div').saveState(jQuery.support.shrinkWrapBlocks).slideDown('fast').slideUp('fast',jQuery.checkState); @@ -808,9 +834,6 @@ jQuery.makeTest = function( text ){ jQuery("

") .text( text ) .appendTo("#fx-tests") - .click(function(){ - jQuery(this).next().toggle(); - }) .after( elem ); return elem; @@ -820,16 +843,16 @@ jQuery.makeTest.id = 1; test("jQuery.show('fast') doesn't clear radio buttons (bug #1095)", function () { expect(4); - stop(); + stop(); var $checkedtest = jQuery("#checkedtest"); // IE6 was clearing "checked" in jQuery(elem).show("fast"); $checkedtest.hide().show("fast", function() { - ok( !! jQuery(":radio:first", $checkedtest).attr("checked"), "Check first radio still checked." ); - ok( ! jQuery(":radio:last", $checkedtest).attr("checked"), "Check last radio still NOT checked." ); - ok( !! jQuery(":checkbox:first", $checkedtest).attr("checked"), "Check first checkbox still checked." ); - ok( ! jQuery(":checkbox:last", $checkedtest).attr("checked"), "Check last checkbox still NOT checked." ); - start(); + ok( !! jQuery(":radio:first", $checkedtest).attr("checked"), "Check first radio still checked." ); + ok( ! jQuery(":radio:last", $checkedtest).attr("checked"), "Check last radio still NOT checked." ); + ok( !! jQuery(":checkbox:first", $checkedtest).attr("checked"), "Check first checkbox still checked." ); + ok( ! jQuery(":checkbox:last", $checkedtest).attr("checked"), "Check last checkbox still NOT checked." ); + start(); }); }); @@ -874,7 +897,7 @@ test("hide hidden elements (bug #7141)", function() { 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" ); + ok( !jQuery._data(div, "olddisplay"), "olddisplay is undefined after hiding an already-hidden element" ); div.show(); equals( div.css("display"), "block", "Show a double-hidden element" ); @@ -885,14 +908,24 @@ 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" ); + ok( !jQuery._data(div, "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(); }); }); }); + +test("animate unit-less properties (#4966)", 2, function() { + stop(); + var div = jQuery( "
" ).appendTo( "body" ); + equal( div.css( "z-index" ), "0", "z-index is 0" ); + div.animate({ zIndex: 2 }, function() { + equal( div.css( "z-index" ), "2", "z-index is 2" ); + start(); + }); +});