|
| 1 | +test( "Rangeslider widget works correctly", function() { |
| 2 | + var rangeslider = $( "#plain" ).rangeslider(), |
| 3 | + handles = rangeslider.parent().find( ".ui-slider-handle" ), |
| 4 | + track = handles.closest( ".ui-slider-track" ), |
| 5 | + offset = handles.offset(); |
| 6 | + |
| 7 | + deepEqual( rangeslider.rangeslider( "widget" ).hasClass( "ui-rangeslider" ), true, |
| 8 | + "Has class ui-rangeslider" ); |
| 9 | + equal( handles.length, 2, "Contains two handle elements" ); |
| 10 | + equal( track.length, 1, "Contains one track element" ); |
| 11 | + |
| 12 | + function moveHandle( handle, xPos ) { |
| 13 | + var trackWidth, trackX, |
| 14 | + down = $.Event( "mousedown" ), |
| 15 | + move = $.Event( "mousemove" ), |
| 16 | + up = $.Event( "mouseup" ), |
| 17 | + offset = handle.offset(); |
| 18 | + |
| 19 | + down.target = move.target = up.target = handle[ 0 ]; |
| 20 | + down.pageY = move.pageY = up.pageY = offset.top; |
| 21 | + down.pageX = offset.left; |
| 22 | + up.pageX = move.pageX = xPos; |
| 23 | + handle.trigger( down ); |
| 24 | + handle.trigger( move ); |
| 25 | + handle.trigger( up ); |
| 26 | + } |
| 27 | + |
| 28 | + // GH-7274: Events dependency |
| 29 | + // These tests cannot be expressed in the integration tests because the |
| 30 | + // "events/touch" module is artificially loaded in that environment. |
| 31 | + trackWidth = track.width(); |
| 32 | + trackX = track.offset().left; |
| 33 | + ok( trackWidth > 0, "Track has a non-zero width" ); |
| 34 | + |
| 35 | + moveHandle( handles.eq( 0 ), trackX + trackWidth * 0.2 ); |
| 36 | + moveHandle( handles.eq( 1 ), trackX + trackWidth * 0.8 ); |
| 37 | + ok( handles.eq( 0 ).offset().left > 0, "Lower handle responds to user interaction" ); |
| 38 | + ok( handles.eq( 1 ).offset().left > handles.eq( 0 ).offset().left, |
| 39 | + "Upper handle responds to user interaction" ); |
| 40 | +}); |
0 commit comments