Mercurial > hg > rc1
view vendor/sabre/vobject/tests/VObject/ITip/BrokerUpdateEventTest.php @ 7:430dbd5346f7
vendor sabre as distributed
author | Charlie Root |
---|---|
date | Sat, 13 Jan 2018 09:06:10 -0500 |
parents | |
children |
line wrap: on
line source
<?php namespace Sabre\VObject\ITip; class BrokerUpdateTest extends BrokerTester { function testInviteChange() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 SUMMARY:foo ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org ATTENDEE;CN=Two:mailto:two@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two:mailto:two@example.org ATTENDEE;CN=Three:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'CANCEL', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:CANCEL BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo DTSTART:20140716T120000Z ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org END:VEVENT END:VCALENDAR ICS ), array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:two@example.org', 'recipientName' => 'Two', 'significantChange' => false, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org ATTENDEE;CN=Three;PARTSTAT=NEEDS-ACTION:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:three@example.org', 'recipientName' => 'Three', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org ATTENDEE;CN=Three;PARTSTAT=NEEDS-ACTION:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testInviteChangeFromNonSchedulingToSchedulingObject() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testInviteChangeFromSchedulingToNonSchedulingObject() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'CANCEL', 'component' => 'VEVENT', 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:CANCEL BEGIN:VEVENT UID:foobar SEQUENCE:1 DTSTART:20140716T120000Z ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testNoAttendees() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array(); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testRemoveInstance() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART;TZID=America/Toronto:20140716T120000 RRULE:FREQ=WEEKLY END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART;TZID=America/Toronto:20140716T120000 RRULE:FREQ=WEEKLY EXDATE;TZID=America/Toronto:20140724T120000 END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org DTSTART;TZID=America/Toronto:20140716T120000 RRULE:FREQ=WEEKLY EXDATE;TZID=America/Toronto:20140724T120000 END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } /** * This test is identical to the first test, except this time we change the * DURATION property. * * This should ensure that the message is significant for every attendee, */ function testInviteChangeSignificantChange() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar DURATION:PT1H SEQUENCE:1 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org ATTENDEE;CN=Two:mailto:two@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar DURATION:PT2H SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two:mailto:two@example.org ATTENDEE;CN=Three:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'CANCEL', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:CANCEL BEGIN:VEVENT UID:foobar SEQUENCE:2 DTSTART:20140716T120000Z ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org END:VEVENT END:VCALENDAR ICS ), array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:two@example.org', 'recipientName' => 'Two', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar DURATION:PT2H SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org ATTENDEE;CN=Three;PARTSTAT=NEEDS-ACTION:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:three@example.org', 'recipientName' => 'Three', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar DURATION:PT2H SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org ATTENDEE;CN=Three;PARTSTAT=NEEDS-ACTION:mailto:three@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testInviteNoChange() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'significantChange' => false, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testInviteNoChangeForceSend() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;SCHEDULE-FORCE-SEND=REQUEST;CN=One:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'REQUEST', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT UID:foobar SEQUENCE:2 ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk;PARTSTAT=ACCEPTED:mailto:strunk@example.org ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS ), ); $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } function testInviteRemoveAttendees() { $oldMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:1 SUMMARY:foo ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org ATTENDEE;CN=Two:mailto:two@example.org DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $newMessage = <<<ICS BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo DTSTART:20140716T120000Z END:VEVENT END:VCALENDAR ICS; $version = \Sabre\VObject\Version::VERSION; $expected = array( array( 'uid' => 'foobar', 'method' => 'CANCEL', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:one@example.org', 'recipientName' => 'One', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:CANCEL BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo DTSTART:20140716T120000Z ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=One:mailto:one@example.org END:VEVENT END:VCALENDAR ICS ), array( 'uid' => 'foobar', 'method' => 'CANCEL', 'component' => 'VEVENT', 'sender' => 'mailto:strunk@example.org', 'senderName' => 'Strunk', 'recipient' => 'mailto:two@example.org', 'recipientName' => 'Two', 'significantChange' => true, 'message' => <<<ICS BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Sabre//Sabre VObject $version//EN CALSCALE:GREGORIAN METHOD:CANCEL BEGIN:VEVENT UID:foobar SEQUENCE:2 SUMMARY:foo DTSTART:20140716T120000Z ORGANIZER;CN=Strunk:mailto:strunk@example.org ATTENDEE;CN=Two:mailto:two@example.org END:VEVENT END:VCALENDAR ICS ), ); $result = $this->parse($oldMessage, $newMessage, $expected, 'mailto:strunk@example.org'); } }