@@ -218,170 +218,228 @@ asyncTest( "baseStructure", function() {
218
218
} ) ;
219
219
220
220
test ( "Keyboard handling" , function ( ) {
221
- // TODO: These tests all rely on having a method to retrieve a Date object. There
222
- // is not only implemented yet so bail.
223
- expect ( 0 ) ;
224
- return ;
225
-
226
- expect ( 24 ) ;
227
- var inp = TestHelpers . datepicker . init ( "#datepicker" ) ,
221
+ expect ( 8 ) ;
222
+ var input = $ ( "#datepicker" ) . datepicker ( ) ,
223
+ instance = input . datepicker ( "instance" ) ,
228
224
date = new Date ( ) ;
229
225
230
- inp . val ( "" ) . datepicker ( "open" )
226
+ input . datepicker ( "open" )
231
227
. simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
232
- TestHelpers . datepicker . equalsDate ( inp . val ( ) , date , "Keystroke enter" ) ;
228
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate" ) , date , "Keystroke enter" ) ;
233
229
234
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
230
+ // Enter = Select today's date by default
231
+ input . val ( "1/1/2014" ) . datepicker ( "open" )
235
232
. simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
236
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 4 ) ,
233
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate " ) , new Date ( 2014 , 0 , 1 ) ,
237
234
"Keystroke enter - preset" ) ;
238
235
239
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
236
+ // Control + Home = Change the calendar to the current month
237
+ input . val ( "1/1/2014" ) . datepicker ( "open" )
240
238
. simulate ( "keydown" , { ctrlKey : true , keyCode : $ . ui . keyCode . HOME } )
241
239
. simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
242
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , date , "Keystroke ctrl+home" ) ;
240
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate " ) , date , "Keystroke ctrl+home" ) ;
243
241
244
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
242
+ // Control + End = Close the calendar and clear the input
243
+ input . val ( "1/1/2014" ) . datepicker ( "open" )
245
244
. simulate ( "keydown" , { ctrlKey : true , keyCode : $ . ui . keyCode . END } ) ;
246
- ok ( inp . datepicker ( "getDate" ) == null , "Keystroke ctrl+end" ) ;
245
+ equal ( input . val ( ) , "" , "Keystroke ctrl+end" ) ;
247
246
248
- inp . val ( "" ) . datepicker ( "open" )
249
- . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
250
- ok ( inp . datepicker ( "getDate" ) == null , "Keystroke esc" ) ;
247
+ input . val ( "" ) . datepicker ( "open" ) ;
248
+ ok ( instance . isOpen , "datepicker is open before escape" ) ;
249
+ input . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
250
+ ok ( ! instance . isOpen , "escape closes the datepicker" ) ;
251
251
252
- inp . val ( "02/04/2008 " ) . datepicker ( "open" )
252
+ input . val ( "1/1/2014 " ) . datepicker ( "open" )
253
253
. simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
254
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 4 ) ,
254
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate " ) , new Date ( 2014 , 0 , 1 ) ,
255
255
"Keystroke esc - preset" ) ;
256
256
257
- inp . val ( "02/04/2008 " ) . datepicker ( "open" )
257
+ input . val ( "1/1/2014 " ) . datepicker ( "open" )
258
258
. simulate ( "keydown" , { ctrlKey : true , keyCode : $ . ui . keyCode . PAGE_UP } )
259
259
. simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
260
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 4 ) ,
260
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate " ) , new Date ( 2014 , 0 , 1 ) ,
261
261
"Keystroke esc - abandoned" ) ;
262
262
263
- // Moving by day or week
264
- inp . val ( "" ) . datepicker ( "open" )
265
- . simulate ( "keydown" , { ctrlKey : true , keyCode : $ . ui . keyCode . LEFT } )
266
- . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
267
- date . setDate ( date . getDate ( ) - 1 ) ;
268
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate" ) , date , "Keystroke ctrl+left" ) ;
269
-
270
- inp . val ( "" ) . datepicker ( "open" )
271
- . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } ) .
272
- simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
273
- date . setDate ( date . getDate ( ) + 1 ) ;
274
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate" ) , date , "Keystroke left" ) ;
275
-
276
- inp . val ( "" ) . datepicker ( "open" )
277
- . simulate ( "keydown" , { ctrlKey : true , keyCode : $ . ui . keyCode . RIGHT } ) .
278
- simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
263
+ input . datepicker ( "destroy" ) ;
264
+ } ) ;
265
+
266
+ asyncTest ( "keyboard handling - arrow keys" , function ( ) {
267
+ expect ( 6 ) ;
268
+ var picker ,
269
+ input = $ ( "#datepicker" ) ,
270
+ date = new Date ( ) ;
271
+
272
+ function step1 ( ) {
273
+ input . datepicker ( ) ;
274
+ picker = input . datepicker ( "widget" ) ;
275
+ ok ( ! picker . is ( ":visible" ) , "datepicker closed" ) ;
276
+ input . val ( "" )
277
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
278
+
279
+ setTimeout ( function ( ) {
280
+ ok ( picker . is ( ":visible" ) , "Keystroke down opens datepicker" ) ;
281
+ input . datepicker ( "destroy" ) ;
282
+ step2 ( ) ;
283
+ } ) ;
284
+ } ;
285
+
286
+ function step2 ( ) {
287
+ input . datepicker ( ) ;
288
+ picker = input . datepicker ( "widget" )
289
+ ok ( ! picker . is ( ":visible" ) , "datepicker closed" ) ;
290
+ input . val ( "" )
291
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
292
+
293
+ setTimeout ( function ( ) {
294
+ ok ( picker . is ( ":visible" ) , "Keystroke up opens datepicker" ) ;
295
+ input . datepicker ( "destroy" ) ;
296
+ step3 ( ) ;
297
+ } ) ;
298
+ } ;
299
+
300
+ function step3 ( ) {
301
+ input . datepicker ( )
302
+ . val ( "" )
303
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
304
+
305
+ setTimeout ( function ( ) {
306
+ $ ( ":focus" )
307
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . LEFT } )
308
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
309
+ date . setDate ( date . getDate ( ) - 1 ) ;
310
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate" ) , date ,
311
+ "Keystroke left to switch to previous day" ) ;
312
+
313
+ input . datepicker ( "destroy" ) ;
314
+ step4 ( ) ;
315
+ } , 100 ) ;
316
+ } ;
317
+
318
+ function step4 ( ) {
319
+ input . datepicker ( )
320
+ . val ( "" )
321
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
322
+
323
+ setTimeout ( function ( ) {
324
+ $ ( ":focus" )
325
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } )
326
+ . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
327
+ date . setDate ( new Date ( ) . getDate ( ) + 1 ) ;
328
+ TestHelpers . datepicker . equalsDate ( input . datepicker ( "valueAsDate" ) , date ,
329
+ "Keystroke right to switch to next day" ) ;
330
+
331
+ input . datepicker ( "destroy" ) ;
332
+ start ( ) ;
333
+ } , 100 ) ;
334
+ } ;
335
+
336
+ step1 ( ) ;
337
+ } ) ;
338
+
339
+ /*
340
+ input.val( "" ).datepicker( "open" )
341
+ .simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.RIGHT })
342
+ .simulate( "keydown", {keyCode: $.ui.keyCode.ENTER});
279
343
date.setDate(date.getDate() + 1);
280
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate" ) , date , "Keystroke ctrl+right" ) ;
281
-
282
- inp . val ( "" ) . datepicker ( "open" )
283
- . simulate ( "keydown" , { keyCode : $ . ui . keyCode . RIGHT } ) .
284
- simulate ( "keydown" , { keyCode : $ . ui . keyCode . ENTER } ) ;
285
- date . setDate ( date . getDate ( ) - 1 ) ;
286
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate" ) , date , "Keystroke right" ) ;
344
+ TestHelpers.datepicker.equalsDate( input.datepicker( "valueAsDate" ), date, "Keystroke ctrl+right" );
287
345
288
- inp . val ( "" ) . datepicker ( "open" )
346
+ input .val( "" ).datepicker( "open" )
289
347
.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.UP}).
290
348
simulate( "keydown", {keyCode: $.ui.keyCode.ENTER});
291
349
date.setDate(date.getDate() - 7);
292
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , date , "Keystroke ctrl+up" ) ;
350
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), date, "Keystroke ctrl+up" );
293
351
294
- inp . val ( "" ) . datepicker ( "open" )
352
+ input .val( "" ).datepicker( "open" )
295
353
.simulate( "keydown", {keyCode: $.ui.keyCode.UP}).
296
354
simulate( "keydown", {keyCode: $.ui.keyCode.ENTER});
297
355
date.setDate(date.getDate() + 7);
298
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , date , "Keystroke up" ) ;
356
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), date, "Keystroke up" );
299
357
300
- inp . val ( "" ) . datepicker ( "open" )
358
+ input .val( "" ).datepicker( "open" )
301
359
.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.DOWN}).
302
360
simulate( "keydown", {keyCode: $.ui.keyCode.ENTER});
303
361
date.setDate(date.getDate() + 7);
304
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , date , "Keystroke ctrl+down" ) ;
362
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), date, "Keystroke ctrl+down" );
305
363
306
- inp . val ( "" ) . datepicker ( "open" )
364
+ input .val( "" ).datepicker( "open" )
307
365
.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN })
308
366
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
309
367
date.setDate( date.getDate() - 7 );
310
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , date , "Keystroke down" ) ;
368
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), date, "Keystroke down" );
311
369
312
370
// Moving by month or year
313
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
371
+ input .val( "02/04/2008" ).datepicker( "open" )
314
372
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP })
315
373
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
316
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 1 - 1 , 4 ) ,
374
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 1 - 1, 4 ),
317
375
"Keystroke pgup" );
318
376
319
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
377
+ input .val( "02/04/2008" ).datepicker( "open" )
320
378
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN })
321
379
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
322
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 3 - 1 , 4 ) ,
380
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 3 - 1, 4 ),
323
381
"Keystroke pgdn" );
324
382
325
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
383
+ input .val( "02/04/2008" ).datepicker( "open" )
326
384
.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP })
327
385
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
328
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2007 , 2 - 1 , 4 ) ,
386
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2007, 2 - 1, 4 ),
329
387
"Keystroke ctrl+pgup" );
330
388
331
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
389
+ input .val( "02/04/2008" ).datepicker( "open" )
332
390
.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN })
333
391
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER});
334
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2009 , 2 - 1 , 4 ) ,
392
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2009, 2 - 1, 4 ),
335
393
"Keystroke ctrl+pgdn" );
336
394
337
395
// Check for moving to short months
338
- inp . val ( "03/31/2008" ) . datepicker ( "open" )
396
+ input .val( "03/31/2008" ).datepicker( "open" )
339
397
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP })
340
398
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
341
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 29 ) ,
399
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 2 - 1, 29 ),
342
400
"Keystroke pgup - Feb" );
343
401
344
- inp . val ( "01/30/2008" ) . datepicker ( "open" )
402
+ input .val( "01/30/2008" ).datepicker( "open" )
345
403
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN })
346
404
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
347
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 29 ) ,
405
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 2 - 1, 29 ),
348
406
"Keystroke pgdn - Feb" );
349
407
350
- inp . val ( "02/29/2008" ) . datepicker ( "open" )
408
+ input .val( "02/29/2008" ).datepicker( "open" )
351
409
.simulate( "keydown", {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP })
352
410
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
353
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2007 , 2 - 1 , 28 ) ,
411
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2007, 2 - 1, 28 ),
354
412
"Keystroke ctrl+pgup - Feb" );
355
413
356
- inp . val ( "02/29/2008" ) . datepicker ( "open" )
414
+ input .val( "02/29/2008" ).datepicker( "open" )
357
415
.simulate( "keydown", { ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN })
358
416
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
359
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2009 , 2 - 1 , 28 ) ,
417
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2009, 2 - 1, 28 ),
360
418
"Keystroke ctrl+pgdn - Feb" );
361
419
362
420
// Goto current
363
- inp . datepicker ( "option" , { gotoCurrent : true } )
421
+ input .datepicker( "option", { gotoCurrent: true })
364
422
.datepicker( "close" ).val( "02/04/2008" ).datepicker( "open" )
365
423
.late( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN })
366
424
.simulate( "keydown", { ctrlKey: true, keyCode: $.ui.keyCode.HOME })
367
425
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
368
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 2 - 1 , 4 ) ,
426
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 2 - 1, 4 ),
369
427
"Keystroke ctrl+home" );
370
428
371
429
// Change steps
372
- inp . datepicker ( "option" , { stepMonths : 2 , gotoCurrent : false } )
430
+ input .datepicker( "option", { stepMonths: 2, gotoCurrent: false })
373
431
.datepicker( "close" ).val( "02/04/2008" ).datepicker( "open" )
374
432
.late( "keydown", { keyCode: $.ui.keyCode.PAGE_UP })
375
433
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
376
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2007 , 12 - 1 , 4 ) ,
434
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2007, 12 - 1, 4 ),
377
435
"Keystroke pgup step 2" );
378
436
379
- inp . val ( "02/04/2008" ) . datepicker ( "open" )
437
+ input .val( "02/04/2008" ).datepicker( "open" )
380
438
.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN })
381
439
.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER });
382
- TestHelpers . datepicker . equalsDate ( inp . datepicker ( "getDate " ) , new Date ( 2008 , 4 - 1 , 4 ) ,
440
+ TestHelpers.datepicker.equalsDate( input .datepicker( "valueAsDate " ), new Date( 2008, 4 - 1, 4 ),
383
441
"Keystroke pgdn step 2" );
384
- } ) ;
442
+ */
385
443
386
444
test ( "mouse" , function ( ) {
387
445
// TODO: These tests use the old getDate() and setDate() methods. Re-activate these
0 commit comments