8require_once
'Sabre/CardDAV/AbstractPluginTest.php';
9require_once
'Sabre/HTTP/ResponseMock.php';
17 '/addressbooks/user1/book1',
23<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
28 <c:prop-filter name="uid" />
30</c:addressbook-query>'
35 $this->server->httpRequest =
$request;
38 $this->server->exec();
40 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
48 '/addressbooks/user1/book1/card1' => [
50 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD") .
'"',
53 '/addressbooks/user1/book1/card2' => [
55 '{DAV:}getetag' =>
null,
67 '/addressbooks/user1/book1/card1',
73<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
78 <c:prop-filter name="uid" />
80</c:addressbook-query>'
85 $this->server->httpRequest =
$request;
88 $this->server->exec();
90 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
98 '/addressbooks/user1/book1/card1' => [
100 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD") .
'"',
112 '/addressbooks/user1/book1',
117'<?xml version="1.0"?>
118<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
123 <c:prop-filter name="email" />
125</c:addressbook-query>'
130 $this->server->httpRequest =
$request;
133 $this->server->exec();
135 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
142 $this->assertEquals([],
$result);
149 'REQUEST_METHOD' =>
'REPORT',
150 'REQUEST_URI' =>
'/addressbooks/user1/book1',
155'<?xml version="1.0"?>
156<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
161 <c:prop-filter name="uid" />
163 <c:limit><c:nresults>1</c:nresults></c:limit>
164</c:addressbook-query>'
169 $this->server->httpRequest =
$request;
172 $this->server->exec();
174 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
181 $this->assertEquals([
182 '/addressbooks/user1/book1/card1' => [
184 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD") .
'"',
196 '/addressbooks/user1/book1/card1',
201'<?xml version="1.0"?>
202<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
204 <c:address-data content-type="application/vcard+json" />
207</c:addressbook-query>'
212 $this->server->httpRequest =
$request;
215 $this->server->exec();
217 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
226 $this->assertEquals([
227 '/addressbooks/user1/book1/card1' => [
229 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD") .
'"',
230 '{urn:ietf:params:xml:ns:carddav}address-data' =>
'["vcard",[["version",{},"text","4.0"],["prodid",{},"text","-\/\/Sabre\/\/Sabre VObject ' . $vobjVersion .
'\/\/EN"],["uid",{},"text","12345"]]]',
241 '/addressbooks/user1/book1/card1',
246'<?xml version="1.0"?>
247<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
249 <c:address-data content-type="text/vcard" version="4.0" />
252</c:addressbook-query>'
257 $this->server->httpRequest =
$request;
260 $this->server->exec();
262 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
271 $this->assertEquals([
272 '/addressbooks/user1/book1/card1' => [
274 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD") .
'"',
275 '{urn:ietf:params:xml:ns:carddav}address-data' =>
"BEGIN:VCARD\r\nVERSION:4.0\r\nPRODID:-//Sabre//Sabre VObject $vobjVersion//EN\r\nUID:12345\r\nEND:VCARD\r\n",
286 '/addressbooks/user1/book1',
291 '<?xml version="1.0"?>
292<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
294 <c:address-data content-type="application/vcard+json" />
297</c:addressbook-query>'
302 $this->server->httpRequest =
$request;
305 $this->server->exec();
307 $this->assertEquals(415,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
314 '/addressbooks/user1/book3',
319 '<?xml version="1.0"?>
320<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav">
324 <c:prop name="BDAY"/>
328</c:addressbook-query>'
333 $this->server->httpRequest =
$request;
336 $this->server->exec();
338 $this->assertEquals(207,
$response->status,
'Incorrect status code. Full response body:' .
$response->body);
345 $this->assertEquals([
346 '/addressbooks/user1/book3/card3' => [
348 '{DAV:}getetag' =>
'"' . md5(
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nFN:Test-Card\nEMAIL;TYPE=home:bar@example.org\nEND:VCARD") .
'"',
349 '{urn:ietf:params:xml:ns:carddav}address-data' =>
"BEGIN:VCARD\r\nVERSION:3.0\r\nUID:12345\r\nFN:Test-Card\r\nEND:VCARD\r\n",
foreach($paths as $path) $request
An exception for terminatinating execution or to throw for unit testing.
testAddressBookProperties()
static createFromServerArray(array $serverArray)
This static method will create a new Request object, based on a PHP $_SERVER array.
const VERSION
Full version number.
if($_SERVER['argc']< 4) $client