@@ -87,7 +87,7 @@ describe('datetimepicker', function() {
8787 var expectedValue = 11 ;
8888
8989 expect ( util . _convert24to12 ( expectedValue + 12 * 3 ) ) . toBe ( "" + expectedValue ) ;
90- } )
90+ } ) ;
9191 } ) ;
9292
9393 describe ( 'detectSupport' , function ( ) {
@@ -338,21 +338,21 @@ describe('datetimepicker', function() {
338338
339339 describe ( 'timezoneOffsetString' , function ( ) {
340340 it ( 'returns NaN if the input is NaN' , function ( ) {
341- expect ( $ . timepicker . timezoneOffsetString ( NaN ) ) . toBeNaN ( ) ;
341+ expect ( $ . timepicker . timezoneOffsetString ( NaN , false ) ) . toBeNaN ( ) ;
342342 } ) ;
343343
344344 it ( 'returns the input if the input is greater than 840 (+14:00)' , function ( ) {
345345 var expectedMinutes = 850 ;
346346
347- var actualMinutes = $ . timepicker . timezoneOffsetString ( expectedMinutes ) ;
347+ var actualMinutes = $ . timepicker . timezoneOffsetString ( expectedMinutes , false ) ;
348348
349349 expect ( actualMinutes ) . toBe ( expectedMinutes ) ;
350350 } ) ;
351351
352352 it ( 'returns the input if the input is less than -720 (-12:00)' , function ( ) {
353353 var expectedMinutes = - 730 ;
354354
355- var actualMinutes = $ . timepicker . timezoneOffsetString ( expectedMinutes ) ;
355+ var actualMinutes = $ . timepicker . timezoneOffsetString ( expectedMinutes , false ) ;
356356
357357 expect ( actualMinutes ) . toBe ( expectedMinutes ) ;
358358 } ) ;
@@ -461,4 +461,143 @@ describe('datetimepicker', function() {
461461 } ) ;
462462 } ) ;
463463 } ) ;
464+
465+ describe ( 'datepicker functions' , function ( ) {
466+ describe ( 'formatTime' , function ( ) {
467+ describe ( 'single formats, default options' , function ( ) {
468+ var emptyTime = { } ;
469+
470+ describe ( 'hours' , function ( ) {
471+ var earlyHour = { hour : 7 } ,
472+ lateHour = { hour : 17 } ;
473+
474+ it ( 'formats HH correctly' , function ( ) {
475+ expect ( $ . datepicker . formatTime ( 'HH' , emptyTime ) ) . toBe ( '00' ) ;
476+ expect ( $ . datepicker . formatTime ( 'HH' , earlyHour ) ) . toBe ( '07' ) ;
477+ expect ( $ . datepicker . formatTime ( 'HH' , lateHour ) ) . toBe ( '17' ) ;
478+ } ) ;
479+
480+ it ( 'formats H correctly' , function ( ) {
481+ expect ( $ . datepicker . formatTime ( 'H' , emptyTime ) ) . toBe ( '0' ) ;
482+ expect ( $ . datepicker . formatTime ( 'H' , earlyHour ) ) . toBe ( '7' ) ;
483+ expect ( $ . datepicker . formatTime ( 'H' , lateHour ) ) . toBe ( '17' ) ;
484+ } ) ;
485+
486+ it ( 'formats hh correctly' , function ( ) {
487+ expect ( $ . datepicker . formatTime ( 'hh' , emptyTime ) ) . toBe ( '12' ) ;
488+ expect ( $ . datepicker . formatTime ( 'hh' , earlyHour ) ) . toBe ( '07' ) ;
489+ expect ( $ . datepicker . formatTime ( 'hh' , lateHour ) ) . toBe ( '05' ) ;
490+ } ) ;
491+
492+ it ( 'formats h correctly' , function ( ) {
493+ expect ( $ . datepicker . formatTime ( 'h' , emptyTime ) ) . toBe ( '12' ) ;
494+ expect ( $ . datepicker . formatTime ( 'h' , earlyHour ) ) . toBe ( '7' ) ;
495+ expect ( $ . datepicker . formatTime ( 'h' , lateHour ) ) . toBe ( '5' ) ;
496+ } ) ;
497+ } ) ;
498+
499+ describe ( 'minutes' , function ( ) {
500+ var singleDigitMinute = { minute : 3 } ,
501+ doubleDigitMinute = { minute : 42 } ;
502+
503+ it ( 'formats mm correctly' , function ( ) {
504+ expect ( $ . datepicker . formatTime ( 'mm' , emptyTime ) ) . toBe ( '00' ) ;
505+ expect ( $ . datepicker . formatTime ( 'mm' , singleDigitMinute ) ) . toBe ( '03' ) ;
506+ expect ( $ . datepicker . formatTime ( 'mm' , doubleDigitMinute ) ) . toBe ( '42' ) ;
507+ } ) ;
508+
509+ it ( 'formats m correctly' , function ( ) {
510+ expect ( $ . datepicker . formatTime ( 'm' , emptyTime ) ) . toBe ( '0' ) ;
511+ expect ( $ . datepicker . formatTime ( 'm' , singleDigitMinute ) ) . toBe ( '3' ) ;
512+ expect ( $ . datepicker . formatTime ( 'm' , doubleDigitMinute ) ) . toBe ( '42' ) ;
513+ } ) ;
514+ } ) ;
515+
516+ describe ( 'seconds' , function ( ) {
517+ var singleDigitSecond = { second : 5 } ,
518+ doubleDigitSecond = { second : 31 } ;
519+
520+ it ( 'formats ss correctly' , function ( ) {
521+ expect ( $ . datepicker . formatTime ( 'ss' , emptyTime ) ) . toBe ( '00' ) ;
522+ expect ( $ . datepicker . formatTime ( 'ss' , singleDigitSecond ) ) . toBe ( '05' ) ;
523+ expect ( $ . datepicker . formatTime ( 'ss' , doubleDigitSecond ) ) . toBe ( '31' ) ;
524+ } ) ;
525+
526+ it ( 'formats s correctly' , function ( ) {
527+ expect ( $ . datepicker . formatTime ( 's' , emptyTime ) ) . toBe ( '0' ) ;
528+ expect ( $ . datepicker . formatTime ( 's' , singleDigitSecond ) ) . toBe ( '5' ) ;
529+ expect ( $ . datepicker . formatTime ( 's' , doubleDigitSecond ) ) . toBe ( '31' ) ;
530+ } ) ;
531+ } ) ;
532+
533+ describe ( 'milliseconds' , function ( ) {
534+ it ( 'formats l correctly' , function ( ) {
535+ var singleDigitMillis = { millisec : 3 } ,
536+ doubleDigitMillis = { millisec : 17 } ,
537+ tripleDigitMillis = { millisec : 123 } ;
538+
539+ expect ( $ . datepicker . formatTime ( 'l' , emptyTime ) ) . toBe ( '000' ) ;
540+ expect ( $ . datepicker . formatTime ( 'l' , singleDigitMillis ) ) . toBe ( '003' ) ;
541+ expect ( $ . datepicker . formatTime ( 'l' , doubleDigitMillis ) ) . toBe ( '017' ) ;
542+ expect ( $ . datepicker . formatTime ( 'l' , tripleDigitMillis ) ) . toBe ( '123' ) ;
543+ } ) ;
544+ } ) ;
545+
546+ describe ( 'microseconds' , function ( ) {
547+ it ( 'formats c correctly' , function ( ) {
548+ var singleDigitMicros = { microsec : 3 } ,
549+ doubleDigitMicros = { microsec : 17 } ,
550+ tripleDigitMicros = { microsec : 123 } ;
551+
552+ expect ( $ . datepicker . formatTime ( 'c' , emptyTime ) ) . toBe ( '000' ) ;
553+ expect ( $ . datepicker . formatTime ( 'c' , singleDigitMicros ) ) . toBe ( '003' ) ;
554+ expect ( $ . datepicker . formatTime ( 'c' , doubleDigitMicros ) ) . toBe ( '017' ) ;
555+ expect ( $ . datepicker . formatTime ( 'c' , tripleDigitMicros ) ) . toBe ( '123' ) ;
556+ } ) ;
557+ } ) ;
558+
559+ describe ( 'timezone' , function ( ) {
560+ // TODO: Finish
561+ } ) ;
562+
563+ describe ( 'am/pm' , function ( ) {
564+ var morningHour = { hour : 3 } ,
565+ afternoonHour = { hour : 15 } ;
566+
567+ it ( 'formats t correctly' , function ( ) {
568+ expect ( $ . datepicker . formatTime ( 't' , emptyTime ) ) . toBe ( 'a' ) ;
569+ expect ( $ . datepicker . formatTime ( 't' , morningHour ) ) . toBe ( 'a' ) ;
570+ expect ( $ . datepicker . formatTime ( 't' , afternoonHour ) ) . toBe ( 'p' ) ;
571+ } ) ;
572+
573+ it ( 'formats T correctly' , function ( ) {
574+ expect ( $ . datepicker . formatTime ( 'T' , emptyTime ) ) . toBe ( 'A' ) ;
575+ expect ( $ . datepicker . formatTime ( 'T' , morningHour ) ) . toBe ( 'A' ) ;
576+ expect ( $ . datepicker . formatTime ( 'T' , afternoonHour ) ) . toBe ( 'P' ) ;
577+ } ) ;
578+
579+ it ( 'formats tt correctly' , function ( ) {
580+ expect ( $ . datepicker . formatTime ( 'tt' , emptyTime ) ) . toBe ( 'am' ) ;
581+ expect ( $ . datepicker . formatTime ( 'tt' , morningHour ) ) . toBe ( 'am' ) ;
582+ expect ( $ . datepicker . formatTime ( 'tt' , afternoonHour ) ) . toBe ( 'pm' ) ;
583+ } ) ;
584+
585+ it ( 'formats TT correctly' , function ( ) {
586+ expect ( $ . datepicker . formatTime ( 'TT' , emptyTime ) ) . toBe ( 'AM' ) ;
587+ expect ( $ . datepicker . formatTime ( 'TT' , morningHour ) ) . toBe ( 'AM' ) ;
588+ expect ( $ . datepicker . formatTime ( 'TT' , afternoonHour ) ) . toBe ( 'PM' ) ;
589+ } ) ;
590+ } ) ;
591+
592+ describe ( 'other' , function ( ) {
593+ expect ( $ . datepicker . formatTime ( '' ) ) . toBe ( '' ) ;
594+ expect ( $ . datepicker . formatTime ( "'abc'" ) ) . toBe ( 'abc' ) ;
595+ expect ( $ . datepicker . formatTime ( '"abc"' ) ) . toBe ( '"abc"' ) ;
596+ expect ( $ . datepicker . formatTime ( "'" ) ) . toBe ( "'" ) ;
597+ expect ( $ . datepicker . formatTime ( "''" ) ) . toBe ( "" ) ;
598+ expect ( $ . datepicker . formatTime ( "'abc' h 'def'" ) ) . toBe ( 'abc 12 def' ) ;
599+ } ) ;
600+ } ) ;
601+ } ) ;
602+ } ) ;
464603} ) ;
0 commit comments