/instantMessage/node_modules/jquery-ui/tests/unit/controlgroup/controlgroup.html |
@@ -0,0 +1,89 @@ |
<!doctype html> |
<html lang="en"> |
<head> |
<meta charset="utf-8"> |
<title>jQuery UI Controlgroup Test Suite</title> |
|
<script src="../../../external/requirejs/require.js"></script> |
<script src="../../lib/css.js" data-modules="core button checkboxradio selectmenu spinner controlgroup"></script> |
<script src="../../lib/bootstrap.js" data-modules="common core methods options"></script> |
</head> |
<body> |
|
<div id="qunit"></div> |
<div id="qunit-fixture"> |
<div class="controlgroup"> |
<button style="display:none">Button with icon only</button> |
<select> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
<label for="checkbox">Checkbox</label> |
<input type="checkbox" value="checkbox" id="checkbox" /> |
<select> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
<div class="test"></div> |
<button>Button with icon on the bottom</button> |
<label for="spinner" class="ui-controlgroup-label"># of cars</label> |
<input id="spinner" class="ui-spinner-input"> |
<select> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
</div> |
<select id="select-sanatize"> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
<div class="controlgroup-pre"> |
<select id="select-pre"> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
<button>Button with icon on the bottom</button> |
</div> |
<div class="controlgroup-refresh"> |
<select id="select-refresh"> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
<label class="ui-controlgroup-label">Label</label> |
<button>Button with icon on the bottom</button> |
</div> |
<div class="controlgroup-single-select"> |
<select id="select-single"> |
<option>Fast</option> |
<option>Medium</option> |
<option>Slow</option> |
</select> |
</div> |
<div class="controlgroup-single-button"> |
<button class="single-button">button</button> |
</div> |
<div class="controlgroup-class-key-init"> |
<select id="class-key-init-child"> |
<option>Option 1</option> |
<option>Option 2</option> |
</select> |
</div> |
<div class="controlgroup-class-key-dupe"> |
<select id="class-key-dupe-first"> |
<option>Option 1</option> |
<option>Option 2</option> |
</select> |
<select id="class-key-dupe-second"> |
<option>Option 1</option> |
<option>Option 2</option> |
</select> |
</div> |
</div> |
</body> |
</html> |
/instantMessage/node_modules/jquery-ui/tests/unit/controlgroup/core.js |
@@ -0,0 +1,200 @@ |
define( [ |
"qunit", |
"jquery", |
"ui/widgets/controlgroup", |
"ui/widgets/checkboxradio", |
"ui/widgets/selectmenu", |
"ui/widgets/button", |
"ui/widgets/spinner" |
], function( QUnit, $ ) { |
|
QUnit.module( "Controlgroup: Core" ); |
|
QUnit.test( "selectmenu: open/close corners", function( assert ) { |
assert.expect( 12 ); |
var element = $( ".controlgroup" ).controlgroup(), |
selects = element.find( "select" ), |
selectButton = selects.eq( 0 ).selectmenu( "widget" ); |
|
selects.eq( 0 ).selectmenu( "open" ); |
assert.hasClasses( selectButton, "ui-corner-tl", |
"Horizontal: First selectmenu gets ui-corner-tl when opened" ); |
|
selects.eq( 0 ).selectmenu( "close" ); |
assert.hasClasses( selectButton, "ui-corner-left", |
"Horizontal: First selectmenu gets ui-corner-left when closed" ); |
|
selectButton = selects.eq( 1 ).selectmenu( "widget" ); |
selects.eq( 1 ).selectmenu( "open" ); |
assert.lacksClassStart( selectButton, "ui-corner" ); |
|
selects.eq( 1 ).selectmenu( "close" ); |
assert.lacksClassStart( selectButton, "ui-corner" ); |
|
selectButton = selects.eq( 2 ).selectmenu( "widget" ); |
selects.eq( 2 ).selectmenu( "open" ); |
assert.hasClasses( selectButton, "ui-corner-tr", |
"Horizontal: Last selectmenu gets ui-corner-tr when opened" ); |
|
selects.eq( 2 ).selectmenu( "close" ); |
assert.hasClasses( selectButton, "ui-corner-right", |
"Horizontal: Last selectmenu gets ui-corner-right when closed" ); |
|
element.controlgroup( "option", "direction", "vertical" ); |
selectButton = selects.eq( 0 ).selectmenu( "widget" ); |
selects.eq( 0 ).selectmenu( "open" ); |
assert.hasClasses( selectButton, "ui-corner-top", |
"vertical: First selectmenu gets ui-corner-top when opened" ); |
|
selects.eq( 0 ).selectmenu( "close" ); |
assert.hasClasses( selectButton, "ui-corner-top", |
"vertical: First selectmenu gets ui-corner-top when closed" ); |
|
selectButton = selects.eq( 1 ).selectmenu( "widget" ); |
selects.eq( 1 ).selectmenu( "open" ); |
assert.lacksClassStart( selectButton, "ui-corner" ); |
|
selects.eq( 1 ).selectmenu( "close" ); |
assert.lacksClassStart( selectButton, "ui-corner" ); |
|
selectButton = selects.eq( 2 ).selectmenu( "widget" ); |
selects.eq( 2 ).selectmenu( "open" ); |
assert.lacksClassStart( selectButton, "ui-corner" ); |
|
selects.eq( 2 ).selectmenu( "close" ); |
assert.hasClasses( selectButton, "ui-corner-bottom", |
"vertical: Last selectmenu gets ui-corner-bottom when closed" ); |
} ); |
|
QUnit.test( "selectmenu: controlgroupLabel", function( assert ) { |
assert.expect( 2 ); |
var element = $( ".controlgroup" ).controlgroup(); |
var label = element.find( ".ui-controlgroup-label" ); |
|
assert.hasClasses( label, "ui-widget ui-widget-content ui-state-default ui-controlgroup-item" ); |
assert.hasClasses( label.find( "span" ), "ui-controlgroup-label-contents" ); |
} ); |
|
var assertSanatized = function( assert, initClasses, expectedClasses, message ) { |
var selectmenu = $( "#select-sanatize" ).selectmenu( { |
classes: { |
"ui-selectmenu-button-open": initClasses |
} |
} ).selectmenu( "instance" ); |
var classes = { |
"ui-selectmenu-button-open": "ui-corner-top" |
}; |
var result = $.ui.controlgroup.prototype._resolveClassesValues( classes, selectmenu ); |
assert.deepEqual( result, { |
"ui-selectmenu-button-open": expectedClasses + " ui-corner-top" |
}, message ); |
}; |
|
QUnit.test( "_resolveClassesValues", function( assert ) { |
assert.expect( 6 ); |
assertSanatized( assert, "bar ui-corner-bottom", "bar", "Single corner class removed end" ); |
assertSanatized( assert, "ui-corner-bottom bar", "bar", "Single corner class removed beginning" ); |
assertSanatized( assert, "bar ui-corner-bottom ui-corner-left", "bar", "Multiple corner classes removed end" ); |
assertSanatized( assert, "ui-corner-bottom ui-corner-left bar", "bar", "Multiple corner classes removed beginning" ); |
assertSanatized( assert, "bar ui-corner-bottom ui-corner-left foo", "bar foo", "Multiple corner class removed middle" ); |
assertSanatized( assert, "bar", "bar", "No corner classes" ); |
} ); |
|
QUnit.test( "Single controlgroup select - horizontal", function( assert ) { |
assert.expect( 4 ); |
var group = $( ".controlgroup-single-select" ).controlgroup(); |
var select = group.find( ".ui-selectmenu-button" ); |
|
assert.hasClasses( select, "ui-corner-all" ); |
assert.lacksClasses( select, |
"ui-corner-left ui-corner-right ui-corner-top ui-corner-left" + |
" ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); |
|
group.find( "select" ).selectmenu( "open" ); |
assert.hasClasses( select, "ui-corner-top" ); |
assert.lacksClasses( select, |
"ui-corner-left ui-corner-right ui-corner-all ui-corner-left" + |
" ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); |
} ); |
|
QUnit.test( "Single controlgroup select - vertical", function( assert ) { |
assert.expect( 4 ); |
var group = $( ".controlgroup-single-select" ).controlgroup( { |
direction: "verticle" |
} ); |
var select = group.find( ".ui-selectmenu-button" ); |
|
assert.hasClasses( select, "ui-corner-all" ); |
assert.lacksClasses( select, |
"ui-corner-left ui-corner-right ui-corner-top ui-corner-left" + |
" ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); |
|
group.find( "select" ).selectmenu( "open" ); |
assert.hasClasses( select, "ui-corner-top" ); |
assert.lacksClasses( select, |
"ui-corner-left ui-corner-right ui-corner-all ui-corner-left" + |
" ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); |
} ); |
|
QUnit.test( "Single controlgroup button - horizontal", function( assert ) { |
assert.expect( 2 ); |
var group = $( ".controlgroup-single-button" ).controlgroup(); |
var button = group.find( "button" ); |
|
assert.hasClasses( button, "ui-corner-all" ); |
assert.lacksClasses( button, |
"ui-corner-left ui-corner-right ui-corner-top ui-corner-left" + |
" ui-corner-tr ui-corner-tl ui-corner-bl ui corner-br" ); |
} ); |
|
QUnit.test( "Single controlgroup button - vertical", function( assert ) { |
assert.expect( 2 ); |
var group = $( ".controlgroup-single-button" ).controlgroup( { |
direction: "verticle" |
} ); |
var button = group.find( "button" ); |
|
assert.hasClasses( button, "ui-corner-all" ); |
assert.lacksClasses( button, |
"ui-corner-left ui-corner-right ui-corner-top ui-corner-left" + |
" 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" ); |
} ); |
|
} ); |
/instantMessage/node_modules/jquery-ui/tests/unit/controlgroup/methods.js |
@@ -0,0 +1,188 @@ |
define( [ |
"qunit", |
"jquery", |
"ui/widgets/controlgroup", |
"ui/widgets/checkboxradio", |
"ui/widgets/selectmenu", |
"ui/widgets/button", |
"ui/widgets/spinner" |
], function( QUnit, $ ) { |
|
QUnit.module( "Controlgroup: methods" ); |
|
QUnit.test( "destroy", function( assert ) { |
assert.expect( 1 ); |
assert.domEqual( ".controlgroup", function() { |
$( ".controlgroup" ).controlgroup().controlgroup( "destroy" ); |
$( "#spinner" ).addClass( "ui-spinner-input" ); |
} ); |
} ); |
|
QUnit.test( "disable", function( assert ) { |
assert.expect( 2 ); |
var element = $( ".controlgroup" ).controlgroup().controlgroup( "disable" ); |
assert.lacksClasses( element, "ui-state-disabled", |
"The widget does not get the disabled class, because we disable each child widget" ); |
assert.strictEqual( element.find( ".ui-state-disabled" ).length, 9, |
"Child widgets are disabled" ); |
} ); |
|
QUnit.test( "enable", function( assert ) { |
assert.expect( 2 ); |
var element = $( ".controlgroup" ).controlgroup().controlgroup( "enable" ); |
assert.lacksClasses( element, "ui-state-disabled", |
"ui-state-disabled is not present on widget after enabling" ); |
assert.strictEqual( element.find( "ui-state-disabled" ).length, 0, |
"Child widgets are disabled" ); |
} ); |
|
var tests = { |
"checkboxradio": "<input type='checkbox'>", |
"selectmenu": "<select><option>foo</option></select>", |
"button": "<button>button text</button>", |
"spinner": "<input class='ui-spinner-input'>" |
}, |
orientations = { |
"horizontal": [ |
"ui-corner-left", |
false, |
false, |
"ui-corner-right" |
], |
"vertical": [ |
"ui-corner-top", |
false, |
false, |
"ui-corner-bottom" |
] |
}; |
|
// Iterate through supported element markup |
$.each( tests, function( widget, html ) { |
|
// Check in both horizontal and vertical orientations |
$.each( orientations, function( name, classes ) { |
|
QUnit.test( "refresh: " + widget + ": " + name, function( assert ) { |
assert.expect( 41 ); |
|
var i, control, label, currentClasses, |
controls = [], |
element = $( "<div>" ).controlgroup( { |
direction: name |
} ).appendTo( "body" ); |
|
// Checks the elements with in the controlgroup against the expected class list |
function checkCornerClasses( classList ) { |
for ( var j = 0; j < 4; j++ ) { |
if ( classList[ j ] ) { |
assert.hasClasses( controls[ j ][ widget ]( "widget" ), classList[ j ] ); |
} else { |
assert.lacksClassStart( controls[ j ][ widget ]( "widget" ), "ui-corner" ); |
} |
} |
} |
|
function showElements( index, value ) { |
$( value )[ widget ]( "widget" ).show(); |
} |
|
// Hide each element and check the corner classes |
function iterateHidden( onlyVisible ) { |
for ( i = 0; i < 4; i++ ) { |
|
$( controls ).each( showElements ); |
|
controls[ i ][ widget ]( "widget" ).hide(); |
|
currentClasses = classes.slice( 0 ); |
if ( onlyVisible ) { |
if ( i === 0 ) { |
currentClasses[ i + 1 ] = classes[ i ]; |
currentClasses[ i ] = false; |
} else if ( i === 3 ) { |
currentClasses[ i - 1 ] = classes[ i ]; |
currentClasses[ i ] = false; |
} |
} |
element.controlgroup( "refresh" ); |
checkCornerClasses( currentClasses ); |
} |
} |
|
// Add a label for each element and then append the element to the control group |
for ( i = 0; i < 4; i++ ) { |
control = $( html ).attr( "id", "id" + i ); |
label = $( "<label>label text</label>" ).attr( "for", "id" + i ); |
|
controls.push( control ); |
element.append( control, label ); |
} |
|
// Refresh the controlgroup now that its populated |
element.controlgroup( "refresh" ); |
for ( i = 0; i < 4; i++ ) { |
assert.strictEqual( controls[ i ].is( ":ui-" + widget ), true, |
name + ": " + widget + " " + i + ": is a " + widget + " widget" ); |
} |
|
// Check that we have the right classes |
checkCornerClasses( classes ); |
|
// Hide each element and then check its classes |
iterateHidden( true ); |
|
// Set the exclude option to false so we no longer care about hidden |
element.controlgroup( "option", "onlyVisible", false ); |
|
// Iterate hiding the elements again and check their corner classes |
iterateHidden(); |
|
// Disable the first control |
if ( widget === "spinner" ) { |
controls[ 0 ].spinner( "disable" ); |
} |
controls[ 0 ].prop( "disabled", true ); |
|
element.controlgroup( "refresh" ); |
|
assert.hasClasses( controls[ 0 ][ widget ]( "widget" ), "ui-state-disabled" ); |
|
// Remove the controlgroup before we start the next set |
element.remove(); |
} ); |
} ); |
} ); |
|
QUnit.test( "Child Classes Option: init", function( assert ) { |
assert.expect( 1 ); |
var selectmenu = $( "#select-pre" ).selectmenu( { |
classes: { |
"ui-selectmenu-button-closed": "test-class" |
} |
} ); |
$( ".controlgroup-pre" ).controlgroup(); |
assert.hasClasses( selectmenu.selectmenu( "widget" ), "test-class" ); |
} ); |
|
QUnit.test( "Child Classes Option: refresh", function( assert ) { |
assert.expect( 1 ); |
var controlgroup = $( ".controlgroup-refresh" ).controlgroup(); |
var selectmenu = $( "#select-refresh" ).selectmenu( { |
classes: { |
"ui-selectmenu-button-closed": "test-class" |
} |
} ); |
controlgroup.controlgroup( "refresh" ); |
assert.hasClasses( selectmenu.selectmenu( "widget" ), "test-class" ); |
} ); |
|
QUnit.test( "Controlgroup Label: refresh", function( assert ) { |
assert.expect( 1 ); |
var controlgroup = $( ".controlgroup-refresh" ).controlgroup(); |
controlgroup.controlgroup( "refresh" ); |
assert.strictEqual( controlgroup.find( ".ui-controlgroup-label-contents" ).length, 1, |
"Controlgroup label does not re-wrap on refresh" ); |
} ); |
|
} ); |
/instantMessage/node_modules/jquery-ui/tests/unit/controlgroup/options.js |
@@ -0,0 +1,111 @@ |
define( [ |
"qunit", |
"jquery", |
"ui/widgets/controlgroup", |
"ui/widgets/checkboxradio", |
"ui/widgets/selectmenu", |
"ui/widgets/button", |
"ui/widgets/spinner" |
], function( QUnit, $ ) { |
|
QUnit.module( "Controlgroup: options" ); |
|
QUnit.test( "disabled", function( assert ) { |
assert.expect( 4 ); |
var element = $( ".controlgroup" ).controlgroup().controlgroup( "option", "disabled", true ); |
assert.lacksClasses( element, "ui-state-disabled" ); |
assert.equal( element.find( ".ui-state-disabled" ).length, 9, "Child widgets are disabled" ); |
|
element.controlgroup( "option", "disabled", false ); |
assert.lacksClasses( element, "ui-state-disabled" ); |
assert.strictEqual( element.find( ".ui-state-disabled" ).length, 0, "Child widgets are not disabled" ); |
|
} ); |
|
QUnit.test( "items - null", function( assert ) { |
assert.expect( 2 ); |
var element = $( ".controlgroup" ).controlgroup( { |
items: { |
"button": null, |
"selectmenu": null, |
"checkboxradio": null |
} |
} ); |
|
assert.strictEqual( element.children( ".ui-button" ).length, 0, |
"Child widgets are not called when selector is null" ); |
|
element.controlgroup( "option", "items", { |
"button": "button" |
} ); |
assert.strictEqual( element.children( ".ui-button" ).length, 2, |
"Correct child widgets are called when selector is updated" ); |
} ); |
|
QUnit.test( "items: custom selector", function( assert ) { |
assert.expect( 1 ); |
var element = $( ".controlgroup" ).controlgroup( { |
items: { |
"button": ".button" |
} |
} ); |
assert.strictEqual( element.children( ".ui-button" ).length, 4, |
"Correct child widgets are called when custom selector used" ); |
} ); |
|
$.widget( "ui.test", { |
_create: function() { |
this.element.addClass( "ui-test ui-button" ); |
}, |
|
// Controlgroup requires a refresh method to exist |
refresh: $.noop |
} ); |
|
QUnit.test( "items: custom widget", function( assert ) { |
assert.expect( 2 ); |
var element = $( ".controlgroup" ).controlgroup( { |
items: { |
"test": ".test" |
} |
} ); |
|
assert.strictEqual( element.children( ".ui-button" ).length, 7, |
"Correct child widgets are called when custom selector used" ); |
assert.strictEqual( element.children( ".ui-test" ).length, 1, |
"Custom widget called" ); |
} ); |
|
QUnit.test( "onlyVisible", function( assert ) { |
assert.expect( 4 ); |
var element = $( ".controlgroup" ).controlgroup( { |
onlyVisible: false |
} ), |
buttons = element.children( ".ui-button" ); |
|
assert.lacksClassStart( buttons.eq( 1 ), "ui-corner" ); |
assert.hasClasses( buttons.eq( 0 ), "ui-corner-left", |
"onlyVisible: false: First button hidden second button doesn't get a corner class" ); |
|
element.controlgroup( "option", "onlyVisible", true ); |
assert.lacksClassStart( buttons.eq( 0 ), "ui-corner" ); |
assert.hasClasses( buttons.eq( 1 ), "ui-corner-left", |
"onlyVisible: true: First button is hidden second button get corner class" ); |
} ); |
|
QUnit.test( "direction", function( assert ) { |
assert.expect( 6 ); |
var element = $( ".controlgroup" ).controlgroup(), |
buttons = element.children( ".ui-button" ).filter( ":visible" ); |
|
assert.hasClasses( element, "ui-controlgroup-horizontal" ); |
assert.hasClasses( buttons.first(), "ui-corner-left" ); |
assert.hasClasses( buttons.last(), "ui-corner-right" ); |
|
element.controlgroup( "option", "direction", "vertical" ); |
assert.hasClasses( element, "ui-controlgroup-vertical" ); |
assert.hasClasses( buttons.first(), "ui-corner-top" ); |
assert.hasClasses( buttons.last(), "ui-corner-bottom" ); |
} ); |
|
} ); |