summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Vance <steve@vance.com>2013-07-28 19:29:19 -0400
committerStephen Vance <steve@vance.com>2013-07-28 19:29:19 -0400
commitd787f1521311357f67dde0857a3b6ae12ec4f360 (patch)
treed5a84da0e98099f23b24e4244571036aef0cd50b
parent83c55c303f82c9a6327226b78eea9e0ce749cf61 (diff)
downloadjQuery-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.js4
-rw-r--r--test/jquery-ui-timepicker-addon_spec.js54
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"');
+ });
});
});
});