and a note on manual changes in dataTables.bootstrap.css
[myslice.git] / third-party / jquery-ui-1.10.2 / tests / unit / accordion / accordion_methods.js
1 (function( $ ) {
2
3 var equalHeight = TestHelpers.accordion.equalHeight,
4         setupTeardown = TestHelpers.accordion.setupTeardown,
5         state = TestHelpers.accordion.state;
6
7 module( "accordion: methods", setupTeardown() );
8
9 test( "destroy", function() {
10         expect( 1 );
11         domEqual( "#list1", function() {
12                 $( "#list1" ).accordion().accordion( "destroy" );
13         });
14 });
15
16 test( "enable/disable", function() {
17         expect( 4 );
18         var element = $( "#list1" ).accordion();
19         state( element, 1, 0, 0 );
20         element.accordion( "disable" );
21         // event does nothing
22         element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" );
23         state( element, 1, 0, 0 );
24         // option still works
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 );
30 });
31
32 test( "refresh", function() {
33         expect( 17 );
34         var element = $( "#navigation" )
35                 .parent()
36                         .height( 300 )
37                 .end()
38                 .accordion({
39                         heightStyle: "fill"
40                 });
41         equalHeight( element, 255 );
42
43         element.parent().height( 500 );
44         element.accordion( "refresh" );
45         equalHeight( element, 455 );
46
47         element = $( "#list1" );
48         element.accordion();
49         state( element, 1, 0, 0 );
50
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 );
55
56         // don't add multiple icons
57         element.accordion( "refresh" );
58         equal( element.find( ".ui-accordion-header-icon" ).length, 3 );
59
60         // add a panel
61         element
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 );
66
67         // remove all tabs
68         element.find( "h3.bar, div.foo" ).remove();
69         element.accordion( "refresh" );
70         state( element );
71         equal( element.accordion( "option", "active" ), false, "no active accordion panel" );
72
73         // add panels
74         element
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 );
85
86         // activate third tab
87         element.accordion( "option", "active", 2 );
88         state( element, 0, 0, 1, 0 );
89
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 );
95
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 );
101
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" );
106         state( element, 1 );
107 });
108
109 test( "widget", function() {
110         expect( 2 );
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" );
115 });
116
117 }( jQuery ) );