]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/CalDAV/FreeBusyReportTest.php
Merge branch 'master' of git://github.com/friendica/friendica-addons
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / CalDAV / FreeBusyReportTest.php
1 <?php
2
3 require_once 'Sabre/CalDAV/Backend/Mock.php';
4 require_once 'Sabre/DAVACL/MockPrincipalBackend.php';
5 require_once 'Sabre/HTTP/ResponseMock.php';
6
7 class Sabre_CalDAV_FreeBusyReportTest extends PHPUnit_Framework_TestCase {
8
9     /**
10      * @var Sabre_CalDAV_Plugin
11      */
12     protected $plugin;
13     /**
14      * @var Sabre_DAV_Server
15      */
16     protected $server;
17
18     function setUp() {
19
20         $obj1 = <<<ics
21 BEGIN:VCALENDAR
22 BEGIN:VEVENT
23 DTSTART:20111005T120000Z
24 DURATION:PT1H
25 END:VEVENT
26 END:VCALENDAR
27 ics;
28         $obj2 = fopen('php://memory','r+');
29         fwrite($obj2,<<<ics
30 BEGIN:VCALENDAR
31 BEGIN:VEVENT
32 DTSTART:20121005T120000Z
33 DURATION:PT1H
34 END:VEVENT
35 END:VCALENDAR
36 ics
37         );
38         rewind($obj2);
39
40         $calendarData = array(
41             1 => array(
42                 'obj1' => array(
43                     'calendarid' => 1,
44                     'uri' => 'event1.ics',
45                     'calendardata' => $obj1,
46                  ),
47                 'obj2' => array(
48                     'calendarid' => 1,
49                     'uri' => 'event2.ics',
50                     'calendardata' => $obj2
51                 )
52             ),
53         );
54
55
56         $caldavBackend = new Sabre_CalDAV_Backend_Mock(array(), $calendarData);
57         $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
58
59         $calendar = new Sabre_CalDAV_Calendar($principalBackend,$caldavBackend, array(
60             'id' => 1,
61             'uri' => 'calendar',
62             'principaluri' => 'principals/user1',
63         ));
64
65         $this->server = new Sabre_DAV_Server(array($calendar));
66
67         $request = new Sabre_HTTP_Request(array(
68             'REQUEST_URI' => '/calendar',
69         ));
70         $this->server->httpRequest = $request;
71         $this->server->httpResponse = new Sabre_HTTP_ResponseMock();
72
73         $this->plugin = new Sabre_CalDAV_Plugin();
74         $this->server->addPlugin($this->plugin);
75         $this->server->addPlugin(new Sabre_DAVACL_Plugin());
76
77     }
78
79     function testFreeBusyReport() {
80
81         $reportXML = <<<XML
82 <?xml version="1.0"?>
83 <c:free-busy-query xmlns:c="urn:ietf:params:xml:ns:caldav">
84     <c:time-range start="20111001T000000Z" end="20111101T000000Z" />
85 </c:free-busy-query>
86 XML;
87
88         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($reportXML);
89         $this->plugin->report('{urn:ietf:params:xml:ns:caldav}free-busy-query', $dom);
90
91         $this->assertEquals('HTTP/1.1 200 OK', $this->server->httpResponse->status);
92         $this->assertEquals('text/calendar', $this->server->httpResponse->headers['Content-Type']);
93         $this->assertTrue(strpos($this->server->httpResponse->body,'BEGIN:VFREEBUSY')!==false);
94
95     }
96
97     /**
98      * @expectedException Sabre_DAV_Exception_BadRequest
99      */
100     function testFreeBusyReportNoTimeRange() {
101
102         $reportXML = <<<XML
103 <?xml version="1.0"?>
104 <c:free-busy-query xmlns:c="urn:ietf:params:xml:ns:caldav">
105 </c:free-busy-query>
106 XML;
107
108         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($reportXML);
109         $this->plugin->report('{urn:ietf:params:xml:ns:caldav}free-busy-query', $dom);
110
111     }
112
113     /**
114      * @expectedException Sabre_DAV_Exception_NotImplemented
115      */
116     function testFreeBusyReportWrongNode() {
117
118         $request = new Sabre_HTTP_Request(array(
119             'REQUEST_URI' => '/',
120         ));
121         $this->server->httpRequest = $request;
122
123         $reportXML = <<<XML
124 <?xml version="1.0"?>
125 <c:free-busy-query xmlns:c="urn:ietf:params:xml:ns:caldav">
126     <c:time-range start="20111001T000000Z" end="20111101T000000Z" />
127 </c:free-busy-query>
128 XML;
129
130         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($reportXML);
131         $this->plugin->report('{urn:ietf:params:xml:ns:caldav}free-busy-query', $dom);
132
133     }
134
135     /**
136      * @expectedException Sabre_DAV_Exception
137      */
138     function testFreeBusyReportNoACLPlugin() {
139
140         $this->server = new Sabre_DAV_Server();
141         $this->plugin = new Sabre_CalDAV_Plugin();
142         $this->server->addPlugin($this->plugin);
143
144         $reportXML = <<<XML
145 <?xml version="1.0"?>
146 <c:free-busy-query xmlns:c="urn:ietf:params:xml:ns:caldav">
147     <c:time-range start="20111001T000000Z" end="20111101T000000Z" />
148 </c:free-busy-query>
149 XML;
150
151         $dom = Sabre_DAV_XMLUtil::loadDOMDocument($reportXML);
152         $this->plugin->report('{urn:ietf:params:xml:ns:caldav}free-busy-query', $dom);
153
154     }
155 }