/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/slider/slider_options.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/slider/slider_options.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 2 months ago) by torben
File MIME type: application/javascript
File size: 8662 byte(s)
initial import
1 /*
2 * slider_options.js
3 */
4 (function( $ ) {
5
6 var element, options;
7
8 function handle() {
9 return element.find( ".ui-slider-handle" );
10 }
11
12 module( "slider: options" );
13
14 test( "disabled", function(){
15 expect( 8 );
16 var count = 0;
17
18 element = $( "#slider1" ).slider();
19 element.bind( "slidestart", function() {
20 count++;
21 });
22
23 // enabled
24 ok( !element.hasClass( "ui-slider-disabled" ), "no disabled class" );
25 equal( element.slider( "option", "disabled" ), false , "is not disabled" );
26
27 handle().simulate( "drag", { dx: 10 } );
28 equal( count, 1, "slider moved" );
29
30 handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
31 equal( count, 2, "slider moved" );
32
33 // disabled
34 element.slider( "option", "disabled", true );
35 ok( element.hasClass( "ui-slider-disabled" ), "has disabled class" );
36 equal( element.slider( "option", "disabled" ), true, "is disabled" );
37
38 handle().simulate( "drag", { dx: 10 } );
39 equal( count, 2, "slider did not move" );
40
41 handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } );
42 equal( count, 2, "slider did not move" );
43 });
44
45 test( "max", function() {
46 expect( 2 );
47 element = $( "<div></div>" );
48
49 options = {
50 max: 37,
51 min: 6,
52 orientation: "horizontal",
53 step: 1,
54 value: 50
55 };
56
57 element.slider( options );
58 ok(element.slider( "option", "value" ) === options.value, "value option is not contained by max" );
59 ok(element.slider( "value" ) === options.max, "value method is contained by max" );
60 element.slider( "destroy" );
61
62 });
63
64 test( "min", function() {
65 expect( 2 );
66 element = $( "<div></div>" );
67
68 options = {
69 max: 37,
70 min: 6,
71 orientation: "vertical",
72 step: 1,
73 value: 2
74 };
75
76 element.slider( options );
77 ok( element.slider( "option", "value" ) === options.value, "value option is not contained by min" );
78 ok( element.slider( "value" ) === options.min, "value method is contained by min" );
79 element.slider( "destroy" );
80
81 });
82
83 test( "orientation", function() {
84 expect( 6 );
85 element = $( "#slider1" );
86
87 options = {
88 max: 2,
89 min: -2,
90 orientation: "vertical",
91 value: 1
92 };
93
94 var percentVal = ( options.value - options.min ) / ( options.max - options.min ) * 100;
95
96 element.slider( options ).slider( "option", "orientation", "horizontal" );
97 ok( element.is( ".ui-slider-horizontal" ), "horizontal slider has class .ui-slider-horizontal" );
98 ok( !element.is( ".ui-slider-vertical" ), "horizontal slider does not have class .ui-slider-vertical" );
99 equal( handle()[0].style.left, percentVal + "%", "horizontal slider handle is positioned with left: %" );
100
101 element.slider( "destroy" ) ;
102
103 options = {
104 max: 2,
105 min: -2,
106 orientation: "horizontal",
107 value: -1
108 };
109
110 percentVal = ( options.value - options.min ) / ( options.max - options.min ) * 100;
111
112 element.slider( options ).slider( "option", "orientation", "vertical" );
113 ok( element.is( ".ui-slider-vertical" ), "vertical slider has class .ui-slider-vertical" );
114 ok( !element.is( ".ui-slider-horizontal" ), "vertical slider does not have class .ui-slider-horizontal" );
115 equal( handle()[0].style.bottom, percentVal + "%", "vertical slider handle is positioned with bottom: %" );
116
117 element.slider( "destroy" );
118
119 });
120
121 //spec: http://wiki.jqueryui.com/Slider#specs
122 // value option/method: the value option is not restricted by min/max/step.
123 // What is returned by the value method is restricted by min (>=), max (<=), and step (even multiple)
124 test( "step", function() {
125 expect( 9 );
126 element = $( "<div></div>" ).slider({
127 min: 0,
128 value: 0,
129 step: 10,
130 max: 100
131 });
132 equal( element.slider( "value" ), 0 );
133
134 element.slider( "value", 1 );
135 equal( element.slider( "value" ), 0 );
136
137 element.slider( "value", 9 );
138 equal( element.slider( "value" ), 10 );
139
140 element.slider( "value", 11 );
141 equal( element.slider( "value" ), 10 );
142
143 element.slider( "value", 19 );
144 equal( element.slider( "value" ), 20 );
145
146 element = $( "<div></div>" ).slider({
147 min: 0,
148 value: 0,
149 step: 20,
150 max: 100
151 });
152 element.slider( "value", 0 );
153
154 element.slider( "option", "value", 1 );
155 equal( element.slider( "value" ), 0 );
156
157 element.slider( "option", "value", 9 );
158 equal( element.slider( "value" ), 0 );
159
160 element.slider( "option", "value", 11 );
161 equal( element.slider( "value" ), 20 );
162
163 element.slider( "option", "value", 19 );
164 equal( element.slider( "value" ), 20 );
165
166 element.slider( "destroy" );
167 });
168
169 //test( "value", function() {
170 // ok(false, "missing test - untested code is broken code." );
171 //});
172
173 test( "values", function() {
174 expect( 2 );
175
176 // testing multiple ranges on the same page, the object reference to the values
177 // property is preserved via multiple range elements, so updating options.values
178 // of 1 slider updates options.values of all the others
179 var ranges = $([
180 document.createElement( "div" ),
181 document.createElement( "div" )
182 ]).slider({
183 range: true,
184 values: [ 25, 75 ]
185 });
186
187 notStrictEqual(
188 ranges.eq( 0 ).data( "ui-slider" ).options.values,
189 ranges.eq( 1 ).data( "ui-slider" ).options.values,
190 "multiple range sliders should not have a reference to the same options.values array"
191 );
192
193 ranges.eq( 0 ).slider( "values", 0, 10 );
194
195 notEqual(
196 ranges.eq( 0 ).slider( "values", 0 ),
197 ranges.eq( 1 ).slider( "values", 0 ),
198 "the values for multiple sliders should be different"
199 );
200 });
201
202 test( "range", function() {
203 expect( 27 );
204 var range;
205
206 // min
207 element = $( "<div></div>" ).slider({
208 range: "min",
209 min: 1,
210 max: 10,
211 step: 1
212 });
213
214 equal( element.find( ".ui-slider-handle" ).length, 1, "range min, one handle" );
215 equal( element.find( ".ui-slider-range-min" ).length, 1, "range min" );
216 element.slider( "destroy" );
217
218 // max
219 element = $( "<div></div>" ).slider({
220 range: "max",
221 min: 1,
222 max: 10,
223 step: 1
224 });
225
226 equal( element.find( ".ui-slider-handle" ).length, 1, "range max, one handle" );
227 equal( element.find( ".ui-slider-range-max" ).length, 1, "range max" );
228 element.slider( "destroy" );
229
230 // true
231 element = $( "<div></div>" ).slider({
232 range: true,
233 min: 1,
234 max: 10,
235 step: 1
236 });
237
238 range = element.find( ".ui-slider-range" );
239 equal( element.find( ".ui-slider-handle" ).length, 2, "range true, two handles" );
240 ok( !range.is( ".ui-slider-range-min" ), "range true" );
241 ok( !range.is( ".ui-slider-range-max" ), "range true" );
242 element.slider( "destroy" );
243
244 // Change range from min to max
245 element = $( "<div></div>" ).slider({
246 range: "min",
247 min: 1,
248 max: 10,
249 step: 1
250 }).slider( "option", "range", "max" );
251
252 equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from min to max, one handle" );
253 equal( element.find( ".ui-slider-range-min" ).length, 0, "range switch from min to max" );
254 equal( element.find( ".ui-slider-range-max" ).length, 1, "range switch from min to max" );
255 element.slider( "destroy" );
256
257 // Change range from max to min
258 element = $( "<div></div>" ).slider({
259 range: "max",
260 min: 1,
261 max: 10,
262 step: 1
263 }).slider( "option", "range", "min" );
264
265 equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from max to min, one handle" );
266 equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from max to min" );
267 equal( element.find( ".ui-slider-range-min" ).length, 1, "range switch from max to min" );
268 element.slider( "destroy" );
269
270 // Change range from max to true
271 element = $( "<div></div>" ).slider({
272 range: "max",
273 min: 1,
274 max: 10,
275 step: 1
276 }).slider( "option", "range", true );
277
278 equal( element.find( ".ui-slider-handle" ).length, 2, "range switch from max to true, two handles" );
279 equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from max to true" );
280 equal( element.find( ".ui-slider-range-min" ).length, 0, "range switch from max to true" );
281 equal( element.slider( "option", "value" ), 0 , "option value" );
282 equal( element.slider( "value" ), 1 , "value" );
283 deepEqual( element.slider( "option", "values" ), [1, 1], "option values" );
284 deepEqual( element.slider( "values" ), [1, 1], "values" );
285 element.slider( "destroy" );
286
287 // Change range from true to min
288 element = $( "<div></div>" ).slider({
289 range: true,
290 min: 1,
291 max: 10,
292 step: 1
293 }).slider( "option", "range", "min" );
294
295 equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from true to min, one handle" );
296 equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from true to min" );
297 equal( element.find( ".ui-slider-range-min" ).length, 1, "range switch from true to min" );
298 equal( element.slider( "option", "value" ), 1, "value" );
299 equal( element.slider( "value" ), 1 , "value" );
300 equal( element.slider( "option", "values" ), null, "values" );
301 deepEqual( element.slider( "values" ), [] , "values" );
302 element.slider( "destroy" );
303 });
304
305 })( jQuery );

  ViewVC Help
Powered by ViewVC 1.1.20