timezone.js
4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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);
});
});