]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/CardDAV/ValidateVCardTest.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / CardDAV / ValidateVCardTest.php
1 <?php
2
3 require_once 'Sabre/CardDAV/Backend/Mock.php';
4 require_once 'Sabre/DAVACL/MockPrincipalBackend.php';
5 require_once 'Sabre/HTTP/ResponseMock.php';
6
7 class Sabre_CardDAV_ValidateVCardTest extends PHPUnit_Framework_TestCase {
8
9     protected $server;
10     protected $cardBackend;
11
12     function setUp() {
13
14         $addressbooks = array(
15             array(
16                 'id' => 'addressbook1',
17                 'principaluri' => 'principals/admin',
18                 'uri' => 'addressbook1',
19             )
20         );
21
22         $this->cardBackend = new Sabre_CardDAV_Backend_Mock($addressbooks,array());
23         $principalBackend = new Sabre_DAVACL_MockPrincipalBackend();
24
25         $tree = array(
26             new Sabre_CardDAV_AddressBookRoot($principalBackend, $this->cardBackend),
27         );
28
29         $this->server = new Sabre_DAV_Server($tree);
30         $this->server->debugExceptions = true;
31
32         $plugin = new Sabre_CardDAV_Plugin();
33         $this->server->addPlugin($plugin);
34
35         $response = new Sabre_HTTP_ResponseMock();
36         $this->server->httpResponse = $response;
37
38     }
39
40     function request(Sabre_HTTP_Request $request) {
41
42         $this->server->httpRequest = $request;
43         $this->server->exec();
44
45         return $this->server->httpResponse;
46
47     }
48
49     function testCreateFile() {
50
51         $request = new Sabre_HTTP_Request(array(
52             'REQUEST_METHOD' => 'PUT',
53             'REQUEST_URI' => '/addressbooks/admin/addressbook1/blabla.vcf',
54         ));
55
56         $response = $this->request($request);
57
58         $this->assertEquals('HTTP/1.1 415 Unsupported Media Type', $response->status);
59
60     }
61
62     function testCreateFileValid() {
63
64         $request = new Sabre_HTTP_Request(array(
65             'REQUEST_METHOD' => 'PUT',
66             'REQUEST_URI' => '/addressbooks/admin/addressbook1/blabla.vcf',
67         ));
68         $request->setBody("BEGIN:VCARD\r\nEND:VCARD\r\n");
69
70         $response = $this->request($request);
71
72         $this->assertEquals('HTTP/1.1 201 Created', $response->status, 'Incorrect status returned! Full response body: ' . $response->body);
73         $expected = array(
74             'uri'          => 'blabla.vcf',
75             'carddata' => "BEGIN:VCARD\r\nEND:VCARD\r\n",
76         );
77
78         $this->assertEquals($expected, $this->cardBackend->getCard('addressbook1','blabla.vcf'));
79
80     }
81
82     function testCreateFileVCalendar() {
83
84         $request = new Sabre_HTTP_Request(array(
85             'REQUEST_METHOD' => 'PUT',
86             'REQUEST_URI' => '/addressbooks/admin/addressbook1/blabla.vcf',
87         ));
88         $request->setBody("BEGIN:VCALENDAR\r\nEND:VCALENDAR\r\n");
89
90         $response = $this->request($request);
91
92         $this->assertEquals('HTTP/1.1 415 Unsupported Media Type', $response->status, 'Incorrect status returned! Full response body: ' . $response->body);
93
94     }
95
96     function testUpdateFile() {
97
98         $this->cardBackend->createCard('addressbook1','blabla.vcf','foo');
99         $request = new Sabre_HTTP_Request(array(
100             'REQUEST_METHOD' => 'PUT',
101             'REQUEST_URI' => '/addressbooks/admin/addressbook1/blabla.vcf',
102         ));
103
104         $response = $this->request($request);
105
106         $this->assertEquals('HTTP/1.1 415 Unsupported Media Type', $response->status);
107
108     }
109
110     function testUpdateFileParsableBody() {
111
112         $this->cardBackend->createCard('addressbook1','blabla.vcf','foo');
113         $request = new Sabre_HTTP_Request(array(
114             'REQUEST_METHOD' => 'PUT',
115             'REQUEST_URI' => '/addressbooks/admin/addressbook1/blabla.vcf',
116         ));
117         $body = "BEGIN:VCARD\r\nEND:VCARD\r\n";
118         $request->setBody($body);
119
120         $response = $this->request($request);
121
122         $this->assertEquals('HTTP/1.1 204 No Content', $response->status);
123
124         $expected = array(
125             'uri'          => 'blabla.vcf',
126             'carddata' => $body,
127         );
128
129         $this->assertEquals($expected, $this->cardBackend->getCard('addressbook1','blabla.vcf'));
130
131     }
132 }
133
134 ?>