corrade-http-templates – Blame information for rev 62

Subversion Repositories:
Rev:
Rev Author Line No. Line
62 office 1 define( [
2 "qunit",
3 "jquery",
4 "./helper",
5 "ui/widgets/spinner"
6 ], function( QUnit, $, testHelper ) {
7  
8 var simulateKeyDownUp = testHelper.simulateKeyDownUp;
9  
10 QUnit.module( "spinner: methods" );
11  
12 QUnit.test( "destroy", function( assert ) {
13 assert.expect( 1 );
14 assert.domEqual( "#spin", function() {
15 $( "#spin" ).spinner().spinner( "destroy" );
16 } );
17 } );
18  
19 QUnit.test( "disable", function( assert ) {
20 assert.expect( 15 );
21 var element = $( "#spin" ).val( 2 ).spinner(),
22 wrapper = $( "#spin" ).spinner( "widget" );
23  
24 assert.lacksClasses( wrapper, "ui-spinner-disabled" );
25 assert.ok( !element.is( ":disabled" ), "before: input does not have disabled attribute" );
26  
27 element.spinner( "disable" );
28 assert.hasClasses( wrapper, "ui-state-disabled ui-spinner-disabled" );
29 assert.ok( !wrapper.attr( "aria-disabled" ), "after: wrapper does not have aria-disabled attr" );
30 assert.ok( element.is( ":disabled" ), "after: input has disabled attribute" );
31  
32 simulateKeyDownUp( element, $.ui.keyCode.UP );
33 assert.equal( 2, element.val(), "keyboard - value does not change on key UP" );
34  
35 simulateKeyDownUp( element, $.ui.keyCode.DOWN );
36 assert.equal( 2, element.val(), "keyboard - value does not change on key DOWN" );
37  
38 simulateKeyDownUp( element, $.ui.keyCode.PAGE_UP );
39 assert.equal( 2, element.val(), "keyboard - value does not change on key PGUP" );
40  
41 simulateKeyDownUp( element, $.ui.keyCode.PAGE_DOWN );
42 assert.equal( 2, element.val(), "keyboard - value does not change on key PGDN" );
43  
44 wrapper.find( ".ui-spinner-up" ).trigger( "mousedown" ).trigger( "mouseup" );
45 assert.equal( 2, element.val(), "mouse - value does not change on clicking up button" );
46  
47 wrapper.find( ".ui-spinner-down" ).trigger( "mousedown" ).trigger( "mouseup" );
48 assert.equal( 2, element.val(), "mouse - value does not change on clicking down button" );
49  
50 element.spinner( "stepUp", 6 );
51 assert.equal( 8, element.val(), "script - stepUp 6 steps changes value" );
52  
53 element.spinner( "stepDown" );
54 assert.equal( 7, element.val(), "script - stepDown 1 step changes value" );
55  
56 element.spinner( "pageUp" );
57 assert.equal( 17, element.val(), "script - pageUp 1 page changes value" );
58  
59 element.spinner( "pageDown" );
60 assert.equal( 7, element.val(), "script - pageDown 1 page changes value" );
61 } );
62  
63 QUnit.test( "enable", function( assert ) {
64 assert.expect( 5 );
65 var element = $( "#spin" ).val( 1 ).spinner( { disabled: true } ),
66 wrapper = element.spinner( "widget" );
67  
68 assert.hasClasses( wrapper, "ui-spinner-disabled" );
69 assert.ok( element.is( ":disabled" ), "before: input has disabled attribute" );
70  
71 element.spinner( "enable" );
72  
73 assert.lacksClasses( wrapper, "ui-spinner-disabled" );
74 assert.ok( !element.is( ":disabled" ), "after: input does not have disabled attribute" );
75  
76 simulateKeyDownUp( element, $.ui.keyCode.UP );
77 assert.equal( 2, element.val(), "keyboard - value changes on key UP" );
78 } );
79  
80 QUnit.test( "isValid", function( assert ) {
81 assert.expect( 8 );
82 var element = $( "#spin" ).spinner( {
83 min: 0,
84 max: 10,
85 step: 2
86 } ),
87 spinner = element.spinner( "instance" );
88 assert.ok( !spinner.isValid(), "initial state is invalid" );
89  
90 element.val( "this is not a number" );
91 assert.ok( !spinner.isValid(), "text string is not valid" );
92  
93 element.val( "0" );
94 assert.ok( spinner.isValid(), "min value is valid" );
95  
96 element.val( "10" );
97 assert.ok( spinner.isValid(), "max value is valid" );
98  
99 element.val( "4" );
100 assert.ok( spinner.isValid(), "inbetween step is valid" );
101  
102 element.val( "-1" );
103 assert.ok( !spinner.isValid(), "below min is invalid" );
104  
105 element.val( "11" );
106 assert.ok( !spinner.isValid(), "above max is invalid" );
107  
108 element.val( "1" );
109 assert.ok( !spinner.isValid(), "step mismatch is invalid" );
110 } );
111  
112 QUnit.test( "pageDown", function( assert ) {
113 assert.expect( 4 );
114 var element = $( "#spin" ).val( -12 ).spinner( {
115 page: 20,
116 min: -100
117 } );
118  
119 element.spinner( "pageDown" );
120 assert.equal( element.val(), -32, "pageDown 1 page" );
121  
122 element.spinner( "pageDown", 3 );
123 assert.equal( element.val(), -92, "pageDown 3 pages" );
124  
125 element.spinner( "pageDown" );
126 assert.equal( element.val(), -100, "value close to min and pageDown 1 page" );
127  
128 element.spinner( "pageDown", 10 );
129 assert.equal( element.val(), -100, "value at min and pageDown 10 pages" );
130 } );
131  
132 QUnit.test( "pageUp", function( assert ) {
133 assert.expect( 4 );
134 var element = $( "#spin" ).val( 12 ).spinner( {
135 page: 20,
136 max: 100
137 } );
138  
139 element.spinner( "pageUp" );
140 assert.equal( element.val(), 32, "pageUp 1 page" );
141  
142 element.spinner( "pageUp", 3 );
143 assert.equal( element.val(), 92, "pageUp 3 pages" );
144  
145 element.spinner( "pageUp" );
146 assert.equal( element.val(), 100, "value close to max and pageUp 1 page" );
147  
148 element.spinner( "pageUp", 10 );
149 assert.equal( element.val(), 100, "value at max and pageUp 10 pages" );
150 } );
151  
152 QUnit.test( "stepDown", function( assert ) {
153 assert.expect( 4 );
154 var element = $( "#spin" ).val( 0 ).spinner( {
155 step: 2,
156 min: -15
157 } );
158  
159 element.spinner( "stepDown" );
160 assert.equal( element.val(), "-1", "stepDown 1 step" );
161  
162 element.spinner( "stepDown", 5 );
163 assert.equal( element.val(), "-11", "stepDown 5 steps" );
164  
165 element.spinner( "stepDown", 4 );
166 assert.equal( element.val(), "-15", "close to min and stepDown 4 steps" );
167  
168 element.spinner( "stepDown" );
169 assert.equal( element.val(), "-15", "at min and stepDown 1 step" );
170 } );
171  
172 QUnit.test( "stepUp", function( assert ) {
173 assert.expect( 4 );
174 var element = $( "#spin" ).val( 0 ).spinner( {
175 step: 2,
176 max: 16
177 } );
178  
179 element.spinner( "stepUp" );
180 assert.equal( element.val(), 2, "stepUp 1 step" );
181  
182 element.spinner( "stepUp", 5 );
183 assert.equal( element.val(), 12, "stepUp 5 steps" );
184  
185 element.spinner( "stepUp", 4 );
186 assert.equal( element.val(), 16, "close to max and stepUp 4 steps" );
187  
188 element.spinner( "stepUp" );
189 assert.equal( element.val(), 16, "at max and stepUp 1 step" );
190 } );
191  
192 QUnit.test( "value", function( assert ) {
193 assert.expect( 2 );
194 var element = $( "#spin" ).val( 0 ).spinner( {
195 step: 3
196 } );
197  
198 element.spinner( "value", 10 );
199 assert.equal( element.val(), 9, "change value via value method" );
200  
201 assert.equal( element.spinner( "value" ), 9, "get value via value method" );
202 } );
203  
204 QUnit.test( "widget", function( assert ) {
205 assert.expect( 2 );
206 var element = $( "#spin" ).spinner(),
207 widgetElement = element.spinner( "widget" );
208 assert.equal( widgetElement.length, 1, "one element" );
209 assert.strictEqual( widgetElement[ 0 ], element.parent()[ 0 ], "parent element" );
210 } );
211  
212 } );