diff options
author | Felix Nagel <info@felixnagel.com> | 2015-12-02 18:20:54 +0100 |
---|---|---|
committer | Felix Nagel <info@felixnagel.com> | 2015-12-02 18:30:05 +0100 |
commit | c10ef0a170218ae64abaee54518b09068eadb51e (patch) | |
tree | 8ff6c9cb8e0f4a8846a3b272a26e65fef946ae3c /tests/unit/checkboxradio/methods.js | |
parent | 7ed45541096b58c56c4fc40b1a0ca9c10b2fe229 (diff) | |
parent | 6c738d961d9918f75a3043a49ab21ac79bca45ae (diff) | |
download | jquery-ui-c10ef0a170218ae64abaee54518b09068eadb51e.tar.gz jquery-ui-c10ef0a170218ae64abaee54518b09068eadb51e.zip |
Merge branch 'master' into datepicker
Diffstat (limited to 'tests/unit/checkboxradio/methods.js')
-rw-r--r-- | tests/unit/checkboxradio/methods.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/unit/checkboxradio/methods.js b/tests/unit/checkboxradio/methods.js new file mode 100644 index 000000000..ec3a3f667 --- /dev/null +++ b/tests/unit/checkboxradio/methods.js @@ -0,0 +1,96 @@ +define( [ + "jquery", + "ui/widgets/checkboxradio" +], function( $ ) { + +module( "Checkboxradio: methods" ); + +$.each( [ "checkbox", "radio" ], function( index, value ) { + test( value + ": refresh", function( assert ) { + var widget, icon, + checkbox = value === "checkbox", + input = $( "#" + value + "-method-refresh" ); + + expect( checkbox ? 11 : 8 ); + + input.checkboxradio(); + + widget = input.checkboxradio( "widget" ); + icon = widget.find( ".ui-icon" ); + strictEqual( icon.length, 1, + "There is initally one icon" ); + + icon.remove(); + input.checkboxradio( "refresh" ); + icon = widget.find( ".ui-icon" ); + strictEqual( icon.length, 1, + "Icon is recreated on refresh if absent" ); + assert.hasClasses( icon, "ui-icon-blank" ); + if ( checkbox ) { + assert.lacksClasses( icon, "ui-icon-check" ); + } + assert.lacksClasses( widget, "ui-checkboxradio-checked" ); + + input.prop( "checked", true ); + input.checkboxradio( "refresh" ); + if ( checkbox ) { + assert.hasClasses( icon, "ui-icon-check" ); + } + assert[ !checkbox ? "hasClasses" : "lacksClasses" ]( icon, "ui-icon-blank" ); + assert.hasClasses( widget, "ui-checkboxradio-checked" ); + + input.prop( "checked", false ); + input.checkboxradio( "refresh" ); + assert.hasClasses( icon, "ui-icon-blank" ); + if ( checkbox ) { + assert.lacksClasses( icon, "ui-icon-check" ); + } + assert.lacksClasses( widget, "ui-checkboxradio-checked" ); + } ); + + test( value + ": destroy", function( assert ) { + expect( 1 ); + assert.domEqual( "#" + value + "-method-destroy", function() { + $( "#" + value + "-method-destroy" ).checkboxradio().checkboxradio( "destroy" ); + } ); + } ); + + test( value + ": disable / enable", function( assert ) { + expect( 4 ); + var input = $( "#" + value + "-method-disable" ), + widget = input.checkboxradio().checkboxradio( "widget" ); + + input.checkboxradio( "disable" ); + assert.hasClasses( widget, "ui-state-disabled" ); + strictEqual( input.is( ":disabled" ), true, + value + " is disabled when disable is called" ); + + input.checkboxradio( "enable" ); + assert.lacksClasses( widget, "ui-state-disabled" ); + strictEqual( input.is( ":disabled" ), false, + value + " has disabled prop removed when enable is called" ); + } ); + + test( value + ": widget returns the label", function() { + expect( 1 ); + + var input = $( "#" + value + "-method-refresh" ), + label = $( "#" + value + "-method-refresh-label" ); + + input.checkboxradio(); + strictEqual( input.checkboxradio( "widget" )[ 0 ], label[ 0 ], + "widget method returns label" ); + } ); +} ); + +test( "Input wrapped in a label preserved on refresh", function() { + var input = $( "#label-with-no-for" ).checkboxradio(), + element = input.checkboxradio( "widget" ); + + expect( 1 ); + + input.checkboxradio( "refresh" ); + strictEqual( input.parent()[ 0 ], element[ 0 ], "Input preserved" ); +} ); + +} ); |