mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-06-29 16:30:15 +08:00
108 lines
2.3 KiB
JavaScript
108 lines
2.3 KiB
JavaScript
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);
|
|
}
|
|
|
|
}); |