corrade-http-templates – Blame information for rev 57

Subversion Repositories:
Rev:
Rev Author Line No. Line
57 office 1 define( [
2 "qunit",
3 "jquery",
4 "./helper",
5 "ui/widgets/accordion"
6 ], function( QUnit, $, testHelper ) {
7  
8 var equalHeight = testHelper.equalHeight,
9 setupTeardown = testHelper.setupTeardown,
10 state = testHelper.state;
11  
12 QUnit.module( "accordion: methods", setupTeardown() );
13  
14 QUnit.test( "destroy", function( assert ) {
15 assert.expect( 1 );
16 assert.domEqual( "#list1", function() {
17 $( "#list1" ).accordion().accordion( "destroy" );
18 } );
19 } );
20  
21 QUnit.test( "enable/disable", function( assert ) {
22 assert.expect( 7 );
23 var element = $( "#list1" ).accordion();
24 state( assert, element, 1, 0, 0 );
25 element.accordion( "disable" );
26  
27 assert.hasClasses( element, "ui-state-disabled" );
28  
29 assert.equal( element.attr( "aria-disabled" ), "true", "element gets aria-disabled" );
30 assert.hasClasses( element, "ui-accordion-disabled" );
31  
32 // Event does nothing
33 element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" );
34 state( assert, element, 1, 0, 0 );
35  
36 // Option still works
37 element.accordion( "option", "active", 1 );
38 state( assert, element, 0, 1, 0 );
39 element.accordion( "enable" );
40 element.accordion( "option", "active", 2 );
41 state( assert, element, 0, 0, 1 );
42 } );
43  
44 QUnit.test( "refresh", function( assert ) {
45 assert.expect( 19 );
46 var element = $( "#navigation" )
47 .parent()
48 .height( 300 )
49 .end()
50 .accordion( {
51 heightStyle: "fill"
52 } );
53 equalHeight( assert, element, 255 );
54  
55 element.parent().height( 500 );
56 element.accordion( "refresh" );
57 equalHeight( assert, element, 455 );
58  
59 element = $( "#list1" );
60 element.accordion();
61 state( assert, element, 1, 0, 0 );
62  
63 // Disable panel via markup
64 element.find( "h3.bar" ).eq( 1 ).addClass( "ui-state-disabled" );
65 element.accordion( "refresh" );
66 state( assert, element, 1, 0, 0 );
67  
68 // Don't add multiple icons
69 element.accordion( "refresh" );
70 assert.equal( element.find( ".ui-accordion-header-icon" ).length, 3 );
71  
72 // Add a panel
73 element
74 .append( "<h3 class='bar' id='new_1'>new 1</h3>" )
75 .append( "<div class='foo' id='new_1_panel'>new 1</div>" );
76 element.accordion( "refresh" );
77 state( assert, element, 1, 0, 0, 0 );
78  
79 // Remove all tabs
80 element.find( "h3.bar, div.foo" ).remove();
81 element.accordion( "refresh" );
82 state( assert, element );
83 assert.equal( element.accordion( "option", "active" ), false, "no active accordion panel" );
84  
85 // Add panels
86 element
87 .append( "<h3 class='bar' id='new_2'>new 2</h3>" )
88 .append( "<div class='foo' id='new_2_panel'>new 2</div>" )
89 .append( "<h3 class='bar' id='new_3'>new 3</h3>" )
90 .append( "<div class='foo' id='new_3_panel'>new 3</div>" )
91 .append( "<h3 class='bar' id='new_4'>new 4</h3>" )
92 .append( "<div class='foo' id='new_4_panel'>new 4</div>" )
93 .append( "<h3 class='bar' id='new_5'>new 5</h3>" )
94 .append( "<div class='foo' id='new_5_panel'>new 5</div>" );
95 element.accordion( "refresh" );
96 state( assert, element, 1, 0, 0, 0 );
97  
98 // Activate third tab
99 element.accordion( "option", "active", 2 );
100 state( assert, element, 0, 0, 1, 0 );
101  
102 // Remove fourth panel, third panel should stay active
103 element.find( "h3.bar" ).eq( 3 ).remove();
104 element.find( "div.foo" ).eq( 3 ).remove();
105 element.accordion( "refresh" );
106 state( assert, element, 0, 0, 1 );
107  
108 // Remove third (active) panel, second panel should become active
109 element.find( "h3.bar" ).eq( 2 ).remove();
110 element.find( "div.foo" ).eq( 2 ).remove();
111 element.accordion( "refresh" );
112 state( assert, element, 0, 1 );
113  
114 // Remove first panel, previously active panel (now first) should stay active
115 element.find( "h3.bar" ).eq( 0 ).remove();
116 element.find( "div.foo" ).eq( 0 ).remove();
117 element.accordion( "refresh" );
118 state( assert, element, 1 );
119  
120 // Collapse all panels
121 element.accordion( "option", {
122 collapsible: true,
123 active: false
124 } );
125 state( assert, element, 0 );
126 element.accordion( "refresh" );
127 state( assert, element, 0 );
128 } );
129  
130 QUnit.test( "widget", function( assert ) {
131 assert.expect( 2 );
132 var element = $( "#list1" ).accordion(),
133 widgetElement = element.accordion( "widget" );
134 assert.equal( widgetElement.length, 1, "one element" );
135 assert.strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" );
136 } );
137  
138 } );