addEventSource.js
2.33 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
describe('addEventSource', function() {
var options;
var eventArray = [
{ id: 0, title: 'event zero', start: '2014-06-24', className: 'event-zero' },
{ id: 1, title: 'event one', start: '2014-06-24', className: 'event-non-zero event-one' },
{ id: 2, title: 'event two', start: '2014-06-24', className: 'event-non-zero event-two' }
];
beforeEach(function() {
affix('#cal');
options = {
defaultDate: '2014-06-24',
defaultView: 'month'
};
});
it('correctly adds an array source', function(done) {
go(
function() {
$('#cal').fullCalendar('addEventSource', eventArray);
},
null,
done
);
});
it('correctly adds a function source', function(done) {
go(
function() {
$('#cal').fullCalendar('addEventSource', function(start, end, timezone, callback) {
callback(eventArray);
});
},
null,
done
);
});
it('correctly adds an extended array source', function(done) {
go(
function() {
$('#cal').fullCalendar('addEventSource', {
className: 'arraysource',
events: eventArray
});
},
function() {
expect($('.arraysource').length).toEqual(3);
},
done
);
});
it('correctly adds an extended array source', function(done) {
go(
function() {
$('#cal').fullCalendar('addEventSource', {
className: 'funcsource',
events: function(start, end, timezone, callback) {
callback(eventArray);
}
});
},
function() {
expect($('.funcsource').length).toEqual(3);
},
done
);
});
function go(addFunc, extraTestFunc, doneFunc) {
var callCnt = 0;
options.eventAfterAllRender = function() {
callCnt++;
if (callCnt == 2) { // once for initial render. second time for addEventSource
called = true;
checkAllEvents();
if (extraTestFunc) {
extraTestFunc();
}
// move the calendar back out of view, then back in (for issue 2191)
$('#cal').fullCalendar('next');
$('#cal').fullCalendar('prev');
checkAllEvents();
if (extraTestFunc) {
extraTestFunc();
}
doneFunc();
}
};
$('#cal').fullCalendar(options);
addFunc();
}
// Checks to make sure all events have been rendered and that the calendar
// has internal info on all the events.
function checkAllEvents() {
expect($('#cal').fullCalendar('clientEvents').length).toEqual(3);
expect($('.fc-event').length).toEqual(3);
}
});