@@ -64,6 +64,12 @@ describe('timepicker directive', function () {
64
64
e . wheelDelta = delta ;
65
65
return e ;
66
66
}
67
+
68
+ function wheelThatOtherMouse ( delta ) {
69
+ var e = $ . Event ( 'wheel' ) ;
70
+ e . deltaY = delta ;
71
+ return e ;
72
+ }
67
73
68
74
it ( 'contains three row & three input elements' , function ( ) {
69
75
expect ( element . find ( 'tr' ) . length ) . toBe ( 3 ) ;
@@ -304,6 +310,58 @@ describe('timepicker directive', function () {
304
310
expect ( getModelState ( ) ) . toEqual ( [ 14 , 40 ] ) ;
305
311
} ) ;
306
312
313
+ it ( 'responds properly on "wheel" events' , function ( ) {
314
+ var inputs = element . find ( 'input' ) ;
315
+ var hoursEl = inputs . eq ( 0 ) , minutesEl = inputs . eq ( 1 ) ;
316
+ var upMouseWheelEvent = wheelThatOtherMouse ( - 1 ) ;
317
+ var downMouseWheelEvent = wheelThatOtherMouse ( 1 ) ;
318
+
319
+ expect ( getTimeState ( ) ) . toEqual ( [ '02' , '40' , 'PM' ] ) ;
320
+ expect ( getModelState ( ) ) . toEqual ( [ 14 , 40 ] ) ;
321
+
322
+ // UP
323
+ hoursEl . trigger ( upMouseWheelEvent ) ;
324
+ $rootScope . $digest ( ) ;
325
+ expect ( getTimeState ( ) ) . toEqual ( [ '03' , '40' , 'PM' ] ) ;
326
+ expect ( getModelState ( ) ) . toEqual ( [ 15 , 40 ] ) ;
327
+
328
+ hoursEl . trigger ( upMouseWheelEvent ) ;
329
+ $rootScope . $digest ( ) ;
330
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '40' , 'PM' ] ) ;
331
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 40 ] ) ;
332
+
333
+ minutesEl . trigger ( upMouseWheelEvent ) ;
334
+ $rootScope . $digest ( ) ;
335
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '41' , 'PM' ] ) ;
336
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 41 ] ) ;
337
+
338
+ minutesEl . trigger ( upMouseWheelEvent ) ;
339
+ $rootScope . $digest ( ) ;
340
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '42' , 'PM' ] ) ;
341
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 42 ] ) ;
342
+
343
+ // DOWN
344
+ minutesEl . trigger ( downMouseWheelEvent ) ;
345
+ $rootScope . $digest ( ) ;
346
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '41' , 'PM' ] ) ;
347
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 41 ] ) ;
348
+
349
+ minutesEl . trigger ( downMouseWheelEvent ) ;
350
+ $rootScope . $digest ( ) ;
351
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '40' , 'PM' ] ) ;
352
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 40 ] ) ;
353
+
354
+ hoursEl . trigger ( downMouseWheelEvent ) ;
355
+ $rootScope . $digest ( ) ;
356
+ expect ( getTimeState ( ) ) . toEqual ( [ '03' , '40' , 'PM' ] ) ;
357
+ expect ( getModelState ( ) ) . toEqual ( [ 15 , 40 ] ) ;
358
+
359
+ hoursEl . trigger ( downMouseWheelEvent ) ;
360
+ $rootScope . $digest ( ) ;
361
+ expect ( getTimeState ( ) ) . toEqual ( [ '02' , '40' , 'PM' ] ) ;
362
+ expect ( getModelState ( ) ) . toEqual ( [ 14 , 40 ] ) ;
363
+ } ) ;
364
+
307
365
describe ( 'attributes' , function ( ) {
308
366
beforeEach ( function ( ) {
309
367
$rootScope . hstep = 2 ;
@@ -413,6 +471,38 @@ describe('timepicker directive', function () {
413
471
expect ( getTimeState ( ) ) . toEqual ( [ '02' , '00' , 'PM' ] ) ;
414
472
expect ( getModelState ( ) ) . toEqual ( [ 14 , 0 ] ) ;
415
473
} ) ;
474
+
475
+ it ( 'responds properly on "wheel" events with configurable steps' , function ( ) {
476
+ var inputs = element . find ( 'input' ) ;
477
+ var hoursEl = inputs . eq ( 0 ) , minutesEl = inputs . eq ( 1 ) ;
478
+ var upMouseWheelEvent = wheelThatOtherMouse ( - 1 ) ;
479
+ var downMouseWheelEvent = wheelThatOtherMouse ( 1 ) ;
480
+
481
+ expect ( getTimeState ( ) ) . toEqual ( [ '02' , '00' , 'PM' ] ) ;
482
+ expect ( getModelState ( ) ) . toEqual ( [ 14 , 0 ] ) ;
483
+
484
+ // UP
485
+ hoursEl . trigger ( upMouseWheelEvent ) ;
486
+ $rootScope . $digest ( ) ;
487
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '00' , 'PM' ] ) ;
488
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 0 ] ) ;
489
+
490
+ minutesEl . trigger ( upMouseWheelEvent ) ;
491
+ $rootScope . $digest ( ) ;
492
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '30' , 'PM' ] ) ;
493
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 30 ] ) ;
494
+
495
+ // DOWN
496
+ minutesEl . trigger ( downMouseWheelEvent ) ;
497
+ $rootScope . $digest ( ) ;
498
+ expect ( getTimeState ( ) ) . toEqual ( [ '04' , '00' , 'PM' ] ) ;
499
+ expect ( getModelState ( ) ) . toEqual ( [ 16 , 0 ] ) ;
500
+
501
+ hoursEl . trigger ( downMouseWheelEvent ) ;
502
+ $rootScope . $digest ( ) ;
503
+ expect ( getTimeState ( ) ) . toEqual ( [ '02' , '00' , 'PM' ] ) ;
504
+ expect ( getModelState ( ) ) . toEqual ( [ 14 , 0 ] ) ;
505
+ } ) ;
416
506
417
507
it ( 'can handle strings as steps' , function ( ) {
418
508
var upHours = getHoursButton ( true ) ;
0 commit comments