1 |
(function( $ ) { |
2 |
|
3 |
var simulateKeyDownUp = TestHelpers.spinner.simulateKeyDownUp; |
4 |
|
5 |
module( "spinner: methods" ); |
6 |
|
7 |
test( "destroy", function() { |
8 |
expect( 1 ); |
9 |
domEqual( "#spin", function() { |
10 |
$( "#spin" ).spinner().spinner( "destroy" ); |
11 |
}); |
12 |
}); |
13 |
|
14 |
test( "disable", function() { |
15 |
expect( 14 ); |
16 |
var element = $( "#spin" ).val( 2 ).spinner(), |
17 |
wrapper = $( "#spin" ).spinner( "widget" ); |
18 |
|
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" ); |
21 |
|
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" ); |
25 |
|
26 |
simulateKeyDownUp( element, $.ui.keyCode.UP ); |
27 |
equal( 2, element.val(), "keyboard - value does not change on key UP" ); |
28 |
|
29 |
simulateKeyDownUp( element, $.ui.keyCode.DOWN ); |
30 |
equal( 2, element.val(), "keyboard - value does not change on key DOWN" ); |
31 |
|
32 |
simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP ); |
33 |
equal( 2, element.val(), "keyboard - value does not change on key PGUP" ); |
34 |
|
35 |
simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN ); |
36 |
equal( 2, element.val(), "keyboard - value does not change on key PGDN" ); |
37 |
|
38 |
wrapper.find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" ); |
39 |
equal( 2, element.val(), "mouse - value does not change on clicking up button" ); |
40 |
|
41 |
wrapper.find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" ); |
42 |
equal( 2, element.val(), "mouse - value does not change on clicking down button" ); |
43 |
|
44 |
element.spinner( "stepUp", 6 ); |
45 |
equal( 8, element.val(), "script - stepUp 6 steps changes value"); |
46 |
|
47 |
element.spinner( "stepDown" ); |
48 |
equal( 7, element.val(), "script - stepDown 1 step changes value" ); |
49 |
|
50 |
element.spinner( "pageUp" ); |
51 |
equal( 17, element.val(), "script - pageUp 1 page changes value" ); |
52 |
|
53 |
element.spinner( "pageDown" ); |
54 |
equal( 7, element.val(), "script - pageDown 1 page changes value" ); |
55 |
}); |
56 |
|
57 |
test( "enable", function() { |
58 |
expect( 5 ); |
59 |
var element = $( "#spin" ).val( 1 ).spinner({ disabled: true }), |
60 |
wrapper = element.spinner( "widget" ); |
61 |
|
62 |
ok( wrapper.hasClass( "ui-spinner-disabled" ), "before: wrapper has ui-spinner-disabled class" ); |
63 |
ok( element.is( ":disabled" ), "before: input has disabled attribute" ); |
64 |
|
65 |
element.spinner( "enable" ); |
66 |
|
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" ); |
69 |
|
70 |
simulateKeyDownUp( element, $.ui.keyCode.UP ); |
71 |
equal( 2, element.val(), "keyboard - value changes on key UP" ); |
72 |
}); |
73 |
|
74 |
test( "pageDown", function() { |
75 |
expect( 4 ); |
76 |
var element = $( "#spin" ).val( -12 ).spinner({ |
77 |
page: 20, |
78 |
min: -100 |
79 |
}); |
80 |
|
81 |
element.spinner( "pageDown" ); |
82 |
equal( element.val(), -32, "pageDown 1 page" ); |
83 |
|
84 |
element.spinner( "pageDown", 3 ); |
85 |
equal( element.val(), -92, "pageDown 3 pages" ); |
86 |
|
87 |
element.spinner( "pageDown" ); |
88 |
equal( element.val(), -100, "value close to min and pageDown 1 page" ); |
89 |
|
90 |
element.spinner( "pageDown", 10 ); |
91 |
equal( element.val(), -100, "value at min and pageDown 10 pages" ); |
92 |
}); |
93 |
|
94 |
test( "pageUp", function() { |
95 |
expect( 4 ); |
96 |
var element = $( "#spin" ).val( 12 ).spinner({ |
97 |
page: 20, |
98 |
max: 100 |
99 |
}); |
100 |
|
101 |
element.spinner( "pageUp" ); |
102 |
equal( element.val(), 32, "pageUp 1 page" ); |
103 |
|
104 |
element.spinner( "pageUp", 3 ); |
105 |
equal( element.val(), 92, "pageUp 3 pages" ); |
106 |
|
107 |
element.spinner( "pageUp" ); |
108 |
equal( element.val(), 100, "value close to max and pageUp 1 page" ); |
109 |
|
110 |
element.spinner( "pageUp", 10 ); |
111 |
equal( element.val(), 100, "value at max and pageUp 10 pages" ); |
112 |
}); |
113 |
|
114 |
test( "stepDown", function() { |
115 |
expect( 4 ); |
116 |
var element = $( "#spin" ).val( 0 ).spinner({ |
117 |
step: 2, |
118 |
min: -15 |
119 |
}); |
120 |
|
121 |
element.spinner( "stepDown" ); |
122 |
equal( element.val(), "-1", "stepDown 1 step" ); |
123 |
|
124 |
element.spinner( "stepDown", 5 ); |
125 |
equal( element.val(), "-11", "stepDown 5 steps" ); |
126 |
|
127 |
element.spinner( "stepDown", 4 ); |
128 |
equal( element.val(), "-15", "close to min and stepDown 4 steps" ); |
129 |
|
130 |
element.spinner( "stepDown" ); |
131 |
equal( element.val(), "-15", "at min and stepDown 1 step" ); |
132 |
}); |
133 |
|
134 |
test( "stepUp", function() { |
135 |
expect( 4 ); |
136 |
var element = $( "#spin" ).val( 0 ).spinner({ |
137 |
step: 2, |
138 |
max: 16 |
139 |
}); |
140 |
|
141 |
element.spinner( "stepUp" ); |
142 |
equal( element.val(), 2, "stepUp 1 step" ); |
143 |
|
144 |
element.spinner( "stepUp", 5 ); |
145 |
equal( element.val(), 12, "stepUp 5 steps" ); |
146 |
|
147 |
element.spinner( "stepUp", 4 ); |
148 |
equal( element.val(), 16, "close to min and stepUp 4 steps" ); |
149 |
|
150 |
element.spinner( "stepUp" ); |
151 |
equal( element.val(), 16, "at max and stepUp 1 step" ); |
152 |
}); |
153 |
|
154 |
test( "value", function() { |
155 |
expect( 2 ); |
156 |
var element = $( "#spin" ).val( 0 ).spinner({ |
157 |
step: 3 |
158 |
}); |
159 |
|
160 |
element.spinner( "value", 10 ); |
161 |
equal( element.val(), 9, "change value via value method" ); |
162 |
|
163 |
equal( element.spinner( "value" ), 9, "get value via value method" ); |
164 |
}); |
165 |
|
166 |
test( "widget", function() { |
167 |
expect( 2 ); |
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" ); |
172 |
}); |
173 |
|
174 |
})( jQuery ); |