+});
+*/
+
+test("animate with no properties", function() {
+ expect(1);
+
+ var divs = jQuery("div"), count = 0;
+
+ divs.animate({}, function(){
+ count++;
+ });
+
+ equals( divs.length, count, "Make sure that callback is called for each element in the set." );
+});
+
+test("animate duration 0", function() {
+ expect(7);
+
+ stop();
+
+ var $elems = jQuery([{ a:0 },{ a:0 }]),
+ counter = 0,
+ count = function(){
+ counter++;
+ };
+
+ equals( jQuery.timers.length, 0, "Make sure no animation was running from another test" );
+
+ $elems.eq(0).animate( {a:1}, 0, count );
+
+ // Failed until [6115]
+ equals( jQuery.timers.length, 0, "Make sure synchronic animations are not left on jQuery.timers" );
+
+ equals( counter, 1, "One synchronic animations" );
+
+ $elems.animate( { a:2 }, 0, count );
+
+ equals( counter, 3, "Multiple synchronic animations" );
+
+ $elems.eq(0).animate( {a:3}, 0, count );
+ $elems.eq(1).animate( {a:3}, 20, function(){
+ count();
+ // Failed until [6115]
+ equals( counter, 5, "One synchronic and one asynchronic" );
+ start();
+ });
+
+ var $elem = jQuery("<div />");
+ $elem.show(0, function(){
+ ok(true, "Show's callback with no duration");
+ });
+ $elem.hide(0, function(){
+ ok(true, "Show's callback with no duration");
+ });
+});
+
+test("animate hyphenated properties", function(){
+ expect(1);
+ stop();
+
+ jQuery("#nothiddendiv")
+ .css("font-size", 10)
+ .animate({"font-size": 20}, 200, function(){
+ equals( this.style.fontSize, "20px", "The font-size property was animated." );
+ start();
+ });
+});
+
+test("animate non-element", function(){
+ expect(1);
+ stop();
+
+ var obj = { test: 0 };
+
+ jQuery(obj).animate({test: 200}, 200, function(){
+ equals( obj.test, 200, "The custom property should be modified." );