3 var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp;
5 module( "spinner: methods" );
7 test( "destroy", function() {
9 domEqual( "#spin", function() {
10 $( "#spin" ).spinner().spinner( "destroy" );
14 test( "disable", function() {
16 var element = $( "#spin" ).val( 2 ).spinner(),
17 wrapper = $( "#spin" ).spinner( "widget" );
19 ok( !wrapper.hasClass( "ui-spinner-disabled" ), "before: wrapper does not have ui-spinner-disabled class" );
20 ok( !element.is( ":disabled" ), "before: input does not have disabled attribute" );
22 element.spinner( "disable" );
23 ok( wrapper.hasClass( "ui-spinner-disabled" ), "after: wrapper has ui-spinner-disabled class" );
24 ok( element.is( ":disabled"), "after: input has disabled attribute" );
26 simulateKeyDownUp( element, $.ui.keyCode.UP );
27 equal( 2, element.val(), "keyboard - value does not change on key UP" );
29 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
30 equal( 2, element.val(), "keyboard - value does not change on key DOWN" );
32 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
33 equal( 2, element.val(), "keyboard - value does not change on key PGUP" );
35 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
36 equal( 2, element.val(), "keyboard - value does not change on key PGDN" );
38 wrapper.find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
39 equal( 2, element.val(), "mouse - value does not change on clicking up button" );
41 wrapper.find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
42 equal( 2, element.val(), "mouse - value does not change on clicking down button" );
44 element.spinner( "stepUp", 6 );
45 equal( 8, element.val(), "script - stepUp 6 steps changes value");
47 element.spinner( "stepDown" );
48 equal( 7, element.val(), "script - stepDown 1 step changes value" );
50 element.spinner( "pageUp" );
51 equal( 17, element.val(), "script - pageUp 1 page changes value" );
53 element.spinner( "pageDown" );
54 equal( 7, element.val(), "script - pageDown 1 page changes value" );
57 test( "enable", function() {
59 var element = $( "#spin" ).val( 1 ).spinner({ disabled: true }),
60 wrapper = element.spinner( "widget" );
62 ok( wrapper.hasClass( "ui-spinner-disabled" ), "before: wrapper has ui-spinner-disabled class" );
63 ok( element.is( ":disabled" ), "before: input has disabled attribute" );
65 element.spinner( "enable" );
67 ok( !wrapper.hasClass( ".ui-spinner-disabled" ), "after: wrapper does not have ui-spinner-disabled class" );
68 ok( !element.is( ":disabled" ), "after: input does not have disabled attribute" );
70 simulateKeyDownUp( element, $.ui.keyCode.UP );
71 equal( 2, element.val(), "keyboard - value changes on key UP" );
74 test( "pageDown", function() {
76 var element = $( "#spin" ).val( -12 ).spinner({
81 element.spinner( "pageDown" );
82 equal( element.val(), -32, "pageDown 1 page" );
84 element.spinner( "pageDown", 3 );
85 equal( element.val(), -92, "pageDown 3 pages" );
87 element.spinner( "pageDown" );
88 equal( element.val(), -100, "value close to min and pageDown 1 page" );
90 element.spinner( "pageDown", 10 );
91 equal( element.val(), -100, "value at min and pageDown 10 pages" );
94 test( "pageUp", function() {
96 var element = $( "#spin" ).val( 12 ).spinner({
101 element.spinner( "pageUp" );
102 equal( element.val(), 32, "pageUp 1 page" );
104 element.spinner( "pageUp", 3 );
105 equal( element.val(), 92, "pageUp 3 pages" );
107 element.spinner( "pageUp" );
108 equal( element.val(), 100, "value close to max and pageUp 1 page" );
110 element.spinner( "pageUp", 10 );
111 equal( element.val(), 100, "value at max and pageUp 10 pages" );
114 test( "stepDown", function() {
116 var element = $( "#spin" ).val( 0 ).spinner({
121 element.spinner( "stepDown" );
122 equal( element.val(), "-1", "stepDown 1 step" );
124 element.spinner( "stepDown", 5 );
125 equal( element.val(), "-11", "stepDown 5 steps" );
127 element.spinner( "stepDown", 4 );
128 equal( element.val(), "-15", "close to min and stepDown 4 steps" );
130 element.spinner( "stepDown" );
131 equal( element.val(), "-15", "at min and stepDown 1 step" );
134 test( "stepUp", function() {
136 var element = $( "#spin" ).val( 0 ).spinner({
141 element.spinner( "stepUp" );
142 equal( element.val(), 2, "stepUp 1 step" );
144 element.spinner( "stepUp", 5 );
145 equal( element.val(), 12, "stepUp 5 steps" );
147 element.spinner( "stepUp", 4 );
148 equal( element.val(), 16, "close to min and stepUp 4 steps" );
150 element.spinner( "stepUp" );
151 equal( element.val(), 16, "at max and stepUp 1 step" );
154 test( "value", function() {
156 var element = $( "#spin" ).val( 0 ).spinner({
160 element.spinner( "value", 10 );
161 equal( element.val(), 9, "change value via value method" );
163 equal( element.spinner( "value" ), 9, "get value via value method" );
166 test( "widget", function() {
168 var element = $( "#spin" ).spinner(),
169 widgetElement = element.spinner( "widget" );
170 equal( widgetElement.length, 1, "one element" );
171 strictEqual( widgetElement[ 0 ], element.parent()[ 0 ], "parent element" );