2011-01-25 00:20:09 +00:00
|
|
|
(function( $ ) {
|
2009-02-02 14:36:08 +00:00
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
module( "accordion: options", accordionSetupTeardown() );
|
2009-02-02 14:36:08 +00:00
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ active: default }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 2 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion();
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 0 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ active: false }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 7 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2009-02-03 08:23:48 +00:00
|
|
|
active: false,
|
|
|
|
collapsible: true
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 0, 0 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.find( ".ui-accordion-header.ui-state-active" ).size(), 0, "no headers selected" );
|
|
|
|
equal( element.accordion( "option", "active" ), false );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "collapsible", false );
|
|
|
|
accordion_state( element, 1, 0, 0 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 0 );
|
2011-02-03 14:54:11 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "destroy" );
|
|
|
|
element.accordion({
|
2011-02-03 14:54:11 +00:00
|
|
|
active: false
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
|
|
|
strictEqual( element.accordion( "option", "active" ), 0 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ active: Number }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 8 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-01-25 00:20:09 +00:00
|
|
|
active: 2
|
2009-08-11 00:45:01 +00:00
|
|
|
});
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 2 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 0, 1 );
|
2009-08-11 00:45:01 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", 0 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 0 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
2009-08-11 00:45:01 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).click();
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 1, 0 );
|
2009-08-11 00:45:01 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", 10 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 1, 0 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
if ( $.uiBackCompat === false ) {
|
|
|
|
test( "{ active: -Number }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 8 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-02-03 14:59:05 +00:00
|
|
|
active: -1
|
2011-01-25 00:20:09 +00:00
|
|
|
});
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 2 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 0, 1 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", -2 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", -10 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", -3 );
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), 0 );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: add animation tests
|
2010-12-15 04:48:36 +00:00
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ collapsible: false }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 4 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-01-25 00:20:09 +00:00
|
|
|
active: 1
|
2010-12-15 04:48:36 +00:00
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", false );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).click();
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ collapsible: true }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 6 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2009-08-11 00:57:50 +00:00
|
|
|
active: 1,
|
|
|
|
collapsible: true
|
|
|
|
});
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", false );
|
|
|
|
equal( element.accordion( "option", "active" ), false );
|
|
|
|
accordion_state( element, 0, 0, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", 1 );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).click();
|
2011-06-13 14:54:47 +00:00
|
|
|
equal( element.accordion( "option", "active" ), false );
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 0, 0, 0 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-02-21 15:07:42 +00:00
|
|
|
test( "{ event: null }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 5 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-02-21 15:07:42 +00:00
|
|
|
event: null
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "active", 1 );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
|
|
|
// ensure default click handler isn't bound
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 2 ).click();
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test( "{ event: custom }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 11 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-02-21 15:07:42 +00:00
|
|
|
event: "custom1 custom2"
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( element, 1, 0, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
|
|
|
// ensure default click handler isn't bound
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 2 ).trigger( "click" );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 2 ).trigger( "custom2" );
|
|
|
|
equal( element.accordion( "option", "active" ), 2 );
|
|
|
|
accordion_state( element, 0, 0, 1 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "event", "custom3" );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
|
|
|
// ensure old event handlers are unbound
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" );
|
|
|
|
equal( element.accordion( "option", "active" ), 2 );
|
|
|
|
accordion_state( element, 0, 0, 1 );
|
2011-02-21 15:07:42 +00:00
|
|
|
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom3" );
|
|
|
|
equal( element.accordion( "option", "active" ), 1 );
|
|
|
|
accordion_state( element, 0, 1, 0 );
|
2011-02-21 15:07:42 +00:00
|
|
|
});
|
2011-01-25 00:20:09 +00:00
|
|
|
|
|
|
|
test( "{ header: default }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 2 );
|
2011-01-25 00:20:09 +00:00
|
|
|
// default: > li > :first-child,> :not(li):even
|
|
|
|
// > :not(li):even
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( $( "#list1" ).accordion(), 1, 0, 0);
|
2011-01-25 00:20:09 +00:00
|
|
|
// > li > :first-child
|
2011-04-15 15:29:26 +00:00
|
|
|
accordion_state( $( "#navigation" ).accordion(), 1, 0, 0);
|
2010-12-15 04:48:36 +00:00
|
|
|
});
|
|
|
|
|
2011-02-03 15:11:00 +00:00
|
|
|
test( "{ header: custom }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 6 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigationWrapper" ).accordion({
|
2011-02-03 15:11:00 +00:00
|
|
|
header: "h2"
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
element.find( "h2" ).each(function() {
|
2011-02-03 15:11:00 +00:00
|
|
|
ok( $( this ).hasClass( "ui-accordion-header" ) );
|
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
equal( element.find( ".ui-accordion-header" ).length, 3 );
|
|
|
|
accordion_state( element, 1, 0, 0 );
|
|
|
|
element.accordion( "option", "active", 2 );
|
|
|
|
accordion_state( element, 0, 0, 1 );
|
2011-02-03 15:11:00 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ heightStyle: 'auto' }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigation" ).accordion({ heightStyle: "auto" });
|
2011-06-13 18:51:13 +00:00
|
|
|
accordion_equalHeights( element, 95, 130 );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ heightStyle: 'content' }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigation" ).accordion({ heightStyle: "content" });
|
|
|
|
var sizes = element.find( ".ui-accordion-content" ).map(function() {
|
2011-01-25 00:20:09 +00:00
|
|
|
return $( this ).height();
|
|
|
|
}).get();
|
2011-02-26 10:48:56 +00:00
|
|
|
ok( sizes[ 0 ] >= 70 && sizes[ 0 ] <= 105, "was " + sizes[ 0 ] );
|
2011-01-25 00:20:09 +00:00
|
|
|
ok( sizes[ 1 ] >= 98 && sizes[ 1 ] <= 126, "was " + sizes[ 1 ] );
|
|
|
|
ok( sizes[ 2 ] >= 42 && sizes[ 2 ] <= 54, "was " + sizes[ 2 ] );
|
2009-05-11 11:43:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ heightStyle: 'fill' }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-01-25 00:20:09 +00:00
|
|
|
$( "#navigationWrapper" ).height( 500 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
|
2011-06-13 18:51:13 +00:00
|
|
|
accordion_equalHeights( element, 446, 458 );
|
2011-01-25 01:35:58 +00:00
|
|
|
});
|
2011-01-25 00:20:09 +00:00
|
|
|
|
2011-01-25 01:35:58 +00:00
|
|
|
test( "{ heightStyle: 'fill' } with sibling", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-01-25 01:35:58 +00:00
|
|
|
$( "#navigationWrapper" ).height( 500 );
|
|
|
|
$( "<p>Lorem Ipsum</p>" )
|
|
|
|
.css({
|
|
|
|
height: 50,
|
|
|
|
marginTop: 20,
|
|
|
|
marginBottom: 30
|
|
|
|
})
|
|
|
|
.prependTo( "#navigationWrapper" );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
|
2011-06-13 18:51:13 +00:00
|
|
|
accordion_equalHeights( element , 346, 358);
|
2011-01-25 01:35:58 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test( "{ heightStyle: 'fill' } with multiple siblings", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-01-25 01:35:58 +00:00
|
|
|
$( "#navigationWrapper" ).height( 500 );
|
|
|
|
$( "<p>Lorem Ipsum</p>" )
|
|
|
|
.css({
|
|
|
|
height: 50,
|
|
|
|
marginTop: 20,
|
|
|
|
marginBottom: 30
|
|
|
|
})
|
|
|
|
.prependTo( "#navigationWrapper" );
|
|
|
|
$( "<p>Lorem Ipsum</p>" )
|
|
|
|
.css({
|
|
|
|
height: 50,
|
|
|
|
marginTop: 20,
|
|
|
|
marginBottom: 30,
|
|
|
|
position: "absolute"
|
|
|
|
})
|
|
|
|
.prependTo( "#navigationWrapper" );
|
|
|
|
$( "<p>Lorem Ipsum</p>" )
|
|
|
|
.css({
|
|
|
|
height: 25,
|
|
|
|
marginTop: 10,
|
|
|
|
marginBottom: 15
|
|
|
|
})
|
|
|
|
.prependTo( "#navigationWrapper" );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#navigation" ).accordion({ heightStyle: "fill" });
|
2011-06-13 18:51:13 +00:00
|
|
|
accordion_equalHeights( element, 296, 308 );
|
2011-01-11 20:38:47 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ icons: false }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 8 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" );
|
2011-01-25 00:20:09 +00:00
|
|
|
function icons( on ) {
|
2011-06-13 14:54:47 +00:00
|
|
|
deepEqual( element.find( "span.ui-icon").length, on ? 3 : 0 );
|
|
|
|
deepEqual( element.hasClass( "ui-accordion-icons" ), on );
|
2011-01-25 00:20:09 +00:00
|
|
|
}
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion();
|
2011-01-25 00:20:09 +00:00
|
|
|
icons( true );
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "destroy" ).accordion({
|
2011-01-25 00:20:09 +00:00
|
|
|
icons: false
|
2009-07-03 21:05:22 +00:00
|
|
|
});
|
2011-01-25 00:20:09 +00:00
|
|
|
icons( false );
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "icons", { header: "foo", activeHeader: "bar" } );
|
2011-01-25 00:20:09 +00:00
|
|
|
icons( true );
|
2011-04-15 15:29:26 +00:00
|
|
|
element.accordion( "option", "icons", false );
|
2011-01-25 00:20:09 +00:00
|
|
|
icons( false );
|
2009-02-03 08:23:48 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
test( "{ icons: hash }", function() {
|
2011-06-13 18:51:13 +00:00
|
|
|
expect( 3 );
|
2011-04-15 15:29:26 +00:00
|
|
|
var element = $( "#list1" ).accordion({
|
2011-01-25 00:20:09 +00:00
|
|
|
icons: { activeHeader: "a1", header: "h1" }
|
2009-07-03 21:05:22 +00:00
|
|
|
});
|
2011-04-15 15:29:26 +00:00
|
|
|
ok( element.find( ".ui-accordion-header.ui-state-active span.ui-icon" ).hasClass( "a1" ) );
|
|
|
|
element.accordion( "option", "icons", { activeHeader: "a2", header: "h2" } );
|
|
|
|
ok( !element.find( ".ui-accordion-header.ui-state-active span.ui-icon" ).hasClass( "a1" ) );
|
|
|
|
ok( element.find( ".ui-accordion-header.ui-state-active span.ui-icon" ).hasClass( "a2" ) );
|
2009-02-02 14:36:08 +00:00
|
|
|
});
|
|
|
|
|
2011-01-25 00:20:09 +00:00
|
|
|
}( jQuery ) );
|