Skip to content

Commit 34e2ee2

Browse files
committed
Write tests for selectLocalTimezone and do some minor simplification.
1 parent f018316 commit 34e2ee2

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

jquery-ui-timepicker-addon.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1903,8 +1903,8 @@
19031903
*/
19041904
var selectLocalTimezone = function(tp_inst, date) {
19051905
if (tp_inst && tp_inst.timezone_select) {
1906-
var now = typeof date !== 'undefined' ? date : new Date();
1907-
tp_inst.timezone_select.val(now.getTimezoneOffset()*-1);
1906+
var now = date || new Date();
1907+
tp_inst.timezone_select.val(-now.getTimezoneOffset());
19081908
}
19091909
};
19101910

@@ -2112,7 +2112,8 @@
21122112
_extendRemove: extendRemove,
21132113
_isEmptyObject: isEmptyObject,
21142114
_convert24to12: convert24to12,
2115-
_detectSupport: detectSupport
2115+
_detectSupport: detectSupport,
2116+
_selectLocalTimezone: selectLocalTimezone
21162117
};
21172118

21182119
/*

test/jquery-ui-timepicker-addon_spec.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,5 +152,48 @@ describe('datetimepicker', function() {
152152
expect(util._detectSupport('acdf').iso8601).toBe(false);
153153
});
154154
});
155+
156+
describe('selectLocalTimezone', function() {
157+
var timepicker,
158+
timezoneOffset,
159+
defaultTimezoneOffset;
160+
161+
beforeEach(function() {
162+
timepicker = {
163+
timezone_select: affix('select')
164+
};
165+
var now = new Date();
166+
timezoneOffset = String(-now.getTimezoneOffset());
167+
defaultTimezoneOffset = String(timezoneOffset - 60);
168+
timepicker.timezone_select.affix('option').text(defaultTimezoneOffset);
169+
timepicker.timezone_select.affix('option').text(timezoneOffset);
170+
timepicker.timezone_select.affix('option').text(timezoneOffset + 60);
171+
172+
});
173+
174+
it('should do nothing for a falsey timepicker', function() {
175+
util._selectLocalTimezone(undefined);
176+
177+
expect(timepicker.timezone_select.val()).toBe(defaultTimezoneOffset);
178+
});
179+
180+
it('should do nothing for a timepicker with a falsey timezone_select', function() {
181+
util._selectLocalTimezone({});
182+
183+
expect(timepicker.timezone_select.val()).toBe(defaultTimezoneOffset);
184+
});
185+
186+
it('should select the current timezone with a valid timezone_select and no date', function() {
187+
util._selectLocalTimezone(timepicker);
188+
189+
expect(timepicker.timezone_select.val()).toBe(timezoneOffset);
190+
});
191+
192+
it('should select the current timezone with a valid timezone_select and a date', function() {
193+
util._selectLocalTimezone(timepicker, new Date());
194+
195+
expect(timepicker.timezone_select.val()).toBe(timezoneOffset);
196+
});
197+
});
155198
});
156199
});

0 commit comments

Comments
 (0)