diff options
author | Stephen Vance <steve@vance.com> | 2013-07-07 22:21:01 -0400 |
---|---|---|
committer | Stephen Vance <steve@vance.com> | 2013-07-07 22:21:01 -0400 |
commit | 83b68407dccb9df36893df2b05692bda96d79dae (patch) | |
tree | 8d1e60397cc4d303718ef8ee1f301ee71fca9914 | |
parent | 34e2ee285c1d5d79d6be3b85193176b6efd95905 (diff) | |
download | jQuery-Timepicker-Addon-83b68407dccb9df36893df2b05692bda96d79dae.zip jQuery-Timepicker-Addon-83b68407dccb9df36893df2b05692bda96d79dae.tar.gz jQuery-Timepicker-Addon-83b68407dccb9df36893df2b05692bda96d79dae.tar.bz2 |
Start tests for timepicker functions. Test timezoneOffsetNumber() and fix seeming deviation from intent, although not in a likely meaningful way.
-rw-r--r-- | jquery-ui-timepicker-addon.js | 12 | ||||
-rw-r--r-- | test/jquery-ui-timepicker-addon_spec.js | 25 |
2 files changed, 31 insertions, 6 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index 38074f1..eb18303 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -1942,19 +1942,19 @@ * @return {number} */ $.timepicker.timezoneOffsetNumber = function(tzString) { - tzString = tzString.toString().replace(':',''); // excuse any iso8601, end up with "+1245" + var normalized = tzString.toString().replace(':',''); // excuse any iso8601, end up with "+1245" - if(tzString.toUpperCase() === 'Z'){ // if iso8601 with Z, its 0 minute offset + if(normalized.toUpperCase() === 'Z'){ // if iso8601 with Z, its 0 minute offset return 0; } - if(!/^(\-|\+)\d{4}$/.test(tzString)){ // possibly a user defined tz, so just give it back + if(!/^(\-|\+)\d{4}$/.test(normalized)){ // possibly a user defined tz, so just give it back return tzString; } - return ((tzString.substr(0,1) =='-'? -1 : 1) * // plus or minus - ((parseInt(tzString.substr(1,2),10)*60) + // hours (converted to minutes) - parseInt(tzString.substr(3,2),10))); // minutes + return ((normalized.substr(0,1) =='-'? -1 : 1) * // plus or minus + ((parseInt(normalized.substr(1,2),10)*60) + // hours (converted to minutes) + parseInt(normalized.substr(3,2),10))); // minutes }; /** diff --git a/test/jquery-ui-timepicker-addon_spec.js b/test/jquery-ui-timepicker-addon_spec.js index 70f44b2..d2fb99d 100644 --- a/test/jquery-ui-timepicker-addon_spec.js +++ b/test/jquery-ui-timepicker-addon_spec.js @@ -196,4 +196,29 @@ describe('datetimepicker', function() { }); }); }); + + describe('timepicker functions', function() { + describe('timezoneOffsetNumber', function() { + it('returns 0 if the time zone string is iso8601 Zulu', function() { + expect($.timepicker.timezoneOffsetNumber('Z')).toBe(0); + expect($.timepicker.timezoneOffsetNumber('z')).toBe(0); + expect($.timepicker.timezoneOffsetNumber(':Z')).toBe(0); + }); + + it('returns a string that does not match the expected representations', function() { + expect($.timepicker.timezoneOffsetNumber('EDT')).toBe('EDT'); + expect($.timepicker.timezoneOffsetNumber('1234')).toBe('1234'); + expect($.timepicker.timezoneOffsetNumber('+123')).toBe('+123'); + expect($.timepicker.timezoneOffsetNumber('-123')).toBe('-123'); + expect($.timepicker.timezoneOffsetNumber('abc:def')).toBe('abc:def'); + }); + + it('returns the minute offset from a time zone offset string', function() { + expect($.timepicker.timezoneOffsetNumber('-0000')).toBe(0); + expect($.timepicker.timezoneOffsetNumber('+0000')).toBe(0); + expect($.timepicker.timezoneOffsetNumber('-0400')).toBe(-240); + expect($.timepicker.timezoneOffsetNumber('+0400')).toBe(240); + }); + }); + }); });
\ No newline at end of file |