1 | /*
|
---|
2 | * accordion_methods.js
|
---|
3 | */
|
---|
4 | (function($) {
|
---|
5 |
|
---|
6 | function state(accordion) {
|
---|
7 | var expected = $.makeArray(arguments).slice(1);
|
---|
8 | var actual = [];
|
---|
9 | $.each(expected, function(i, n) {
|
---|
10 | actual.push( accordion.find(".ui-accordion-content").eq(i).is(":visible") ? 1 : 0 );
|
---|
11 | });
|
---|
12 | same(actual, expected)
|
---|
13 | }
|
---|
14 |
|
---|
15 | module("accordion: methods");
|
---|
16 |
|
---|
17 | test("init", function() {
|
---|
18 | $("<div></div>").appendTo('body').accordion().remove();
|
---|
19 | ok(true, '.accordion() called on element');
|
---|
20 |
|
---|
21 | $([]).accordion().remove();
|
---|
22 | ok(true, '.accordion() called on empty collection');
|
---|
23 |
|
---|
24 | $('<div></div>').accordion().remove();
|
---|
25 | ok(true, '.accordion() called on disconnected DOMElement - never connected');
|
---|
26 |
|
---|
27 | $('<div></div>').appendTo('body').remove().accordion().remove();
|
---|
28 | ok(true, '.accordion() called on disconnected DOMElement - removed');
|
---|
29 |
|
---|
30 | $('<div></div>').accordion().accordion("foo").remove();
|
---|
31 | ok(true, 'arbitrary method called after init');
|
---|
32 |
|
---|
33 | var el = $('<div></div>').accordion();
|
---|
34 | var foo = el.accordion("option", "foo");
|
---|
35 | el.remove();
|
---|
36 | ok(true, 'arbitrary option getter after init');
|
---|
37 |
|
---|
38 | $('<div></div>').accordion().accordion("option", "foo", "bar").remove();
|
---|
39 | ok(true, 'arbitrary option setter after init');
|
---|
40 | });
|
---|
41 |
|
---|
42 | test("destroy", function() {
|
---|
43 | $("<div></div>").appendTo('body').accordion().accordion("destroy").remove();
|
---|
44 | ok(true, '.accordion("destroy") called on element');
|
---|
45 |
|
---|
46 | $([]).accordion().accordion("destroy").remove();
|
---|
47 | ok(true, '.accordion("destroy") called on empty collection');
|
---|
48 |
|
---|
49 | $('<div></div>').accordion().accordion("destroy").remove();
|
---|
50 | ok(true, '.accordion("destroy") called on disconnected DOMElement');
|
---|
51 |
|
---|
52 | $('<div></div>').accordion().accordion("destroy").accordion("foo").remove();
|
---|
53 | ok(true, 'arbitrary method called after destroy');
|
---|
54 |
|
---|
55 | var expected = $('<div></div>').accordion(),
|
---|
56 | actual = expected.accordion('destroy');
|
---|
57 | equals(actual, expected, 'destroy is chainable');
|
---|
58 | });
|
---|
59 |
|
---|
60 | test("enable", function() {
|
---|
61 | var expected = $('#list1').accordion(),
|
---|
62 | actual = expected.accordion('enable');
|
---|
63 | equals(actual, expected, 'enable is chainable');
|
---|
64 | state(expected, 1, 0, 0)
|
---|
65 | });
|
---|
66 |
|
---|
67 | test("disable", function() {
|
---|
68 | var expected = $('#list1').accordion(),
|
---|
69 | actual = expected.accordion('disable');
|
---|
70 | equals(actual, expected, 'disable is chainable');
|
---|
71 |
|
---|
72 | state(expected, 1, 0, 0)
|
---|
73 | expected.accordion("activate", 1);
|
---|
74 | state(expected, 1, 0, 0)
|
---|
75 | expected.accordion("enable");
|
---|
76 | expected.accordion("activate", 1);
|
---|
77 | state(expected, 0, 1, 0)
|
---|
78 | });
|
---|
79 |
|
---|
80 | test("activate", function() {
|
---|
81 | var expected = $('#list1').accordion(),
|
---|
82 | actual = expected.accordion('activate', 2);
|
---|
83 | equals(actual, expected, 'activate is chainable');
|
---|
84 | });
|
---|
85 |
|
---|
86 | test("activate, numeric", function() {
|
---|
87 | var ac = $('#list1').accordion({ active: 1 });
|
---|
88 | state(ac, 0, 1, 0);
|
---|
89 | ac.accordion("activate", 2);
|
---|
90 | state(ac, 0, 0, 1);
|
---|
91 | ac.accordion("activate", 0);
|
---|
92 | state(ac, 1, 0, 0);
|
---|
93 | ac.accordion("activate", 1);
|
---|
94 | state(ac, 0, 1, 0);
|
---|
95 | ac.accordion("activate", 2);
|
---|
96 | state(ac, 0, 0, 1);
|
---|
97 | });
|
---|
98 |
|
---|
99 | test("activate, boolean and numeric, collapsible:true", function() {
|
---|
100 | var ac = $('#list1').accordion({collapsible: true}).accordion("activate", 2);
|
---|
101 | state(ac, 0, 0, 1);
|
---|
102 | ok("x", "----");
|
---|
103 | ac.accordion("activate", 0);
|
---|
104 | state(ac, 1, 0, 0);
|
---|
105 | ok("x", "----");
|
---|
106 | ac.accordion("activate", -1);
|
---|
107 | state(ac, 0, 0, 0);
|
---|
108 | });
|
---|
109 |
|
---|
110 | test("activate, boolean, collapsible: false", function() {
|
---|
111 | var ac = $('#list1').accordion().accordion("activate", 2);
|
---|
112 | state(ac, 0, 0, 1);
|
---|
113 | ac.accordion("activate", false);
|
---|
114 | state(ac, 0, 0, 1);
|
---|
115 | });
|
---|
116 |
|
---|
117 | test("activate, string expression", function() {
|
---|
118 | var ac = $('#list1').accordion({ active: "a:last" });
|
---|
119 | state(ac, 0, 0, 1);
|
---|
120 | ac.accordion("activate", ":first");
|
---|
121 | state(ac, 1, 0, 0);
|
---|
122 | ac.accordion("activate", ":eq(1)");
|
---|
123 | state(ac, 0, 1, 0);
|
---|
124 | ac.accordion("activate", ":last");
|
---|
125 | state(ac, 0, 0, 1);
|
---|
126 | });
|
---|
127 | //[ 0, 1, 1 ] result: [ 0, 0, 1 ]
|
---|
128 | //[ 0, 1, 1] result: [ 0, 0, 1]
|
---|
129 | test("activate, jQuery or DOM element", function() {
|
---|
130 | var ac = $('#list1').accordion({ active: $("#list1 a:last") });
|
---|
131 | state(ac, 0, 0, 1);
|
---|
132 | ac.accordion("activate", $("#list1 a:first"));
|
---|
133 | state(ac, 1, 0, 0);
|
---|
134 | ac.accordion("activate", $("#list1 a")[1]);
|
---|
135 | state(ac, 0, 1, 0);
|
---|
136 | });
|
---|
137 |
|
---|
138 | test("resize", function() {
|
---|
139 | var expected = $('#list1').accordion();
|
---|
140 |
|
---|
141 | var sizes = [];
|
---|
142 | expected.find(".ui-accordion-content").each(function() {
|
---|
143 | sizes.push($(this).outerHeight());
|
---|
144 | });
|
---|
145 |
|
---|
146 | var actual = expected.accordion('resize');
|
---|
147 | equals(actual, expected, 'resize is chainable');
|
---|
148 |
|
---|
149 | var sizes2 = [];
|
---|
150 | expected.find(".ui-accordion-content").each(function() {
|
---|
151 | sizes2.push($(this).outerHeight());
|
---|
152 | });
|
---|
153 | same(sizes, sizes2);
|
---|
154 |
|
---|
155 | expected.find(".ui-accordion-content:first").height(500)
|
---|
156 | var sizes3 = [];
|
---|
157 | });
|
---|
158 |
|
---|
159 | })(jQuery);
|
---|