From 0845f13327f6f0cedfa747ef68aff38e152d501d Mon Sep 17 00:00:00 2001 From: Jean Raby Date: Wed, 20 Jun 2012 20:34:28 +0000 Subject: [PATCH] Remove duplicated test. Add a new test for bug #1837: This tries to have the same behavior as iCal 1. create an event, add an attendee and add the organizer as an attendee 2. SOGo should remove the organizer from the attendee list Monotone-Parent: b532b841f572a64aa9b471da32a51bb939539334 Monotone-Revision: 30b555a484fd45f63e941b88e3afc1f2784480da Monotone-Author: jraby@inverse.ca Monotone-Date: 2012-06-20T20:34:28 --- Tests/Integration/test-caldav-scheduling.py | 87 ++++++++++++--------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/Tests/Integration/test-caldav-scheduling.py b/Tests/Integration/test-caldav-scheduling.py index 4e6a4a268..c9756460c 100755 --- a/Tests/Integration/test-caldav-scheduling.py +++ b/Tests/Integration/test-caldav-scheduling.py @@ -160,6 +160,14 @@ class CalDAVSchedulingTest(unittest.TestCase): "%stest-rrule-invitation-deleted-exdate-dance.ics" % self.user_calendar, None) self._deleteEvent(self.attendee1_client, "%stest-rrule-invitation-deleted-exdate-dance.ics" % self.attendee1_calendar, None) + self._deleteEvent(self.client, + "%stest-organizer-is-attendee.ics" % self.user_calendar, None) + self._deleteEvent(self.attendee1_client, + "%stest-organizer-is-attendee.ics" % self.attendee1_calendar, None) + self._deleteEvent(self.client, + "%stest-remove-attendee.ics" % self.user_calendar, None) + self._deleteEvent(self.attendee1_client, + "%stest-remove-attendee.ics" % self.attendee1_calendar, None) def _newEvent(self, summary="test event", uid="test", transp=0): transparency = ("OPAQUE", "TRANSPARENT") @@ -268,7 +276,7 @@ class CalDAVSchedulingTest(unittest.TestCase): """ add attendee after event creation """ # make sure the event doesn't exist - ics_name = "test-add-attendee.ics" + ics_name = "test-add-attendee.ics" self._deleteEvent(self.client, "%s%s" % (self.user_calendar,ics_name), None) self._deleteEvent(self.attendee1_client, @@ -346,40 +354,6 @@ class CalDAVSchedulingTest(unittest.TestCase): # 6. verify that the attendee doesn't have the event anymore attendee_event = self._getEvent(self.attendee1_client, "%s%s" % (self.attendee1_calendar, ics_name), 404) - def testAddAttendee(self): - """ add attendee after event creation """ - - # make sure the event doesn't exist - ics_name = "test-add-attendee.ics" - self._deleteEvent(self.client, - "%s%s" % (self.user_calendar,ics_name), None) - self._deleteEvent(self.client, - "%s%s" % (self.attendee1_calendar,ics_name), None) - - # 1. create an event in the organiser's calendar - event = self._newEvent(summary="Test add attendee", uid="Test add attendee") - organizer = event.vevent.add('organizer') - organizer.cn_param = self.user_name - organizer.value = self.user_email - self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event) - - # 2. add an attendee - attendee = event.vevent.add('attendee') - attendee.cn_param = self.attendee1_name - attendee.rsvp_param = "TRUE" - attendee.partstat_param = "NEEDS-ACTION" - attendee.value = self.attendee1_email - self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event, - exp_status=204) - - - # 3. verify that the attendee has the event - attendee_event = self._getEvent(self.attendee1_client, "%s%s" % (self.attendee1_calendar, ics_name)) - - # 4. make sure the received event match the original one - # XXX is this enough? - self.assertEquals(event.vevent.uid, attendee_event.vevent.uid) - def testResourceNoOverbook(self): """ try to overbook a resource """ @@ -663,6 +637,49 @@ class CalDAVSchedulingTest(unittest.TestCase): self.assertEqual(org_ev_master.attendee.partstat_param, "NEEDS-ACTION"); self.assertEqual(org_ev_exception.attendee.partstat_param, "DECLINED"); + def testOrganizerIsAttendee(self): + """ iCal organizer is attendee - bug #1837 """ + + # This tries to have the same behavior as iCal + # 1. create an event, add an attendee and add the organizer as an attendee + # 2. SOGo should remove the organizer from the attendee list + ics_name = "test-organizer-is-attendee.ics" + self._deleteEvent(self.client, + "%s%s" % (self.user_calendar, ics_name), None) + self._deleteEvent(self.attendee1_client, + "%s%s" % (self.attendee1_calendar, ics_name), None) + + # 1. create a recurring event in the organiser's calendar + summary="org is attendee" + uid=summary + event = self._newEvent(summary, uid) + organizer = event.vevent.add('organizer') + organizer.cn_param = self.user_name + organizer.partstat_param = "ACCEPTED" + organizer.value = self.user_email + attendee = event.vevent.add('attendee') + attendee.cn_param = self.attendee1_name + attendee.rsvp_param = "TRUE" + attendee.role_param = "REQ-PARTICIPANT" + attendee.partstat_param = "NEEDS-ACTION" + attendee.value = self.attendee1_email + + # 1.1 add the organizer as an attendee + attendee = event.vevent.add('attendee') + attendee.cn_param = self.user_name + attendee.rsvp_param = "TRUE" + attendee.role_param = "REQ-PARTICIPANT" + attendee.partstat_param = "ACCEPTED" + attendee.value = self.user_email + + self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event) + + # 2. Fetch the event and make sure the organizer is not in the attendee list anymore + org_ev = self._getEvent(self.client, "%s%s" % (self.user_calendar, ics_name)) + + for attendee in org_ev.vevent.attendee_list: + self.assertNotEqual(self.user_email, attendee.value) + def testInvitationDelegation(self): """ invitation delegation """