diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php index ef0bbe6e27c..2d12de5ea15 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php @@ -331,73 +331,6 @@ class IMipPluginTest extends TestCase { $this->assertEquals('1.0', $message->getScheduleStatus()); } - public function testAttendeeRequest(): void { - $message = new Message(); - $message->method = 'REQUEST'; - $message->sequence = 1; - $message->sender = 'mailto:organizer@example.com'; - $message->senderName = 'The Organizer'; - $message->recipient = 'mailto:attendee@example.com'; - $message->recipientName = 'The Attendee'; - $message->significantChange = true; - $message->message = new VCalendar(); - $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 1]); - $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); - $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); - $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); - $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); - $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); - $this->service->expects(self::once()) - ->method('getCurrentAttendee') - ->with($message) - ->willReturn($message->message->VEVENT); - } - - public function testAttendeeReply(): void { - $message = new Message(); - $message->method = 'REPLY'; - $message->sequence = 2; - $message->sender = 'mailto:attendee@example.com'; - $message->senderName = 'The Attendee'; - $message->recipient = 'mailto:organizer@example.com'; - $message->recipientName = 'The Organizer'; - $message->significantChange = true; - $message->message = new VCalendar(); - $message->message->add('METHOD', 'REPLY'); - $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 2]); - $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); - $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); - $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); - $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); - $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); - $this->service->expects(self::once()) - ->method('getCurrentAttendee') - ->with($message) - ->willReturn($message->message->VEVENT); - } - - public function testAttendeeMismatch(): void { - $message = new Message(); - $message->method = 'REQUEST'; - $message->sequence = 1; - $message->sender = 'mailto:organizer@example.com'; - $message->senderName = 'The Organizer'; - $message->recipient = 'mailto:mismatch@example.com'; - $message->recipientName = 'The Mismatch'; - $message->significantChange = true; - $message->message = new VCalendar(); - $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 1]); - $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); - $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); - $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); - $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); - $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); - $this->service->expects(self::once()) - ->method('getCurrentAttendee') - ->with($message) - ->willReturn(null); - } - public function testParsingRecurrence(): void { $message = new Message(); $message->method = 'REQUEST'; diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php index 14273109826..fd48d04dc8e 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php @@ -41,6 +41,7 @@ use OCP\Security\ISecureRandom; use PHPUnit\Framework\MockObject\MockObject; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\Component\VEvent; +use Sabre\VObject\ITip\Message; use Sabre\VObject\Property\ICalendar\DateTime; use Test\TestCase; @@ -271,4 +272,74 @@ class IMipServiceTest extends TestCase { $occurrence = $this->service->getLastOccurrence($vCalendar); $this->assertEquals(1451606400, $occurrence); } + + public function testGetCurrentAttendeeRequest(): void { + // Construct ITip Message + $message = new Message(); + $message->method = 'REQUEST'; + $message->sequence = 1; + $message->sender = 'mailto:organizer@example.com'; + $message->senderName = 'The Organizer'; + $message->recipient = 'mailto:attendee@example.com'; + $message->recipientName = 'The Attendee'; + $message->significantChange = true; + $message->message = new VCalendar(); + $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 1]); + $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); + $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); + $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); + $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); + $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); + // Test getCurrentAttendee + $result = $this->service->getCurrentAttendee($message); + // Evaluate Result + $this->assertEquals($message->message->VEVENT->ATTENDEE, $result); + } + + public function testGetCurrentAttendeeReply(): void { + // Construct ITip Message + $message = new Message(); + $message->method = 'REPLY'; + $message->sequence = 2; + $message->sender = 'mailto:attendee@example.com'; + $message->senderName = 'The Attendee'; + $message->recipient = 'mailto:organizer@example.com'; + $message->recipientName = 'The Organizer'; + $message->significantChange = true; + $message->message = new VCalendar(); + $message->message->add('METHOD', 'REPLY'); + $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 2]); + $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); + $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); + $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); + $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); + $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); + // Test getCurrentAttendee + $result = $this->service->getCurrentAttendee($message); + // Evaluate Result + $this->assertEquals($message->message->VEVENT->ATTENDEE, $result); + } + + public function testGetCurrentAttendeeMismatch(): void { + // Construct ITip Message + $message = new Message(); + $message->method = 'REQUEST'; + $message->sequence = 1; + $message->sender = 'mailto:organizer@example.com'; + $message->senderName = 'The Organizer'; + $message->recipient = 'mailto:mismatch@example.com'; + $message->recipientName = 'The Mismatch'; + $message->significantChange = true; + $message->message = new VCalendar(); + $message->message->add('VEVENT', ['UID' => '82496785-1915-4604-a5ce-4e2091639c9a', 'SEQUENCE' => 1]); + $message->message->VEVENT->add('SUMMARY', 'Fellowship meeting'); + $message->message->VEVENT->add('DTSTART', (new \DateTime('NOW'))->modify('+1 hour')); + $message->message->VEVENT->add('DTEND', (new \DateTime('NOW'))->modify('+2 hour')); + $message->message->VEVENT->add('ORGANIZER', 'mailto:organizer@example.com', ['CN' => 'The Organizer']); + $message->message->VEVENT->add('ATTENDEE', 'mailto:attendee@example.com', ['CN' => 'The Attendee']); + // Test getCurrentAttendee + $result = $this->service->getCurrentAttendee($message); + // Evaluate Result + $this->assertEquals(null, $result); + } }