diff options
Diffstat (limited to 'apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php')
-rw-r--r-- | apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php new file mode 100644 index 00000000000..b6b1e4381b5 --- /dev/null +++ b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php @@ -0,0 +1,56 @@ +<?php + +namespace OCA\DAV\Tests\unit\CalDAV\Publishing; + +use OCA\DAV\CalDAV\Publishing\Xml\Publisher; +use Sabre\Xml\Writer; + +class PublisherTest extends \PHPUnit_Framework_TestCase { + + const NS_CALENDARSERVER = 'http://calendarserver.org/ns/'; + + public function testSerializePublished() { + $publish = new Publisher('urltopublish', true); + + $xml = $this->write([ + '{' . self::NS_CALENDARSERVER . '}publish-url' => $publish, + ]); + + $this->assertEquals('urltopublish', $publish->getValue()); + + $this->assertXmlStringEqualsXmlString( + '<?xml version="1.0"?> + <x1:publish-url xmlns:d="DAV:" xmlns:x1="' . self::NS_CALENDARSERVER . '"> + <d:href>urltopublish</d:href> + </x1:publish-url>', $xml); + } + + public function testSerializeNotPublished() { + $publish = new Publisher('urltopublish', false); + + $xml = $this->write([ + '{' . self::NS_CALENDARSERVER . '}pre-publish-url' => $publish, + ]); + + $this->assertEquals('urltopublish', $publish->getValue()); + + $this->assertXmlStringEqualsXmlString( + '<?xml version="1.0"?> + <x1:pre-publish-url xmlns:d="DAV:" xmlns:x1="' . self::NS_CALENDARSERVER . '">urltopublish</x1:pre-publish-url>', $xml); + } + + + protected $elementMap = []; + protected $namespaceMap = ['DAV:' => 'd']; + protected $contextUri = '/'; + + private function write($input) { + $writer = new Writer(); + $writer->contextUri = $this->contextUri; + $writer->namespaceMap = $this->namespaceMap; + $writer->openMemory(); + $writer->setIndent(true); + $writer->write($input); + return $writer->outputMemory(); + } +} |