mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
e7a10c70ae
This helps fix issues that make tooltip tests sometimes fail when run against jQuery 3.2 or newer due to timing differences. Details: * Add the `moduleAfterEach` function ensuring no timers are running. * Attach this function via `common.testWidget`. * Attach this function to most test suites. * Add a tooltip test helper cleaning up leftover timers. * Rename legacy `setup`/`teardown` hooks to `beforeEach`/`afterEach`. Closes gh-1920
217 lines
7.0 KiB
JavaScript
217 lines
7.0 KiB
JavaScript
define( [
|
|
"qunit",
|
|
"jquery",
|
|
"lib/helper",
|
|
"ui/widgets/button"
|
|
], function( QUnit, $, helper ) {
|
|
|
|
QUnit.module( "Button (deprecated): core", { afterEach: helper.moduleAfterEach } );
|
|
|
|
QUnit.test( "Calling button on a checkbox input calls checkboxradio widget", function( assert ) {
|
|
var checkbox = $( "#checkbox01" );
|
|
|
|
assert.expect( 2 );
|
|
checkbox.button();
|
|
|
|
assert.ok( !!checkbox.checkboxradio( "instance" ),
|
|
"Calling button on a checkbox creates checkboxradio instance" );
|
|
assert.ok( !checkbox.checkboxradio( "option", "icon" ),
|
|
"Calling button on a checkbox sets the checkboxradio icon option to false" );
|
|
} );
|
|
|
|
QUnit.test( "Calling buttonset calls controlgroup", function( assert ) {
|
|
var controlgroup = $( ".buttonset" );
|
|
|
|
assert.expect( 1 );
|
|
controlgroup.buttonset();
|
|
|
|
assert.ok( controlgroup.is( ":ui-controlgroup" ), "Calling buttonset creates controlgroup instance" );
|
|
} );
|
|
|
|
QUnit.module( "Button (deprecated): methods", { afterEach: helper.moduleAfterEach } );
|
|
|
|
QUnit.test( "destroy", function( assert ) {
|
|
assert.expect( 1 );
|
|
assert.domEqual( "#checkbox02", function() {
|
|
$( "#checkbox02" ).button().button( "destroy" );
|
|
} );
|
|
} );
|
|
|
|
QUnit.test( "refresh: Ensure disabled state is preserved correctly.", function( assert ) {
|
|
assert.expect( 5 );
|
|
var element = null;
|
|
|
|
element = $( "#checkbox02" );
|
|
element.button( { disabled: true } ).button( "refresh" );
|
|
assert.ok( element.button( "option", "disabled" ), "Checkboxes should remain disabled after refresh" );
|
|
assert.ok( element.prop( "disabled" ), "Input remains disabled after refresh" );
|
|
|
|
element = $( "#radio02" );
|
|
element.button( { disabled: true } ).button( "refresh" );
|
|
assert.ok( element.button( "option", "disabled" ), "Radio buttons should remain disabled after refresh" );
|
|
|
|
element = $( "#checkbox02" );
|
|
element.button( { disabled: true } ).prop( "disabled", false ).button( "refresh" );
|
|
assert.ok( !element.button( "option", "disabled" ), "Changing a checkbox's disabled property should update the state after refresh." );
|
|
|
|
element = $( "#radio02" );
|
|
element.button( { disabled: true } ).prop( "disabled", false ).button( "refresh" );
|
|
assert.ok( !element.button( "option", "disabled" ), "Changing a radio button's disabled property should update the state after refresh." );
|
|
|
|
} );
|
|
|
|
QUnit.module( "button (deprecated): options", { afterEach: helper.moduleAfterEach } );
|
|
|
|
QUnit.test( "Setting items option on buttonset sets the button properties on the items option", function( assert ) {
|
|
assert.expect( 2 );
|
|
|
|
var controlgroup = $( ".buttonset" );
|
|
|
|
controlgroup.buttonset( { items: "bar" } );
|
|
assert.equal( controlgroup.controlgroup( "option", "items.button" ), "bar",
|
|
"items.button set when setting items option on init on buttonset" );
|
|
|
|
controlgroup.buttonset( "option", "items", "foo" );
|
|
assert.equal( controlgroup.controlgroup( "option", "items.button" ), "foo",
|
|
"items.button set when setting items option on buttonset" );
|
|
} );
|
|
|
|
QUnit.test( "disabled, null", function( assert ) {
|
|
assert.expect( 2 );
|
|
|
|
$( "#radio02" ).prop( "disabled", true ).button( { disabled: null } );
|
|
assert.deepEqual( $( "#radio02" ).button( "option", "disabled" ), true,
|
|
"disabled option set to true" );
|
|
assert.deepEqual( true, $( "#radio02" ).prop( "disabled" ), "element is not disabled" );
|
|
} );
|
|
|
|
QUnit.test( "text / showLabel options proxied", function( assert ) {
|
|
assert.expect( 8 );
|
|
var button = $( "#button" );
|
|
button.button( {
|
|
text: false,
|
|
icon: "ui-icon-gear"
|
|
} );
|
|
assert.equal( button.button( "option", "showLabel" ), false,
|
|
"Setting the text option to false sets the showLabel option to false on init" );
|
|
button.button( "option", "showLabel", true );
|
|
assert.equal( button.button( "option", "text" ), true,
|
|
"Setting showLabel true with option method sets text option to true" );
|
|
button.button( "option", "text", false );
|
|
assert.equal( button.button( "option", "showLabel" ), false,
|
|
"Setting text false with option method sets showLabel option to false" );
|
|
button.button( "option", "text", true );
|
|
assert.equal( button.button( "option", "showLabel" ), true,
|
|
"Setting text true with option method sets showLabel option to true" );
|
|
button.button( "option", "showLabel", false );
|
|
assert.equal( button.button( "option", "text" ), false,
|
|
"Setting showLabel false with option method sets text option to false" );
|
|
button.button( "destroy" );
|
|
button.button( {
|
|
text: true,
|
|
icon: "ui-icon-gear"
|
|
} );
|
|
assert.equal( button.button( "option", "showLabel" ), true,
|
|
"Setting the text option to true sets the showLabel option to true on init" );
|
|
button.button( "destroy" );
|
|
button.button( {
|
|
showLabel: true,
|
|
icon: "ui-icon-gear"
|
|
} );
|
|
assert.equal( button.button( "option", "text" ), true,
|
|
"Setting the showLabel option to true sets the text option to true on init" );
|
|
button.button( "destroy" );
|
|
button.button( {
|
|
showLabel: false,
|
|
icon: "ui-icon-gear"
|
|
} );
|
|
assert.equal( button.button( "option", "text" ), false,
|
|
"Setting the showLabel option to false sets the text option to false on init" );
|
|
} );
|
|
|
|
QUnit.test( "icon / icons options properly proxied", function( assert ) {
|
|
assert.expect( 10 );
|
|
|
|
var button = $( "#button" );
|
|
|
|
button.button( {
|
|
icon: "foo"
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icons.primary" ), "foo",
|
|
"Icon option properly proxied on init" );
|
|
|
|
button.button( {
|
|
icon: "bar"
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icons.primary" ), "bar",
|
|
"Icon option properly proxied with option method" );
|
|
|
|
button.button( {
|
|
icons: {
|
|
primary: "foo"
|
|
}
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icon" ), "foo",
|
|
"Icons primary option properly proxied with option method" );
|
|
assert.equal( button.button( "option", "iconPosition" ), "beginning",
|
|
"Icons primary option sets iconPosition option to beginning" );
|
|
|
|
button.button( {
|
|
icons: {
|
|
secondary: "bar"
|
|
}
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icon" ), "bar",
|
|
"Icons secondary option properly proxied with option method" );
|
|
assert.equal( button.button( "option", "iconPosition" ), "end",
|
|
"Icons secondary option sets iconPosition option to end" );
|
|
|
|
button.button( "destroy" );
|
|
|
|
button.button( {
|
|
icons: {
|
|
primary: "foo"
|
|
}
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icon" ), "foo",
|
|
"Icons primary option properly proxied on init" );
|
|
assert.equal( button.button( "option", "iconPosition" ), "beginning",
|
|
"Icons primary option sets iconPosition option to beginning on init" );
|
|
|
|
button.button( {
|
|
icons: {
|
|
secondary: "bar"
|
|
}
|
|
} );
|
|
|
|
assert.equal( button.button( "option", "icon" ), "bar",
|
|
"Icons secondary option properly proxied on init" );
|
|
assert.equal( button.button( "option", "iconPosition" ), "end",
|
|
"Icons secondary option sets iconPosition option to end on init" );
|
|
} );
|
|
|
|
QUnit.test( "Calling button on a collection of mixed types works correctly", function( assert ) {
|
|
assert.expect( 5 );
|
|
|
|
var group = $( ".mixed" ).children();
|
|
|
|
group.button();
|
|
|
|
$.each( {
|
|
anchor: "button",
|
|
button: "button",
|
|
check: "checkboxradio",
|
|
input: "button",
|
|
radio: "checkboxradio"
|
|
}, function( type, widget ) {
|
|
assert.ok( $( "#mixed-" + type )[ widget ]( "instance" ), type + " is a " + widget );
|
|
} );
|
|
} );
|
|
|
|
} );
|