Page MenuHomePhabricator

IMipPluginTest.php
No OneTemporary

IMipPluginTest.php

<?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

Mime Type
text/x-php
Expires
Fri, Dec 20, 12:34 PM (4 w, 17 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
905805
Default Alt Text
IMipPluginTest.php (5 KB)

Event Timeline