jquery-ui/tests/unit/widget/animation.js

275 lines
5.7 KiB
JavaScript
Raw Normal View History

define( [
2016-04-06 14:06:47 +00:00
"qunit",
"jquery",
"lib/helper",
"ui/widget"
], function( QUnit, $, helper ) {
"use strict";
2016-04-06 14:06:47 +00:00
QUnit.module( "widget animation", ( function() {
var show = $.fn.show,
fadeIn = $.fn.fadeIn,
slideDown = $.fn.slideDown;
return {
2016-04-06 14:06:47 +00:00
beforeEach: function() {
$.widget( "ui.testWidget", {
_create: function() {
this.element.hide();
},
show: function( fn ) {
this._show( this.element, this.options.show, fn );
}
2015-08-24 13:32:13 +00:00
} );
$.effects = { effect: { testEffect: $.noop } };
},
2016-04-06 14:06:47 +00:00
afterEach: function() {
delete $.ui.testWidget;
delete $.effects.effect.testEffect;
$.fn.show = show;
$.fn.fadeIn = fadeIn;
$.fn.slideDown = slideDown;
return helper.moduleAfterEach.apply( this, arguments );
}
};
} )() );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: null", function( assert ) {
var ready = assert.async();
assert.expect( 4 );
var element = $( "#widget" ).testWidget(),
hasRun = false;
$.fn.show = function() {
2016-04-06 14:06:47 +00:00
assert.ok( true, "show called" );
assert.equal( arguments.length, 0, "no args passed to show" );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: true", function( assert ) {
var ready = assert.async();
assert.expect( 4 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: true
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.fadeIn = function( duration, easing, complete ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.strictEqual( duration, undefined, "duration" );
assert.strictEqual( easing, undefined, "easing" );
complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: number", function( assert ) {
var ready = assert.async();
assert.expect( 4 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: 123
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.fadeIn = function( duration, easing, complete ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.strictEqual( duration, 123, "duration" );
assert.strictEqual( easing, undefined, "easing" );
complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: core animation", function( assert ) {
var ready = assert.async();
assert.expect( 4 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: "slideDown"
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.slideDown = function( duration, easing, complete ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.strictEqual( duration, undefined, "duration" );
assert.strictEqual( easing, undefined, "easing" );
complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: effect", function( assert ) {
var ready = assert.async();
assert.expect( 5 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: "testEffect"
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.show = function( options ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.equal( options.effect, "testEffect", "effect" );
assert.ok( !( "duration" in options ), "duration" );
assert.ok( !( "easing" in options ), "easing" );
options.complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: object(core animation)", function( assert ) {
var ready = assert.async();
assert.expect( 4 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: {
effect: "slideDown",
duration: 123,
easing: "testEasing"
}
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.slideDown = function( duration, easing, complete ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.equal( duration, 123, "duration" );
assert.equal( easing, "testEasing", "easing" );
complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
2016-04-06 14:06:47 +00:00
QUnit.test( "show: object(effect)", function( assert ) {
var ready = assert.async();
assert.expect( 3 );
2015-08-24 13:32:13 +00:00
var element = $( "#widget" ).testWidget( {
show: {
effect: "testEffect",
duration: 123,
easing: "testEasing"
}
2015-08-24 13:32:13 +00:00
} ),
hasRun = false;
$.fn.show = function( options ) {
2015-08-24 13:32:13 +00:00
return this.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.deepEqual( options, {
effect: "testEffect",
duration: 123,
easing: "testEasing",
complete: options.complete
2015-08-24 13:32:13 +00:00
} );
options.complete();
next();
2015-08-24 13:32:13 +00:00
} );
};
element
.delay( 50 )
2015-08-24 13:32:13 +00:00
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( !hasRun, "queue before show" );
next();
2015-08-24 13:32:13 +00:00
} )
.testWidget( "show", function() {
hasRun = true;
2015-08-24 13:32:13 +00:00
} )
.queue( function( next ) {
2016-04-06 14:06:47 +00:00
assert.ok( hasRun, "queue after show" );
ready();
next();
2015-08-24 13:32:13 +00:00
} );
} );
} );