Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1841335
BrokerUpdateEventTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
19 KB
Subscribers
None
BrokerUpdateEventTest.php
View Options
<?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'
);
}
function
testInviteChangeExdateOrder
()
{
$oldMessage
=
<<<ICS
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.10.1//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:foobar
SEQUENCE:0
ORGANIZER;CN=Strunk:mailto:strunk@example.org
ATTENDEE;CN=Strunk;CUTYPE=INDIVIDUAL;EMAIL=strunk@example.org;PARTSTAT=ACCE
PTED:mailto:strunk@example.org
ATTENDEE;CN=One;CUTYPE=INDIVIDUAL;EMAIL=one@example.org;PARTSTAT=ACCEPTED;R
OLE=REQ-PARTICIPANT;SCHEDULE-STATUS="1.2;Message delivered locally":mailto
:one@example.org
SUMMARY:foo
DTSTART:20141211T160000Z
DTEND:20141211T170000Z
RRULE:FREQ=WEEKLY
EXDATE:20141225T160000Z,20150101T160000Z
EXDATE:20150108T160000Z
END:VEVENT
END:VCALENDAR
ICS;
$newMessage
=
<<<ICS
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.10.1//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:foobar
SEQUENCE:1
ORGANIZER;CN=Strunk:mailto:strunk@example.org
ATTENDEE;CN=Strunk;CUTYPE=INDIVIDUAL;EMAIL=strunk@example.org;PARTSTAT=ACCE
PTED:mailto:strunk@example.org
ATTENDEE;CN=One;CUTYPE=INDIVIDUAL;EMAIL=one@example.org;PARTSTAT=ACCEPTED;R
OLE=REQ-PARTICIPANT;SCHEDULE-STATUS=1.2:mailto:one@example.org
DTSTART:20141211T160000Z
DTEND:20141211T170000Z
RRULE:FREQ=WEEKLY
EXDATE:20150101T160000Z
EXDATE:20150108T160000Z,20141225T160000Z
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:1
ORGANIZER;CN=Strunk:mailto:strunk@example.org
ATTENDEE;CN=Strunk;CUTYPE=INDIVIDUAL;EMAIL=strunk@example.org;PARTSTAT=ACCE
PTED:mailto:strunk@example.org
ATTENDEE;CN=One;CUTYPE=INDIVIDUAL;EMAIL=one@example.org;PARTSTAT=ACCEPTED;R
OLE=REQ-PARTICIPANT:mailto:one@example.org
DTSTART:20141211T160000Z
DTEND:20141211T170000Z
RRULE:FREQ=WEEKLY
EXDATE:20150101T160000Z
EXDATE:20150108T160000Z,20141225T160000Z
END:VEVENT
END:VCALENDAR
ICS
),
);
$this
->
parse
(
$oldMessage
,
$newMessage
,
$expected
,
'mailto:strunk@example.org'
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Jan 7, 2:54 PM (2 d, 21 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
916499
Default Alt Text
BrokerUpdateEventTest.php (19 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment