3 var equalHeight = TestHelpers.accordion.equalHeight,
4 setupTeardown = TestHelpers.accordion.setupTeardown,
5 state = TestHelpers.accordion.state;
7 module( "accordion: methods", setupTeardown() );
9 test( "destroy", function() {
11 domEqual( "#list1", function() {
12 $( "#list1" ).accordion().accordion( "destroy" );
16 test( "enable/disable", function() {
18 var element = $( "#list1" ).accordion();
19 state( element, 1, 0, 0 );
20 element.accordion( "disable" );
22 element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" );
23 state( element, 1, 0, 0 );
25 element.accordion( "option", "active", 1 );
26 state( element, 0, 1, 0 );
27 element.accordion( "enable" );
28 element.accordion( "option", "active", 2 );
29 state( element, 0, 0, 1 );
32 test( "refresh", function() {
34 var element = $( "#navigation" )
41 equalHeight( element, 255 );
43 element.parent().height( 500 );
44 element.accordion( "refresh" );
45 equalHeight( element, 455 );
47 element = $( "#list1" );
49 state( element, 1, 0, 0 );
51 // disable panel via markup
52 element.find( "h3.bar" ).eq( 1 ).addClass( "ui-state-disabled" );
53 element.accordion( "refresh" );
54 state( element, 1, 0, 0 );
56 // don't add multiple icons
57 element.accordion( "refresh" );
58 equal( element.find( ".ui-accordion-header-icon" ).length, 3 );
62 .append("<h3 class='bar' id='new_1'>new 1</h3>")
63 .append("<div class='foo' id='new_1_panel'>new 1</div>");
64 element.accordion( "refresh" );
65 state( element, 1, 0, 0, 0 );
68 element.find( "h3.bar, div.foo" ).remove();
69 element.accordion( "refresh" );
71 equal( element.accordion( "option", "active" ), false, "no active accordion panel" );
75 .append("<h3 class='bar' id='new_2'>new 2</h3>")
76 .append("<div class='foo' id='new_2_panel'>new 2</div>")
77 .append("<h3 class='bar' id='new_3'>new 3</h3>")
78 .append("<div class='foo' id='new_3_panel'>new 3</div>")
79 .append("<h3 class='bar' id='new_4'>new 4</h3>")
80 .append("<div class='foo' id='new_4_panel'>new 4</div>")
81 .append("<h3 class='bar' id='new_5'>new 5</h3>")
82 .append("<div class='foo' id='new_5_panel'>new 5</div>");
83 element.accordion( "refresh" );
84 state( element, 1, 0, 0, 0 );
87 element.accordion( "option", "active", 2 );
88 state( element, 0, 0, 1, 0 );
90 // remove fourth panel, third panel should stay active
91 element.find( "h3.bar" ).eq( 3 ).remove();
92 element.find( "div.foo" ).eq( 3 ).remove();
93 element.accordion( "refresh" );
94 state( element, 0, 0, 1 );
96 // remove third (active) panel, second panel should become active
97 element.find( "h3.bar" ).eq( 2 ).remove();
98 element.find( "div.foo" ).eq( 2 ).remove();
99 element.accordion( "refresh" );
100 state( element, 0, 1 );
102 // remove first panel, previously active panel (now first) should stay active
103 element.find( "h3.bar" ).eq( 0 ).remove();
104 element.find( "div.foo" ).eq( 0 ).remove();
105 element.accordion( "refresh" );
109 test( "widget", function() {
111 var element = $( "#list1" ).accordion(),
112 widgetElement = element.accordion( "widget" );
113 equal( widgetElement.length, 1, "one element" );
114 strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" );