diff options
author | Alex Padilla <alexonezero@outlook.com> | 2017-01-11 15:19:30 -0700 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2017-01-19 17:27:35 -0500 |
commit | 5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af (patch) | |
tree | d97447956da898ddb328b55a1794e626caf66a5d | |
parent | b442abacbb8464f0165059e8da734e3143d0721f (diff) | |
download | jquery-5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af.tar.gz jquery-5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af.zip |
Event: Add radio click triggering tests
Ref b442abacbb8464f0165059e8da734e3143d0721f
Ref gh-3423
-rw-r--r-- | test/unit/event.js | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/test/unit/event.js b/test/unit/event.js index 02aad5e36..328157903 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -2364,33 +2364,48 @@ QUnit.test( "clone() delegated events (#11076)", function( assert ) { clone.remove(); } ); -QUnit.test( "checkbox state (#3827)", function( assert ) { - assert.expect( 9 ); +QUnit.test( "checkbox state (#3827, gh-3423)", function( assert ) { + assert.expect( 17 ); - var markup = jQuery( "<div><input type=checkbox><div>" ).appendTo( "#qunit-fixture" ), - cb = markup.find( "input" )[ 0 ]; + var cbParent = jQuery( "<div><input type=checkbox><div>" ).appendTo( "#qunit-fixture" ), + cb = cbParent.find( "input" )[ 0 ], + radioParent = jQuery( + "<div><input type=radio name=gh3423><input type=radio name=gh3423><div>" + ).appendTo( "#qunit-fixture" ), + radio = radioParent.find( "input" )[ 0 ], + radio2 = radioParent.find( "input" )[ 1 ]; jQuery( cb ).on( "click", function() { assert.equal( this.checked, false, "just-clicked checkbox is not checked" ); } ); - markup.on( "click", function() { + cbParent.on( "click", function() { assert.equal( cb.checked, false, "checkbox is not checked in bubbled event" ); } ); + radioParent.on( "click", function() { + assert.equal( radio.checked, false, "radio is not checked in bubbled event" ); + } ); // Native click - cb.checked = true; + cb.checked = radio.checked = true; assert.equal( cb.checked, true, "native - checkbox is initially checked" ); + assert.equal( radio.checked, true, "native - radio is initially checked" ); cb.click(); + radio2.click(); assert.equal( cb.checked, false, "native - checkbox is no longer checked" ); + assert.equal( radio.checked, false, "native - radio is no longer checked" ); // jQuery click - cb.checked = true; - assert.equal( cb.checked, true, "jQuery - checkbox is initially checked" ); - jQuery( cb ).trigger( "click" ); - assert.equal( cb.checked, false, "jQuery - checkbox is no longer checked" ); + cb.checked = radio.checked = true; + assert.equal( cb.checked, true, ".trigger - checkbox is initially checked" ); + assert.equal( radio.checked, true, ".trigger - radio is initially checked" ); + jQuery( [ cb, radio2 ] ).trigger( "click" ); + assert.equal( cb.checked, false, ".trigger - checkbox is no longer checked" ); + assert.equal( radio.checked, false, ".trigger - radio is no longer checked" ); // Handlers only; checkbox state remains false - jQuery( cb ).triggerHandler( "click" ); + jQuery( [ cb, radio2 ] ).triggerHandler( "click" ); + assert.equal( cb.checked, false, ".triggerHandler - checkbox is still unchecked" ); + assert.equal( radio.checked, false, ".triggerHandler - radio is still unchecked" ); } ); QUnit.test( "hover event no longer special since 1.9", function( assert ) { |