summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jquery-ui-timepicker-addon.js12
-rw-r--r--test/jquery-ui-timepicker-addon_spec.js25
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