Skip to content

Commit 85fe553

Browse files
committed
Calendar tests: Add dateEqual assertion, clean up helper methods
1 parent 967e581 commit 85fe553

File tree

9 files changed

+72
-81
lines changed

9 files changed

+72
-81
lines changed

tests/lib/qunit-assert-dateequal.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Assertion for comparing Date objects by day, month and year.
3+
*/
4+
define( [
5+
"qunit"
6+
], function( QUnit ) {
7+
8+
QUnit.assert.dateEqual = function( value, expected, message ) {
9+
10+
if ( !value || !expected ) {
11+
this.push( false, value, expected,
12+
"dateEqual failed, missing date object, message was: " + message );
13+
return;
14+
}
15+
16+
var newValue = new Date( value.getFullYear(), value.getMonth(), value.getDate() ),
17+
newExpected = new Date( expected.getFullYear(), expected.getMonth(), expected.getDate() );
18+
19+
this.push( ( newValue.toString() === newExpected.toString() ), value, expected, message );
20+
};
21+
22+
} );

tests/lib/qunit.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ define( [
44
"qunit-assert-classes",
55
"qunit-assert-close",
66
"lib/qunit-assert-domequal",
7+
"lib/qunit-assert-dateequal",
78
"phantom-bridge"
89
], function( QUnit, $ ) {
910

tests/unit/calendar/core.js

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ test( "Localization", function() {
137137
testLocalization( "After init: " );
138138
} );
139139

140-
asyncTest( "keyboard handling", function() {
140+
asyncTest( "keyboard handling", function( assert ) {
141141
expect( 10 );
142142

143143
var element = $( "#calendar" );
@@ -150,7 +150,7 @@ asyncTest( "keyboard handling", function() {
150150
.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } );
151151
setTimeout( function() {
152152
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
153-
testHelper.equalsDate(
153+
assert.dateEqual(
154154
element.calendar( "valueAsDate" ),
155155
new Date( 2013, 12 - 1, 31 ),
156156
"Keystroke left to switch to previous day"
@@ -167,7 +167,7 @@ asyncTest( "keyboard handling", function() {
167167
.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } )
168168
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
169169

170-
testHelper.equalsDate(
170+
assert.dateEqual(
171171
element.calendar( "valueAsDate" ),
172172
new Date( 2014, 1 - 1, 2 ),
173173
"Keystroke right to switch to next day"
@@ -181,7 +181,7 @@ asyncTest( "keyboard handling", function() {
181181
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.UP } );
182182
setTimeout( function() {
183183
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
184-
testHelper.equalsDate(
184+
assert.dateEqual(
185185
element.calendar( "valueAsDate" ),
186186
new Date( 2013, 12 - 1, 25 ),
187187
"Keystroke up to move to the previous week"
@@ -197,7 +197,7 @@ asyncTest( "keyboard handling", function() {
197197
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
198198
setTimeout( function() {
199199
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
200-
testHelper.equalsDate(
200+
assert.dateEqual(
201201
element.calendar( "valueAsDate" ),
202202
new Date( 2014, 1 - 1, 8 ),
203203
"Keystroke down to move to the next week"
@@ -213,7 +213,7 @@ asyncTest( "keyboard handling", function() {
213213
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
214214
setTimeout( function() {
215215
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
216-
testHelper.equalsDate(
216+
assert.dateEqual(
217217
element.calendar( "valueAsDate" ),
218218
new Date( 2013, 12 - 1, 1 ),
219219
"Keystroke Page Up moves date to previous month"
@@ -230,7 +230,7 @@ asyncTest( "keyboard handling", function() {
230230
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP, altKey: true } );
231231
setTimeout( function() {
232232
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
233-
testHelper.equalsDate(
233+
assert.dateEqual(
234234
element.calendar( "valueAsDate" ),
235235
new Date( 2013, 1 - 1, 1 ),
236236
"Keystroke Page Up + ALT moves date to previous year"
@@ -246,7 +246,7 @@ asyncTest( "keyboard handling", function() {
246246
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
247247
setTimeout( function() {
248248
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
249-
testHelper.equalsDate(
249+
assert.dateEqual(
250250
element.calendar( "valueAsDate" ),
251251
new Date( 2014, 2 - 1, 1 ),
252252
"Keystroke Page Down moves date to next month"
@@ -263,7 +263,7 @@ asyncTest( "keyboard handling", function() {
263263
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN, altKey: true } );
264264
setTimeout( function() {
265265
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
266-
testHelper.equalsDate(
266+
assert.dateEqual(
267267
element.calendar( "valueAsDate" ),
268268
new Date( 2015, 1 - 1, 1 ),
269269
"Keystroke Page Down + ALT moves date to next year"
@@ -280,7 +280,7 @@ asyncTest( "keyboard handling", function() {
280280
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
281281
setTimeout( function() {
282282
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
283-
testHelper.equalsDate(
283+
assert.dateEqual(
284284
element.calendar( "valueAsDate" ),
285285
new Date( 2014, 2 - 1, 28 ),
286286
"Keystroke Page Up and short months"
@@ -296,7 +296,7 @@ asyncTest( "keyboard handling", function() {
296296
testHelper.focusGrid( element ).simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
297297
setTimeout( function() {
298298
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
299-
testHelper.equalsDate(
299+
assert.dateEqual(
300300
element.calendar( "valueAsDate" ),
301301
new Date( 2016, 2 - 1, 29 ),
302302
"Keystroke Page Down and leap years"
@@ -309,7 +309,7 @@ asyncTest( "keyboard handling", function() {
309309
step1();
310310
} );
311311

312-
asyncTest( "mouse", function() {
312+
asyncTest( "mouse", function( assert ) {
313313
expect( 6 );
314314

315315
var element = $( "#calendar" ).calendar(),
@@ -318,15 +318,15 @@ asyncTest( "mouse", function() {
318318
function step1() {
319319
$( "tbody button:contains(10)", element ).simulate( "mousedown" );
320320
date.setDate( 10 );
321-
testHelper.equalsDate(
321+
assert.dateEqual(
322322
element.calendar( "valueAsDate" ),
323323
date,
324324
"Mouse click"
325325
);
326326

327327
element.calendar( "option", "value", new Date( 2008, 2 - 1, 4 ) );
328328
$( ".ui-calendar-calendar tbody button:contains(12)", element ).simulate( "mousedown" );
329-
testHelper.equalsDate(
329+
assert.dateEqual(
330330
element.calendar( "valueAsDate" ),
331331
new Date( 2008, 2 - 1, 12 ),
332332
"Mouse click - preset"
@@ -336,7 +336,7 @@ asyncTest( "mouse", function() {
336336
element.calendar( "option", "value", new Date( 2008, 2 - 1, 4 ) );
337337
$( ".ui-calendar-prev", element ).simulate( "click" );
338338
$( ".ui-calendar-calendar tbody button:contains(16)", element ).simulate( "mousedown" );
339-
testHelper.equalsDate(
339+
assert.dateEqual(
340340
element.calendar( "valueAsDate" ),
341341
new Date( 2008, 1 - 1, 16 ),
342342
"Mouse click - previous"
@@ -345,7 +345,7 @@ asyncTest( "mouse", function() {
345345
element.calendar( "option", "value", new Date( 2008, 2 - 1, 4 ) );
346346
$( ".ui-calendar-next", element ).simulate( "click" );
347347
$( ".ui-calendar-calendar tbody button:contains(18)", element ).simulate( "mousedown" );
348-
testHelper.equalsDate(
348+
assert.dateEqual(
349349
element.calendar( "valueAsDate" ),
350350
new Date( 2008, 3 - 1, 18 ),
351351
"Mouse click - next"
@@ -365,7 +365,7 @@ asyncTest( "mouse", function() {
365365

366366
$( ".ui-calendar-prev", element ).simulate( "click" );
367367
$( "tbody button:contains(16)", element ).simulate( "mousedown" );
368-
testHelper.equalsDate(
368+
assert.dateEqual(
369369
element.calendar( "valueAsDate" ),
370370
new Date( 2008, 2 - 1, 16 ),
371371
"Mouse click - previous + min/max"
@@ -383,7 +383,7 @@ asyncTest( "mouse", function() {
383383

384384
$( ".ui-calendar-next", element ).simulate( "click" );
385385
$( "tbody button:contains(18)", element ).simulate( "mousedown" );
386-
testHelper.equalsDate(
386+
assert.dateEqual(
387387
element.calendar( "valueAsDate" ),
388388
new Date( 2008, 2 - 1, 18 ),
389389
"Mouse click - next + min/max"

tests/unit/calendar/helper.js

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,6 @@ define( [
44
], function( $, helper ) {
55

66
return $.extend( helper, {
7-
addMonths: function( date, offset ) {
8-
var maxDay = 32 - new Date( date.getFullYear(), date.getMonth() + offset, 32 ).getDate();
9-
date.setDate( Math.min( date.getDate(), maxDay ) );
10-
date.setMonth( date.getMonth() + offset );
11-
return date;
12-
},
13-
equalsDate: function( d1, d2, message ) {
14-
if ( !d1 || !d2 ) {
15-
ok( false, message + " - missing date" );
16-
return;
17-
}
18-
d1 = new Date( d1.getFullYear(), d1.getMonth(), d1.getDate() );
19-
d2 = new Date( d2.getFullYear(), d2.getMonth(), d2.getDate() );
20-
equal( d1.toString(), d2.toString(), message );
21-
},
227
focusGrid: function( element ) {
238
element.find( ":tabbable" ).last().simulate( "focus" );
249
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.TAB } );

tests/unit/calendar/methods.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
define( [
22
"jquery",
3-
"./helper",
43
"ui/widgets/calendar"
5-
], function( $, testHelper ) {
4+
], function( $ ) {
65

76
module( "calendar: methods" );
87

@@ -56,7 +55,7 @@ test( "value", function() {
5655
equal( element.calendar( "value" ), "1/1/14", "Setting invalid values should be ignored." );
5756
} );
5857

59-
test( "valueAsDate", function() {
58+
test( "valueAsDate", function( assert ) {
6059
expect( 11 );
6160

6261
var minDate, maxDate, dateAndTimeToSet, dateAndTimeClone,
@@ -69,15 +68,15 @@ test( "valueAsDate", function() {
6968
.hasClass( "ui-state-active" ),
7069
"First day marked as selected"
7170
);
72-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2014, 0, 1 ), "Getter" );
71+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2014, 0, 1 ), "Getter" );
7372

7473
element.calendar( "destroy" );
7574

7675
element.calendar();
7776
equal( element.calendar( "valueAsDate" ), null, "Set date - default" );
7877

7978
element.calendar( "valueAsDate", date1 );
80-
testHelper.equalsDate( element.calendar( "valueAsDate" ), date1, "Set date - 2008-06-04" );
79+
assert.dateEqual( element.calendar( "valueAsDate" ), date1, "Set date - 2008-06-04" );
8180

8281
// With minimum/maximum
8382
element = $( "#calendar" ).calendar();
@@ -89,13 +88,13 @@ test( "valueAsDate", function() {
8988
element
9089
.calendar( "option", { min: minDate } )
9190
.calendar( "valueAsDate", date2 );
92-
testHelper.equalsDate(
91+
assert.dateEqual(
9392
element.calendar( "valueAsDate" ),
9493
date2, "Set date min/max - value > min"
9594
);
9695

9796
element.calendar( "valueAsDate", date1 );
98-
testHelper.equalsDate(
97+
assert.dateEqual(
9998
element.calendar( "valueAsDate" ),
10099
date2,
101100
"Set date min/max - value < min"
@@ -104,14 +103,14 @@ test( "valueAsDate", function() {
104103
element
105104
.calendar( "option", { max: maxDate, min: null } )
106105
.calendar( "valueAsDate", date1 );
107-
testHelper.equalsDate(
106+
assert.dateEqual(
108107
element.calendar( "valueAsDate" ),
109108
date1,
110109
"Set date min/max - value < max"
111110
);
112111

113112
element.calendar( "valueAsDate", date2 );
114-
testHelper.equalsDate(
113+
assert.dateEqual(
115114
element.calendar( "valueAsDate" ),
116115
date1,
117116
"Set date min/max - value > max"
@@ -120,14 +119,14 @@ test( "valueAsDate", function() {
120119
element
121120
.calendar( "option", { min: minDate } )
122121
.calendar( "valueAsDate", date1 );
123-
testHelper.equalsDate(
122+
assert.dateEqual(
124123
element.calendar( "valueAsDate" ),
125124
date1,
126125
"Set date min/max - value < min"
127126
);
128127

129128
element.calendar( "valueAsDate", date2 );
130-
testHelper.equalsDate(
129+
assert.dateEqual(
131130
element.calendar( "valueAsDate" ),
132131
date1, "Set date min/max - value > max"
133132
);

tests/unit/calendar/options.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
define( [
22
"jquery",
3-
"./helper",
43
"ui/widgets/calendar"
5-
], function( $, testHelper ) {
4+
], function( $ ) {
65

76
module( "calendar: options" );
87

@@ -188,7 +187,7 @@ test( "showWeek", function() {
188187
equal( container.find( "thead th" ).length, 8, "supports changing option after init" );
189188
} );
190189

191-
test( "min / max", function() {
190+
test( "min / max", function( assert ) {
192191
expect( 17 );
193192

194193
// With existing date
@@ -202,38 +201,38 @@ test( "min / max", function() {
202201
element
203202
.calendar( "option", { min: minDate } )
204203
.calendar( "value", "6/4/08" );
205-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min" );
204+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min" );
206205

207206
element
208207
.calendar( "option", { min: minDate } )
209208
.calendar( "value", "1/4/08" );
210-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
209+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
211210

212211
element
213212
.calendar( "option", { min: null } )
214213
.calendar( "value", "6/4/08" )
215214
.calendar( "option", { max: maxDate } );
216-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < max" );
215+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < max" );
217216

218217
element
219218
.calendar( "option", { max: maxDate } )
220219
.calendar( "value", "1/4/09" );
221-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - setDate > max" );
220+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - setDate > max" );
222221

223222
element
224223
.calendar( "option", { min: minDate, max: maxDate } )
225224
.calendar( "value", "1/4/08" );
226-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
225+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
227226

228227
element
229228
.calendar( "option", { min: minDate, max: maxDate } )
230229
.calendar( "value", "6/4/08" );
231-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min, < max" );
230+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > min, < max" );
232231

233232
element
234233
.calendar( "option", { min: minDate, max: maxDate } )
235234
.calendar( "value", "1/4/09" );
236-
testHelper.equalsDate( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > max" );
235+
assert.dateEqual( element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > max" );
237236

238237
element
239238
.calendar( "option", { min: minDate, max: maxDate } )

0 commit comments

Comments
 (0)