diff --git a/tests/unit/slider/slider_events.js b/tests/unit/slider/slider_events.js index 22e908bdd..a3d6c5282 100644 --- a/tests/unit/slider/slider_events.js +++ b/tests/unit/slider/slider_events.js @@ -2,6 +2,8 @@ * slider_events.js */ (function($) { + +var el; module( "slider: events" ); @@ -13,8 +15,61 @@ test( "slide", function() { ok( false, "missing test - untested code is broken code." ); }); +//Specs from http://wiki.jqueryui.com/Slider#specs +//"change callback: triggers when the slider has stopped moving and has a new +// value (even if same as previous value), via mouse(mouseup) or keyboard(keyup) +// or value method/option" test( "change", function() { - ok( false, "missing test - untested code is broken code." ); + expect(4); + + var handle; + // Test mouseup at end of handle slide (mouse) + el = $( "
" ) + .appendTo( "body" ) + .slider({ + change: function(event, ui) { + ok( true, "change triggered by mouseup at end of handle slide (mouse)" ); + } + }); + + el.find( ".ui-slider-handle" ).eq( 0 ) + .simulate( "drag", { dx: 10, dy: 10 } ); + + reset(); + // Test keyup at end of handle slide (keyboard) + el = $( "
" ) + .appendTo( "body" ) + .slider({ + change: function(event, ui) { + ok( true, "change triggered by keyup at end of handle slide (keyboard)" ); + } + }); + + el.find( ".ui-slider-handle" ).eq( 0 ) + .simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ) + .simulate( "keypress", { keyCode: $.ui.keyCode.LEFT } ) + .simulate( "keyup", { charCode: $.ui.keyCode.LEFT } ); + + reset(); + // Test value method + el = $( "
" ) + .slider({ + change: function(event, ui) { + ok( true, "change triggered by value method" ); + } + }) + .slider( "value", 0 ); + + reset(); + // Test value option + el = $( "
" ) + .slider({ + change: function(event, ui) { + ok( true, "change triggered by value option" ); + } + }) + .slider( "option", "value", 0 ); + }); test( "stop", function() {