imported the whole jquery-ui package, refreshed with 1.10.2
[unfold.git] / third-party / jquery-ui-1.10.2 / tests / unit / widget / widget_animation.js
diff --git a/third-party/jquery-ui-1.10.2/tests/unit/widget/widget_animation.js b/third-party/jquery-ui-1.10.2/tests/unit/widget/widget_animation.js
new file mode 100644 (file)
index 0000000..8ef55aa
--- /dev/null
@@ -0,0 +1,257 @@
+
+module( "widget animation", (function() {
+       var show = $.fn.show,
+               fadeIn = $.fn.fadeIn,
+               slideDown = $.fn.slideDown;
+       return {
+               setup: function() {
+                       $.widget( "ui.testWidget", {
+                               _create: function() {
+                                       this.element.hide();
+                               },
+                               show: function( fn ) {
+                                       this._show( this.element, this.options.show, fn );
+                               }
+                       });
+                       $.effects = { effect: { testEffect: $.noop } };
+               },
+               teardown: function() {
+                       delete $.ui.testWidget;
+                       delete $.effects.effect.testEffect;
+                       $.fn.show = show;
+                       $.fn.fadeIn = fadeIn;
+                       $.fn.slideDown = slideDown;
+               }
+       };
+}()));
+
+asyncTest( "show: null", function() {
+       expect( 4 );
+
+       var element = $( "#widget" ).testWidget(),
+               hasRun = false;
+       $.fn.show = function() {
+               ok( true, "show called" );
+               equal( arguments.length, 0, "no args passed to show" );
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: true", function() {
+       expect( 4 );
+
+       var element = $( "#widget" ).testWidget({
+                       show: true
+               }),
+               hasRun = false;
+       $.fn.fadeIn = function( duration, easing, complete ) {
+               return this.queue(function( next ) {
+                       strictEqual( duration, undefined, "duration" );
+                       strictEqual( easing, undefined, "easing" );
+                       complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: number", function() {
+       expect( 4 );
+
+       var element = $( "#widget" ).testWidget({
+               show: 123
+       }),
+       hasRun = false;
+       $.fn.fadeIn = function( duration, easing, complete ) {
+               return this.queue(function( next ) {
+                       strictEqual( duration, 123, "duration" );
+                       strictEqual( easing, undefined, "easing" );
+                       complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: core animation", function() {
+       expect( 4 );
+
+       var element = $( "#widget" ).testWidget({
+               show: "slideDown"
+       }),
+       hasRun = false;
+       $.fn.slideDown = function( duration, easing, complete ) {
+               return this.queue(function( next ) {
+                       strictEqual( duration, undefined, "duration" );
+                       strictEqual( easing, undefined, "easing" );
+                       complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: effect", function() {
+       expect( 5 );
+
+       var element = $( "#widget" ).testWidget({
+               show: "testEffect"
+       }),
+       hasRun = false;
+       $.fn.show = function( options ) {
+               return this.queue(function( next ) {
+                       equal( options.effect, "testEffect", "effect" );
+                       ok( !("duration" in options), "duration" );
+                       ok( !("easing" in options), "easing" );
+                       options.complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: object(core animation)", function() {
+       expect( 4 );
+
+       var element = $( "#widget" ).testWidget({
+               show: {
+                       effect: "slideDown",
+                       duration: 123,
+                       easing: "testEasing"
+               }
+       }),
+       hasRun = false;
+       $.fn.slideDown = function( duration, easing, complete ) {
+               return this.queue(function( next ) {
+                       equal( duration, 123, "duration" );
+                       equal( easing, "testEasing", "easing" );
+                       complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});
+
+asyncTest( "show: object(effect)", function() {
+       expect( 3 );
+
+       var element = $( "#widget" ).testWidget({
+               show: {
+                       effect: "testEffect",
+                       duration: 123,
+                       easing: "testEasing"
+               }
+       }),
+       hasRun = false;
+       $.fn.show = function( options ) {
+               return this.queue(function( next ) {
+                       deepEqual( options, {
+                               effect: "testEffect",
+                               duration: 123,
+                               easing: "testEasing",
+                               complete: options.complete
+                       });
+                       options.complete();
+                       next();
+               });
+       };
+
+       element
+               .delay( 50 )
+               .queue(function( next ) {
+                       ok( !hasRun, "queue before show" );
+                       next();
+               })
+               .testWidget( "show", function() {
+                       hasRun = true;
+               })
+               .queue(function( next ) {
+                       ok( hasRun, "queue after show" );
+                       start();
+                       next();
+               });
+});