mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
70dae67b73
Fixes #15393 Closes gh-1958
275 lines
5.7 KiB
JavaScript
275 lines
5.7 KiB
JavaScript
define( [
|
|
"qunit",
|
|
"jquery",
|
|
"lib/helper",
|
|
"ui/widget"
|
|
], function( QUnit, $, helper ) {
|
|
"use strict";
|
|
|
|
QUnit.module( "widget animation", ( function() {
|
|
var show = $.fn.show,
|
|
fadeIn = $.fn.fadeIn,
|
|
slideDown = $.fn.slideDown;
|
|
return {
|
|
beforeEach: function() {
|
|
$.widget( "ui.testWidget", {
|
|
_create: function() {
|
|
this.element.hide();
|
|
},
|
|
show: function( fn ) {
|
|
this._show( this.element, this.options.show, fn );
|
|
}
|
|
} );
|
|
$.effects = { effect: { testEffect: $.noop } };
|
|
},
|
|
afterEach: function() {
|
|
delete $.ui.testWidget;
|
|
delete $.effects.effect.testEffect;
|
|
$.fn.show = show;
|
|
$.fn.fadeIn = fadeIn;
|
|
$.fn.slideDown = slideDown;
|
|
return helper.moduleAfterEach.apply( this, arguments );
|
|
}
|
|
};
|
|
} )() );
|
|
|
|
QUnit.test( "show: null", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 4 );
|
|
|
|
var element = $( "#widget" ).testWidget(),
|
|
hasRun = false;
|
|
$.fn.show = function() {
|
|
assert.ok( true, "show called" );
|
|
assert.equal( arguments.length, 0, "no args passed to show" );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: true", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 4 );
|
|
|
|
var element = $( "#widget" ).testWidget( {
|
|
show: true
|
|
} ),
|
|
hasRun = false;
|
|
$.fn.fadeIn = function( duration, easing, complete ) {
|
|
return this.queue( function( next ) {
|
|
assert.strictEqual( duration, undefined, "duration" );
|
|
assert.strictEqual( easing, undefined, "easing" );
|
|
complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: number", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 4 );
|
|
|
|
var element = $( "#widget" ).testWidget( {
|
|
show: 123
|
|
} ),
|
|
hasRun = false;
|
|
$.fn.fadeIn = function( duration, easing, complete ) {
|
|
return this.queue( function( next ) {
|
|
assert.strictEqual( duration, 123, "duration" );
|
|
assert.strictEqual( easing, undefined, "easing" );
|
|
complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: core animation", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 4 );
|
|
|
|
var element = $( "#widget" ).testWidget( {
|
|
show: "slideDown"
|
|
} ),
|
|
hasRun = false;
|
|
$.fn.slideDown = function( duration, easing, complete ) {
|
|
return this.queue( function( next ) {
|
|
assert.strictEqual( duration, undefined, "duration" );
|
|
assert.strictEqual( easing, undefined, "easing" );
|
|
complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: effect", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 5 );
|
|
|
|
var element = $( "#widget" ).testWidget( {
|
|
show: "testEffect"
|
|
} ),
|
|
hasRun = false;
|
|
$.fn.show = function( options ) {
|
|
return this.queue( function( next ) {
|
|
assert.equal( options.effect, "testEffect", "effect" );
|
|
assert.ok( !( "duration" in options ), "duration" );
|
|
assert.ok( !( "easing" in options ), "easing" );
|
|
options.complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: object(core animation)", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.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 ) {
|
|
assert.equal( duration, 123, "duration" );
|
|
assert.equal( easing, "testEasing", "easing" );
|
|
complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "show: object(effect)", function( assert ) {
|
|
var ready = assert.async();
|
|
assert.expect( 3 );
|
|
|
|
var element = $( "#widget" ).testWidget( {
|
|
show: {
|
|
effect: "testEffect",
|
|
duration: 123,
|
|
easing: "testEasing"
|
|
}
|
|
} ),
|
|
hasRun = false;
|
|
$.fn.show = function( options ) {
|
|
return this.queue( function( next ) {
|
|
assert.deepEqual( options, {
|
|
effect: "testEffect",
|
|
duration: 123,
|
|
easing: "testEasing",
|
|
complete: options.complete
|
|
} );
|
|
options.complete();
|
|
next();
|
|
} );
|
|
};
|
|
|
|
element
|
|
.delay( 50 )
|
|
.queue( function( next ) {
|
|
assert.ok( !hasRun, "queue before show" );
|
|
next();
|
|
} )
|
|
.testWidget( "show", function() {
|
|
hasRun = true;
|
|
} )
|
|
.queue( function( next ) {
|
|
assert.ok( hasRun, "queue after show" );
|
|
ready();
|
|
next();
|
|
} );
|
|
} );
|
|
|
|
} );
|