aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php73
1 files changed, 58 insertions, 15 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php
index 71fde719d..82d82fadd 100644
--- a/vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php
+++ b/vendor/sabre/dav/tests/Sabre/CardDAV/VCFExportTest.php
@@ -10,21 +10,21 @@ class VCFExportTest extends \Sabre\DAVServerTest {
protected $autoLogin = 'user1';
protected $setupACL = true;
- protected $carddavAddressBooks = array(
- array(
- 'id' => 'book1',
- 'uri' => 'book1',
+ protected $carddavAddressBooks = [
+ [
+ 'id' => 'book1',
+ 'uri' => 'book1',
'principaluri' => 'principals/user1',
- )
- );
- protected $carddavCards = array(
- 'book1' => array(
+ ]
+ ];
+ protected $carddavCards = [
+ 'book1' => [
"card1" => "BEGIN:VCARD\r\nFN:Person1\r\nEND:VCARD\r\n",
"card2" => "BEGIN:VCARD\r\nFN:Person2\r\nEND:VCARD",
"card3" => "BEGIN:VCARD\r\nFN:Person3\r\nEND:VCARD\r\n",
"card4" => "BEGIN:VCARD\nFN:Person4\nEND:VCARD\n",
- )
- );
+ ]
+ ];
function setUp() {
@@ -50,11 +50,11 @@ class VCFExportTest extends \Sabre\DAVServerTest {
function testExport() {
- $request = HTTP\Sapi::createFromServerArray(array(
- 'REQUEST_URI' => '/addressbooks/user1/book1?export',
- 'QUERY_STRING' => 'export',
+ $request = HTTP\Sapi::createFromServerArray([
+ 'REQUEST_URI' => '/addressbooks/user1/book1?export',
+ 'QUERY_STRING' => 'export',
'REQUEST_METHOD' => 'GET',
- ));
+ ]);
$response = $this->request($request);
$this->assertEquals(200, $response->status, $response->body);
@@ -73,7 +73,7 @@ FN:Person4
END:VCARD
";
// We actually expected windows line endings
- $expected = str_replace("\n","\r\n", $expected);
+ $expected = str_replace("\n", "\r\n", $expected);
$this->assertEquals($expected, $response->body);
@@ -89,4 +89,47 @@ END:VCARD
}
+ function testContentDisposition() {
+
+ $request = new HTTP\Request(
+ 'GET',
+ '/addressbooks/user1/book1?export'
+ );
+
+ $response = $this->request($request, 200);
+ $this->assertEquals('text/directory', $response->getHeader('Content-Type'));
+ $this->assertEquals(
+ 'attachment; filename="book1-' . date('Y-m-d') . '.vcf"',
+ $response->getHeader('Content-Disposition')
+ );
+
+ }
+
+ function testContentDispositionBadChars() {
+
+ $this->carddavBackend->createAddressBook(
+ 'principals/user1',
+ 'book-b_ad"(ch)ars',
+ []
+ );
+ $this->carddavBackend->createCard(
+ 'book-b_ad"(ch)ars',
+ 'card1',
+ "BEGIN:VCARD\r\nFN:Person1\r\nEND:VCARD\r\n"
+ );
+
+ $request = new HTTP\Request(
+ 'GET',
+ '/addressbooks/user1/book-b_ad"(ch)ars?export'
+ );
+
+ $response = $this->request($request, 200);
+ $this->assertEquals('text/directory', $response->getHeader('Content-Type'));
+ $this->assertEquals(
+ 'attachment; filename="book-b_adchars-' . date('Y-m-d') . '.vcf"',
+ $response->getHeader('Content-Disposition')
+ );
+
+ }
+
}