From 3a9a3c7c5bfa8d5695c74385e34d3f4cbb06472b Mon Sep 17 00:00:00 2001 From: Gabriel Schulhof Date: Tue, 14 Jun 2016 17:47:09 +0300 Subject: Controlgroup: Correctly handle non-empty child class key Fixes #14984 Closes gh-1713 --- tests/unit/controlgroup/controlgroup.html | 16 +++++++++++++ tests/unit/controlgroup/core.js | 37 +++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) (limited to 'tests/unit') diff --git a/tests/unit/controlgroup/controlgroup.html b/tests/unit/controlgroup/controlgroup.html index d90bf607c..db1d47808 100644 --- a/tests/unit/controlgroup/controlgroup.html +++ b/tests/unit/controlgroup/controlgroup.html @@ -68,6 +68,22 @@
+
+ +
+
+ + +
diff --git a/tests/unit/controlgroup/core.js b/tests/unit/controlgroup/core.js index dff3b1b12..789eefc90 100644 --- a/tests/unit/controlgroup/core.js +++ b/tests/unit/controlgroup/core.js @@ -160,4 +160,41 @@ QUnit.test( "Single controlgroup button - vertical", function( assert ) { " ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); } ); +QUnit.module( "Controlgroup: Non-empty class key", { + setup: function() { + this.classKey = $.ui.selectmenu.prototype.options.classes[ "ui-selectmenu-button-closed" ]; + $.ui.selectmenu.prototype.options.classes[ "ui-selectmenu-button-closed" ] = + "something-custom"; + }, + teardown: function() { + $.ui.selectmenu.prototype.options.classes[ "ui-selectmenu-button-closed" ] = this.classKey; + } +} ); + +QUnit.test( "Controlgroup instantiates child widgets with correct options", function( assert ) { + assert.expect( 1 ); + + $( ".controlgroup-class-key-init" ).controlgroup(); + + assert.hasClasses( $( "#class-key-init-child" ).next(), "something-custom" ); +} ); + +QUnit.test( "Controlgroup correctly assigns child widget classes options key", function( assert ) { + assert.expect( 2 ); + + $( ".controlgroup-class-key-dupe" ).controlgroup(); + + assert.strictEqual( + ( $( "#class-key-dupe-first" ) + .selectmenu( "option", "classes.ui-selectmenu-button-closed" ) + .match( /something-custom/g ) || [] ).length, 1, + "Class 'something-custom' appears exactly once in the first widget's class key value" ); + + assert.strictEqual( + ( $( "#class-key-dupe-second" ) + .selectmenu( "option", "classes.ui-selectmenu-button-closed" ) + .match( /something-custom/g ) || [] ).length, 1, + "Class 'something-custom' appears exactly once in the second widget's class key value" ); +} ); + } ); -- cgit v1.2.3