mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-07-07 00:05:49 +08:00
114 lines
4.3 KiB
JavaScript
114 lines
4.3 KiB
JavaScript
|
|
describe('timezone', function() {
|
|
|
|
// NOTE: Only deals with the processing of *received* events.
|
|
// Verification of a correct AJAX *request* is done in events-json-feed.js
|
|
|
|
var options;
|
|
|
|
beforeEach(function() {
|
|
affix('#cal');
|
|
options = {
|
|
defaultView: 'month',
|
|
defaultDate: '2014-05-01',
|
|
events: [
|
|
{
|
|
id: '1',
|
|
title: 'all day event',
|
|
start: '2014-05-02'
|
|
},
|
|
{
|
|
id: '2',
|
|
title: 'timed event',
|
|
start: '2014-05-10T12:00:00'
|
|
},
|
|
{
|
|
id: '3',
|
|
title: 'timed and zoned event',
|
|
start: '2014-05-10T14:00:00+11:00'
|
|
}
|
|
]
|
|
};
|
|
});
|
|
|
|
it('receives events correctly when no timezone', function(done) {
|
|
options.eventAfterAllRender = function() {
|
|
var allDayEvent = $('#cal').fullCalendar('clientEvents', '1')[0];
|
|
var timedEvent = $('#cal').fullCalendar('clientEvents', '2')[0];
|
|
var zonedEvent = $('#cal').fullCalendar('clientEvents', '3')[0];
|
|
expect(allDayEvent.start.hasZone()).toEqual(false);
|
|
expect(allDayEvent.start.hasTime()).toEqual(false);
|
|
expect(allDayEvent.start.format()).toEqual('2014-05-02');
|
|
expect(timedEvent.start.hasZone()).toEqual(false);
|
|
expect(timedEvent.start.hasTime()).toEqual(true);
|
|
expect(timedEvent.start.format()).toEqual('2014-05-10T12:00:00');
|
|
expect(zonedEvent.start.hasZone()).toEqual(true);
|
|
expect(zonedEvent.start.hasTime()).toEqual(true);
|
|
expect(zonedEvent.start.format()).toEqual('2014-05-10T14:00:00+11:00');
|
|
done();
|
|
};
|
|
$('#cal').fullCalendar(options);
|
|
});
|
|
|
|
it('receives events correctly when local timezone', function(done) {
|
|
options.timezone = 'local';
|
|
options.eventAfterAllRender = function() {
|
|
var allDayEvent = $('#cal').fullCalendar('clientEvents', '1')[0];
|
|
var timedEvent = $('#cal').fullCalendar('clientEvents', '2')[0];
|
|
var zonedEvent = $('#cal').fullCalendar('clientEvents', '3')[0];
|
|
expect(allDayEvent.start.hasZone()).toEqual(false);
|
|
expect(allDayEvent.start.hasTime()).toEqual(false);
|
|
expect(allDayEvent.start.format()).toEqual('2014-05-02');
|
|
expect(timedEvent.start.hasZone()).toEqual(true);
|
|
expect(timedEvent.start.hasTime()).toEqual(true);
|
|
expect(timedEvent.start.zone()).toEqual(new Date(2014, 4, 10, 12).getTimezoneOffset());
|
|
expect(zonedEvent.start.hasZone()).toEqual(true);
|
|
expect(zonedEvent.start.hasTime()).toEqual(true);
|
|
expect(zonedEvent.start.zone()).toEqual(new Date('Sat May 10 2014 14:00:00 GMT+1100').getTimezoneOffset());
|
|
done();
|
|
};
|
|
$('#cal').fullCalendar(options);
|
|
});
|
|
|
|
it('receives events correctly when UTC timezone', function(done) {
|
|
options.timezone = 'UTC';
|
|
options.eventAfterAllRender = function() {
|
|
var allDayEvent = $('#cal').fullCalendar('clientEvents', '1')[0];
|
|
var timedEvent = $('#cal').fullCalendar('clientEvents', '2')[0];
|
|
var zonedEvent = $('#cal').fullCalendar('clientEvents', '3')[0];
|
|
expect(allDayEvent.start.hasZone()).toEqual(false);
|
|
expect(allDayEvent.start.hasTime()).toEqual(false);
|
|
expect(allDayEvent.start.format()).toEqual('2014-05-02');
|
|
expect(timedEvent.start.hasZone()).toEqual(true);
|
|
expect(timedEvent.start.hasTime()).toEqual(true);
|
|
expect(timedEvent.start.format()).toEqual('2014-05-10T12:00:00+00:00');
|
|
expect(zonedEvent.start.hasZone()).toEqual(true);
|
|
expect(zonedEvent.start.hasTime()).toEqual(true);
|
|
expect(zonedEvent.start.format()).toEqual('2014-05-10T03:00:00+00:00');
|
|
done();
|
|
};
|
|
$('#cal').fullCalendar(options);
|
|
});
|
|
|
|
it('receives events correctly when custom timezone', function(done) {
|
|
options.timezone = 'America/Chicago';
|
|
options.eventAfterAllRender = function() {
|
|
var allDayEvent = $('#cal').fullCalendar('clientEvents', '1')[0];
|
|
var timedEvent = $('#cal').fullCalendar('clientEvents', '2')[0];
|
|
var zonedEvent = $('#cal').fullCalendar('clientEvents', '3')[0];
|
|
expect(allDayEvent.start.hasZone()).toEqual(false);
|
|
expect(allDayEvent.start.hasTime()).toEqual(false);
|
|
expect(allDayEvent.start.format()).toEqual('2014-05-02');
|
|
expect(timedEvent.start.hasZone()).toEqual(false);
|
|
expect(timedEvent.start.hasTime()).toEqual(true);
|
|
expect(timedEvent.start.format()).toEqual('2014-05-10T12:00:00');
|
|
expect(zonedEvent.start.hasZone()).toEqual(true);
|
|
expect(zonedEvent.start.hasTime()).toEqual(true);
|
|
expect(zonedEvent.start.format()).toEqual('2014-05-10T14:00:00+11:00');
|
|
done();
|
|
};
|
|
$('#cal').fullCalendar(options);
|
|
});
|
|
|
|
});
|