Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1816769
IMipPluginTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
5 KB
Subscribers
None
IMipPluginTest.php
View Options
<?php
namespace
Sabre\CalDAV\Schedule
;
use
Sabre\VObject\ITip\Message
;
use
Sabre\VObject\Reader
;
use
Sabre\DAV\Server
;
class
IMipPluginTest
extends
\PHPUnit_Framework_TestCase
{
function
testGetPluginInfo
()
{
$plugin
=
new
IMipPlugin
(
'system@example.com'
);
$this
->
assertEquals
(
'imip'
,
$plugin
->
getPluginInfo
()[
'name'
]
);
}
function
testDeliverReply
()
{
$message
=
new
Message
();
$message
->
sender
=
'mailto:sender@example.org'
;
$message
->
senderName
=
'Sender'
;
$message
->
recipient
=
'mailto:recipient@example.org'
;
$message
->
recipientName
=
'Recipient'
;
$message
->
method
=
'REPLY'
;
$ics
=
<<<ICS
BEGIN:VCALENDAR\r
METHOD:REPLY\r
BEGIN:VEVENT\r
SUMMARY:Birthday party\r
END:VEVENT\r
END:VCALENDAR\r
ICS;
$message
->
message
=
Reader
::
read
(
$ics
);
$result
=
$this
->
schedule
(
$message
);
$expected
=
[
[
'to'
=>
'Recipient <recipient@example.org>'
,
'subject'
=>
'Re: Birthday party'
,
'body'
=>
$ics
,
'headers'
=>
[
'Reply-To: Sender <sender@example.org>'
,
'From: system@example.org'
,
'Content-Type: text/calendar; charset=UTF-8; method=REPLY'
,
'X-Sabre-Version: '
.
\Sabre\DAV\Version
::
VERSION
,
],
]
];
$this
->
assertEquals
(
$expected
,
$result
);
}
function
testDeliverReplyNoMailto
()
{
$message
=
new
Message
();
$message
->
sender
=
'mailto:sender@example.org'
;
$message
->
senderName
=
'Sender'
;
$message
->
recipient
=
'http://example.org/recipient'
;
$message
->
recipientName
=
'Recipient'
;
$message
->
method
=
'REPLY'
;
$ics
=
<<<ICS
BEGIN:VCALENDAR\r
METHOD:REPLY\r
BEGIN:VEVENT\r
SUMMARY:Birthday party\r
END:VEVENT\r
END:VCALENDAR\r
ICS;
$message
->
message
=
Reader
::
read
(
$ics
);
$result
=
$this
->
schedule
(
$message
);
$expected
=
[];
$this
->
assertEquals
(
$expected
,
$result
);
}
function
testDeliverRequest
()
{
$message
=
new
Message
();
$message
->
sender
=
'mailto:sender@example.org'
;
$message
->
senderName
=
'Sender'
;
$message
->
recipient
=
'mailto:recipient@example.org'
;
$message
->
recipientName
=
'Recipient'
;
$message
->
method
=
'REQUEST'
;
$ics
=
<<<ICS
BEGIN:VCALENDAR\r
METHOD:REQUEST\r
BEGIN:VEVENT\r
SUMMARY:Birthday party\r
END:VEVENT\r
END:VCALENDAR\r
ICS;
$message
->
message
=
Reader
::
read
(
$ics
);
$result
=
$this
->
schedule
(
$message
);
$expected
=
[
[
'to'
=>
'Recipient <recipient@example.org>'
,
'subject'
=>
'Birthday party'
,
'body'
=>
$ics
,
'headers'
=>
[
'Reply-To: Sender <sender@example.org>'
,
'From: system@example.org'
,
'Content-Type: text/calendar; charset=UTF-8; method=REQUEST'
,
'X-Sabre-Version: '
.
\Sabre\DAV\Version
::
VERSION
,
],
]
];
$this
->
assertEquals
(
$expected
,
$result
);
}
function
testDeliverCancel
()
{
$message
=
new
Message
();
$message
->
sender
=
'mailto:sender@example.org'
;
$message
->
senderName
=
'Sender'
;
$message
->
recipient
=
'mailto:recipient@example.org'
;
$message
->
recipientName
=
'Recipient'
;
$message
->
method
=
'CANCEL'
;
$ics
=
<<<ICS
BEGIN:VCALENDAR\r
METHOD:CANCEL\r
BEGIN:VEVENT\r
SUMMARY:Birthday party\r
END:VEVENT\r
END:VCALENDAR\r
ICS;
$message
->
message
=
Reader
::
read
(
$ics
);
$result
=
$this
->
schedule
(
$message
);
$expected
=
[
[
'to'
=>
'Recipient <recipient@example.org>'
,
'subject'
=>
'Cancelled: Birthday party'
,
'body'
=>
$ics
,
'headers'
=>
[
'Reply-To: Sender <sender@example.org>'
,
'From: system@example.org'
,
'Content-Type: text/calendar; charset=UTF-8; method=CANCEL'
,
'X-Sabre-Version: '
.
\Sabre\DAV\Version
::
VERSION
,
],
]
];
$this
->
assertEquals
(
$expected
,
$result
);
$this
->
assertEquals
(
'1.1'
,
substr
(
$message
->
scheduleStatus
,
0
,
3
));
}
function
schedule
(
Message
$message
)
{
$plugin
=
new
IMip\MockPlugin
(
'system@example.org'
);
$server
=
new
Server
();
$server
->
addPlugin
(
$plugin
);
$server
->
emit
(
'schedule'
,
[
$message
]);
return
$plugin
->
getSentEmails
();
}
function
testDeliverInsignificantRequest
()
{
$message
=
new
Message
();
$message
->
sender
=
'mailto:sender@example.org'
;
$message
->
senderName
=
'Sender'
;
$message
->
recipient
=
'mailto:recipient@example.org'
;
$message
->
recipientName
=
'Recipient'
;
$message
->
method
=
'REQUEST'
;
$message
->
significantChange
=
false
;
$ics
=
<<<ICS
BEGIN:VCALENDAR\r
METHOD:REQUEST\r
BEGIN:VEVENT\r
SUMMARY:Birthday party\r
END:VEVENT\r
END:VCALENDAR\r
ICS;
$message
->
message
=
Reader
::
read
(
$ics
);
$result
=
$this
->
schedule
(
$message
);
$expected
=
[];
$this
->
assertEquals
(
$expected
,
$result
);
$this
->
assertEquals
(
'1.0'
,
$message
->
getScheduleStatus
()[
0
]);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Fri, Dec 20, 5:07 PM (4 w, 12 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
905805
Default Alt Text
IMipPluginTest.php (5 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment