aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/checkboxradio
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2015-10-27 14:35:27 -0400
committerScott González <scott.gonzalez@gmail.com>2015-10-29 11:19:13 -0400
commite77fbe5388abeeb1d0f8f377161a0fc039897594 (patch)
tree78df261bb106e143f954588319d1fa4d828dc6dc /tests/unit/checkboxradio
parent5157c2520b0121019a4003110c342ef1a5dcba74 (diff)
downloadjquery-ui-e77fbe5388abeeb1d0f8f377161a0fc039897594.tar.gz
jquery-ui-e77fbe5388abeeb1d0f8f377161a0fc039897594.zip
Checkboxradio: Properly find radio groups from the associated form
Fixes #9973 Closes gh-1631
Diffstat (limited to 'tests/unit/checkboxradio')
-rw-r--r--tests/unit/checkboxradio/checkboxradio.html7
-rw-r--r--tests/unit/checkboxradio/core.js19
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/unit/checkboxradio/checkboxradio.html b/tests/unit/checkboxradio/checkboxradio.html
index 92db788c5..9883e0834 100644
--- a/tests/unit/checkboxradio/checkboxradio.html
+++ b/tests/unit/checkboxradio/checkboxradio.html
@@ -64,6 +64,13 @@
<label>
<input type="checkbox" id="label-with-no-for"/>
</label>
+
+<form id="form3"></form>
+<input type="radio" name="crazy-form" id="crazy-form-1" form="form3" checked="checked">
+<label for="crazy-form-1">Choice 1</label>
+<input type="radio" name="crazy-form" id="crazy-form-2" form="form3">
+<label for="crazy-form-2">Choice 2</label>
+
</div>
</body>
</html>
diff --git a/tests/unit/checkboxradio/core.js b/tests/unit/checkboxradio/core.js
index 15cfc155b..2a9cf9822 100644
--- a/tests/unit/checkboxradio/core.js
+++ b/tests/unit/checkboxradio/core.js
@@ -49,6 +49,25 @@ asyncTest( "Ensure checked after single click on checkbox label button", functio
} );
} );
+test( "Handle form association via form attribute", function( assert ) {
+ expect( 4 );
+
+ var radio1 = $( "#crazy-form-1" ).checkboxradio();
+ var radio1Label = radio1.checkboxradio( "widget" );
+ var radio2 = $( "#crazy-form-2" ).checkboxradio();
+ var radio2Label = radio2.checkboxradio( "widget" );
+
+ radio2.change( function() {
+ ok( this.checked, "#2 checked" );
+ ok( !radio1[ 0 ].checked, "#1 not checked" );
+
+ assert.hasClasses( radio2Label, "ui-state-active" );
+ assert.lacksClasses( radio1Label, "ui-state-active" );
+ } );
+
+ radio2Label.simulate( "click" );
+} );
+
test( "Checkbox creation requires a label, and finds it in all cases", function( assert ) {
expect( 7 );
var groups = [