aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Padilla <alexonezero@outlook.com>2017-01-11 15:19:30 -0700
committerRichard Gibson <richard.gibson@gmail.com>2017-01-19 17:27:35 -0500
commit5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af (patch)
treed97447956da898ddb328b55a1794e626caf66a5d
parentb442abacbb8464f0165059e8da734e3143d0721f (diff)
downloadjquery-5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af.tar.gz
jquery-5f35b5b406ae7d504de86a3f0a5647b2fdf4f2af.zip
Event: Add radio click triggering tests
Ref b442abacbb8464f0165059e8da734e3143d0721f Ref gh-3423
-rw-r--r--test/unit/event.js37
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 ) {