]> source.dussan.org Git - jquery-ui.git/commitdiff
Slider unit tests: slider event change
authorRichard Worth <rdworth@gmail.com>
Wed, 17 Mar 2010 15:31:17 +0000 (15:31 +0000)
committerRichard Worth <rdworth@gmail.com>
Wed, 17 Mar 2010 15:31:17 +0000 (15:31 +0000)
tests/unit/slider/slider_events.js

index 22e908bdd892efe0de6455888bf19fc9b7087a22..a3d6c528216e94dc2909c3d992edd7aad3e0a510 100644 (file)
@@ -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 = $( "<div></div>" )
+               .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 = $( "<div></div>" )
+               .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 = $( "<div></div>" )
+               .slider({
+                       change: function(event, ui) {
+                               ok( true, "change triggered by value method" );
+                       }
+               })
+               .slider( "value", 0 );
+
+       reset();
+       // Test value option
+       el = $( "<div></div>" )
+               .slider({
+                       change: function(event, ui) {
+                               ok( true, "change triggered by value option" );
+                       }
+               })
+               .slider( "option", "value", 0 );
+
 });
 
 test( "stop", function() {