|
@@ -0,0 +1,111 @@
|
|
|
|
|
+describe('removeEventSource', function() {
|
|
|
|
|
+ var options;
|
|
|
|
|
+
|
|
|
|
|
+ beforeEach(function() {
|
|
|
|
|
+ affix('#cal');
|
|
|
|
|
+ options = {
|
|
|
|
|
+ defaultDate: '2014-08-01'
|
|
|
|
|
+ };
|
|
|
|
|
+ $.mockjax({
|
|
|
|
|
+ url: '*',
|
|
|
|
|
+ contentType: 'text/json',
|
|
|
|
|
+ responseText: buildEventArray()
|
|
|
|
|
+ });
|
|
|
|
|
+ $.mockjaxSettings.log = function() { }; // don't console.log
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ afterEach(function() {
|
|
|
|
|
+ $.mockjaxClear();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with a URL', function() {
|
|
|
|
|
+ testInput('/myscript.php'); // will go to mockjax
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with an array', function() {
|
|
|
|
|
+ testInput(buildEventArray());
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with a function', function() {
|
|
|
|
|
+ testInput(function(start, end, timezone, callback) {
|
|
|
|
|
+ callback(buildEventArray());
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with an object+url', function() {
|
|
|
|
|
+ testInput({
|
|
|
|
|
+ url: '/myscript.php' // will go to mockjax
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with an object+array', function() {
|
|
|
|
|
+ testInput({
|
|
|
|
|
+ events: buildEventArray()
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('with an object+function', function() {
|
|
|
|
|
+ testInput({
|
|
|
|
|
+ events: function(start, end, timezone, callback) {
|
|
|
|
|
+ callback(buildEventArray());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ function testInput(eventInput) {
|
|
|
|
|
+
|
|
|
|
|
+ it('correctly removes events provided via `events` at initialization', function(done) {
|
|
|
|
|
+ var callCnt = 0;
|
|
|
|
|
+ options.eventAfterAllRender = function() {
|
|
|
|
|
+ if (!(callCnt++)) { // only the first time
|
|
|
|
|
+ expectEventCnt(2);
|
|
|
|
|
+ $('#cal').fullCalendar('removeEventSource', eventInput);
|
|
|
|
|
+ expectEventCnt(0);
|
|
|
|
|
+ done();
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ options.events = eventInput;
|
|
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('correctly removes events provided via `eventSources` at initialization', function(done) {
|
|
|
|
|
+ var callCnt = 0;
|
|
|
|
|
+ options.eventAfterAllRender = function() {
|
|
|
|
|
+ if (!(callCnt++)) { // only the first time
|
|
|
|
|
+ expectEventCnt(2);
|
|
|
|
|
+ $('#cal').fullCalendar('removeEventSource', eventInput);
|
|
|
|
|
+ expectEventCnt(0);
|
|
|
|
|
+ done();
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ options.eventSources = [ eventInput ];
|
|
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('correctly removes events provided via `addEventSource` method', function(done) {
|
|
|
|
|
+ var callCnt = 0;
|
|
|
|
|
+ options.eventAfterAllRender = function() {
|
|
|
|
|
+ if ((callCnt++) === 1) { // the second time (the first time is upon initial render)
|
|
|
|
|
+ expectEventCnt(2);
|
|
|
|
|
+ $('#cal').fullCalendar('removeEventSource', eventInput);
|
|
|
|
|
+ expectEventCnt(0);
|
|
|
|
|
+ done();
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ $('#cal').fullCalendar(options);
|
|
|
|
|
+ $('#cal').fullCalendar('addEventSource', eventInput);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function buildEventArray() {
|
|
|
|
|
+ return [
|
|
|
|
|
+ { title: 'event1', start: '2014-08-01' },
|
|
|
|
|
+ { title: 'event2', start: '2014-08-02' }
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function expectEventCnt(cnt) {
|
|
|
|
|
+ expect($('.fc-event').length).toBe(cnt);
|
|
|
|
|
+ expect($('#cal').fullCalendar('clientEvents').length).toBe(cnt);
|
|
|
|
|
+ }
|
|
|
|
|
+});
|