diff options
author | Stephen Vance <steve@vance.com> | 2013-07-28 19:29:19 -0400 |
---|---|---|
committer | Stephen Vance <steve@vance.com> | 2013-07-28 19:29:19 -0400 |
commit | d787f1521311357f67dde0857a3b6ae12ec4f360 (patch) | |
tree | d5a84da0e98099f23b24e4244571036aef0cd50b | |
parent | 83c55c303f82c9a6327226b78eea9e0ce749cf61 (diff) | |
download | jQuery-Timepicker-Addon-d787f1521311357f67dde0857a3b6ae12ec4f360.zip jQuery-Timepicker-Addon-d787f1521311357f67dde0857a3b6ae12ec4f360.tar.gz jQuery-Timepicker-Addon-d787f1521311357f67dde0857a3b6ae12ec4f360.tar.bz2 |
Time zone and literal tests, as well as some additional cases for the timezoneOffsetString() tests based on the timezone work. Changed the default timezone to null and eliminated double quotes from the regexp for literals.
-rw-r--r-- | jquery-ui-timepicker-addon.js | 4 | ||||
-rw-r--r-- | test/jquery-ui-timepicker-addon_spec.js | 54 |
2 files changed, 48 insertions, 10 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index a1b4d8a..f247313 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -1267,7 +1267,7 @@ second: 0, millisec: 0, microsec: 0, - timezone: 0 + timezone: null }, time); var tmptime = format, @@ -1278,7 +1278,7 @@ ampmName = options.pmNames[0]; } - tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|('.*?'|".*?"))/g, function(match) { + tmptime = tmptime.replace(/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g, function(match) { switch (match) { case 'HH': return ('0' + hour).slice(-2); diff --git a/test/jquery-ui-timepicker-addon_spec.js b/test/jquery-ui-timepicker-addon_spec.js index 191db63..b7c7c68 100644 --- a/test/jquery-ui-timepicker-addon_spec.js +++ b/test/jquery-ui-timepicker-addon_spec.js @@ -379,6 +379,14 @@ describe('datetimepicker', function() { expect($.timepicker.timezoneOffsetString(-720, true)).toBe('-12:00'); expect($.timepicker.timezoneOffsetString(840, true)).toBe('+14:00'); }); + + it('handles abnormal values reasonably', function() { + expect($.timepicker.timezoneOffsetString(null, false)).toBe('+0000'); + expect($.timepicker.timezoneOffsetString(null, true)).toBe('Z'); + + expect($.timepicker.timezoneOffsetString(undefined, false)).toBeUndefined(); + expect($.timepicker.timezoneOffsetString(undefined, true)).toBeUndefined(); + }); }); describe('timezoneAdjust', function() { @@ -557,7 +565,31 @@ describe('datetimepicker', function() { }); describe('timezone', function() { - // TODO: Finish + var nullTimezoneTime = {timezone: null}, + noTimezoneTime = emptyTime, + timezoneTime = {timezone: -240}, + noTimezoneOptions = {}, + timezoneOptions = {timezone: 600}; + + it('handles z correctly', function() { + expect($.datepicker.formatTime('z', timezoneTime, noTimezoneOptions)).toBe('-0400'); + expect($.datepicker.formatTime('z', timezoneTime, timezoneOptions)).toBe('-0400'); + + expect($.datepicker.formatTime('z', nullTimezoneTime, timezoneOptions)).toBe('+1000'); + expect($.datepicker.formatTime('z', noTimezoneTime, timezoneOptions)).toBe('+1000'); + expect($.datepicker.formatTime('z', nullTimezoneTime, noTimezoneOptions)).toBe('+0000'); + expect($.datepicker.formatTime('z', noTimezoneTime, noTimezoneOptions)).toBe('+0000'); + }); + + it('handles Z correctly', function() { + expect($.datepicker.formatTime('Z', timezoneTime, noTimezoneOptions)).toBe('-04:00'); + expect($.datepicker.formatTime('Z', timezoneTime, timezoneOptions)).toBe('-04:00'); + + expect($.datepicker.formatTime('Z', nullTimezoneTime, timezoneOptions)).toBe('+10:00'); + expect($.datepicker.formatTime('Z', noTimezoneTime, timezoneOptions)).toBe('+10:00'); + expect($.datepicker.formatTime('Z', nullTimezoneTime, noTimezoneOptions)).toBe('Z'); + expect($.datepicker.formatTime('Z', noTimezoneTime, noTimezoneOptions)).toBe('Z'); + }); }); describe('am/pm', function() { @@ -589,13 +621,19 @@ describe('datetimepicker', function() { }); }); - describe('other', function() { - expect($.datepicker.formatTime('')).toBe(''); - expect($.datepicker.formatTime("'abc'")).toBe('abc'); - expect($.datepicker.formatTime('"abc"')).toBe('"abc"'); - expect($.datepicker.formatTime("'")).toBe("'"); - expect($.datepicker.formatTime("''")).toBe(""); - expect($.datepicker.formatTime("'abc' h 'def'")).toBe('abc 12 def'); + describe('literals', function() { + it('handles literals correctly', function() { + expect($.datepicker.formatTime('', emptyTime)).toBe(''); + expect($.datepicker.formatTime("'abc'", emptyTime)).toBe('abc'); + expect($.datepicker.formatTime("'", emptyTime)).toBe("'"); + expect($.datepicker.formatTime("''", emptyTime)).toBe(""); + expect($.datepicker.formatTime("'abc' h 'def'", emptyTime)).toBe('abc 12 def'); + }); + + it('does not treat double quotes as literals', function() { + expect($.datepicker.formatTime('"ab"', emptyTime)).toBe('"ab"'); + expect($.datepicker.formatTime('"abc"', emptyTime)).toBe('"ab000"'); + }); }); }); }); |