diff options
Diffstat (limited to 'tests/unit/controlgroup/options.js')
-rw-r--r-- | tests/unit/controlgroup/options.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/unit/controlgroup/options.js b/tests/unit/controlgroup/options.js new file mode 100644 index 000000000..82375381a --- /dev/null +++ b/tests/unit/controlgroup/options.js @@ -0,0 +1,108 @@ +define( [ + "jquery", + "ui/controlgroup", + "ui/checkboxradio", + "ui/selectmenu", + "ui/button" +], function( $ ) { + +module( "Controlgroup: options" ); + +test( "disabled", function( assert ) { + expect( 4 ); + var element = $( ".controlgroup" ).controlgroup().controlgroup( "option", "disabled", true ); + assert.lacksClasses( element, "ui-state-disabled" ); + equal( element.find( ".ui-state-disabled" ).length, 6, "Child widgets are disabled" ); + + element.controlgroup( "option", "disabled", false ); + assert.lacksClasses( element, "ui-state-disabled" ); + strictEqual( element.find( ".ui-state-disabled" ).length, 0, "Child widgets are not disabled" ); + +}); + +test( "items - null", function() { + expect( 2 ); + var element = $( ".controlgroup" ).controlgroup({ + items: { + "button": null, + "selectmenu": null, + "checkboxradio": null + } + }); + + strictEqual( element.children( ".ui-button" ).length, 0, + "Child widgets are not called when selector is null" ); + + element.controlgroup( "option", "items", { + "button": "button" + }); + strictEqual( element.children( ".ui-button" ).length, 2, + "Correct child widgets are called when selector is updated" ); +}); + +test( "items: custom selector", function() { + expect( 1 ); + var element = $( ".controlgroup" ).controlgroup({ + items: { + "button": ".button" + } + }); + strictEqual( element.children( ".ui-button" ).length, 4, + "Correct child widgets are called when custom selector used" ); +}); + +$.widget( "ui.test", { + _create: function (){ + this.element.addClass( "ui-test ui-button" ); + }, + + // Controlgroup requires a refresh method to exist + refresh: $.noop +}); +test( "items: custom widget", function() { + expect( 2 ); + var element = $( ".controlgroup" ).controlgroup({ + items: { + "test": ".test" + } + }); + + strictEqual( element.children( ".ui-button" ).length, 7, + "Correct child widgets are called when custom selector used" ); + strictEqual( element.children( ".ui-test" ).length, 1, + "Custom widget called" ); +}); + +test( "excludeInvisible", function( assert ) { + expect( 4 ); + var element = $( ".controlgroup" ).controlgroup({ + excludeInvisible: false + }), + buttons = element.children( ".ui-button" ); + + assert.lacksClassStart( buttons.eq( 1 ), "ui-corner" ); + assert.hasClasses( buttons.eq( 0 ), "ui-corner-left", + "ExcludeInvisible: false: First button hidden second button doesn't get a corner class" ); + + element.controlgroup( "option", "excludeInvisible", true ); + assert.lacksClassStart( buttons.eq( 0 ), "ui-corner" ); + assert.hasClasses( buttons.eq( 1 ), "ui-corner-left", + "ExcludeInvisible: true: First button is hidden second button get corner class" ); +}); + +test( "direction", function( assert ) { + expect( 6 ); + var element = $( ".controlgroup" ).controlgroup(), + buttons = element.children( ".ui-button" ).filter( ":visible" ); + + assert.hasClasses( element, "ui-controlgroup-horizontal" ); + assert.hasClasses( buttons.first(), "ui-corner-left" ); + assert.hasClasses( buttons.last(), "ui-corner-right" ); + + element.controlgroup( "option", "direction", "vertical" ); + assert.hasClasses( element, "ui-controlgroup-vertical" ); + assert.hasClasses( buttons.first(), "ui-corner-top" ); + assert.hasClasses( buttons.last(), "ui-corner-bottom" ); +}); + +} ); |