Przeglądaj źródła

Merge branch 'master' of https://github.com/Rouche/fullcalendar

Jean-Francois Larouche 9 lat temu
rodzic
commit
fd8681b7ec
1 zmienionych plików z 81 dodań i 0 usunięć
  1. 81 0
      tests/automated/eventLimit-popoverDestroy.js

+ 81 - 0
tests/automated/eventLimit-popoverDestroy.js

@@ -0,0 +1,81 @@
+
+describe('eventLimit popover', function() {
+
+	var options;
+
+	beforeEach(function() {
+		affix('#cal');
+		options = {
+			defaultView: 'month',
+			defaultDate: '2014-08-01',
+			eventLimit: 3,
+			events: [
+				{ title: 'event1', start: '2014-07-28', end: '2014-07-30', className: 'event1' },
+				{ title: 'event2', start: '2014-07-29', end: '2014-07-31', className: 'event2' },
+				{ title: 'event3', start: '2014-07-29', className: 'event3' },
+				{ title: 'event4', start: '2014-07-29', className: 'event4' }
+			],
+			popoverViewportConstrain: false, // because PhantomJS window is small, don't do smart repositioning
+			handleWindowResize: false // because showing the popover causes scrollbars and fires resize
+		};
+	});
+
+	function init() {
+		$('.fc-more').simulate('click');
+	}
+
+	it('closes when user clicks the X and trigger eventDestroy for every render', function() {
+		var eventsRendered = {};
+		var renderCount = 0;
+		var activated = false;
+		options.eventRender = function(eventObject, element, view) {
+			if (activated) {
+				eventsRendered[eventObject.title] = eventObject;
+				++renderCount;
+			}
+		};
+		options.eventDestroy = function(eventObject, element, view) {
+			delete eventsRendered[eventObject.title];
+			--renderCount;
+		};
+		//Create calendar
+		$('#cal').fullCalendar(options);
+		//Activate flags and pop event limit popover
+		activated = true;
+		$('.fc-more').simulate('click');
+
+		expect($('.fc-more-popover')).toBeVisible();
+		$('.fc-more-popover .fc-close')
+			.simulate('click');
+		expect($('.fc-more-popover')).not.toBeVisible();
+		expect(Object.keys(eventsRendered).length).toEqual(0);
+		expect(renderCount).toEqual(0);
+	});
+
+	it('closes when user clicks outside of the popover and trigger eventDestroy for every render', function() {
+		var eventsRendered = {};
+		var renderCount = 0;
+		var activated = false;
+		options.eventRender = function(eventObject, element, view) {
+			if (activated) {
+				eventsRendered[eventObject.title] = eventObject;
+				++renderCount;
+			}
+		};
+		options.eventDestroy = function(eventObject, element, view) {
+			delete eventsRendered[eventObject.title];
+			--renderCount;
+		};
+		//Create calendar
+		$('#cal').fullCalendar(options);
+		//Activate flags and pop event limit popover
+		activated = true;
+		$('.fc-more').simulate('click');
+
+		expect($('.fc-more-popover')).toBeVisible();
+		$('body').simulate('mousedown').simulate('click');
+		expect($('.fc-more-popover')).not.toBeVisible();
+		expect(Object.keys(eventsRendered).length).toEqual(0);
+		expect(renderCount).toEqual(0);
+	});
+});