corrade-http-templates – Blame information for rev 57
?pathlinks?
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 | } ); |