]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add tests
authorLukas Reschke <lukas@statuscode.ch>
Wed, 9 Nov 2016 10:52:40 +0000 (11:52 +0100)
committerLukas Reschke <lukas@statuscode.ch>
Wed, 9 Nov 2016 10:52:40 +0000 (11:52 +0100)
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
apps/dav/tests/unit/CalDAV/PluginTest.php [new file with mode: 0644]
apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php [new file with mode: 0644]

diff --git a/apps/dav/tests/unit/CalDAV/PluginTest.php b/apps/dav/tests/unit/CalDAV/PluginTest.php
new file mode 100644 (file)
index 0000000..d0330af
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\Tests\unit\CalDAV;
+
+use OCA\DAV\CalDAV\Plugin;
+use Test\TestCase;
+
+class PluginTest extends TestCase  {
+       /** @var Plugin */
+       private $plugin;
+
+       public function setUp() {
+               parent::setUp();
+
+               $this->plugin = new Plugin();
+       }
+
+       public function linkProvider() {
+               return [
+                       [
+                               'principals/users/MyUserName',
+                               'calendars/MyUserName',
+                       ],
+                       [
+                               'FooFoo',
+                               null,
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider linkProvider
+        *
+        * @param $input
+        * @param $expected
+        */
+       public function testGetCalendarHomeForPrincipal($input, $expected) {
+               $this->assertSame($expected, $this->plugin->getCalendarHomeForPrincipal($input));
+       }
+
+}
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
new file mode 100644 (file)
index 0000000..6df8d2d
--- /dev/null
@@ -0,0 +1,83 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\Tests\unit\CalDAV\Schedule;
+
+use OCA\DAV\CalDAV\Schedule\Plugin;
+use Sabre\DAV\Server;
+use Sabre\DAV\Xml\Property\Href;
+use Test\TestCase;
+
+class PluginTest extends TestCase  {
+       /** @var Plugin */
+       private $plugin;
+       /** @var Server|\PHPUnit_Framework_MockObject_MockObject */
+       private $server;
+
+       public function setUp() {
+               parent::setUp();
+
+               $this->server = $this->createMock(Server::class);
+
+               $this->plugin = new Plugin();
+               $this->plugin->initialize($this->server);
+       }
+
+       public function testGetAddressesForPrincipal() {
+               $href = $this->createMock(Href::class);
+               $href
+                       ->expects($this->once())
+                       ->method('getHrefs')
+                       ->willReturn(['lukas@nextcloud.com', 'rullzer@nextcloud.com']);
+               $this->server
+                       ->expects($this->once())
+                       ->method('getProperties')
+                       ->with(
+                               'MyPrincipal',
+                               [
+                                       '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set',
+                               ]
+                       )
+                       ->willReturn([
+                               '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set' => $href
+                       ]);
+
+               $result = $this->invokePrivate($this->plugin, 'getAddressesForPrincipal', ['MyPrincipal']);
+               $this->assertSame(['lukas@nextcloud.com', 'rullzer@nextcloud.com'], $result);
+       }
+
+
+       public function testGetAddressesForPrincipalEmpty() {
+               $this->server
+                       ->expects($this->once())
+                       ->method('getProperties')
+                       ->with(
+                               'MyPrincipal',
+                               [
+                                       '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set',
+                               ]
+                       )
+                       ->willReturn(null);
+
+               $result = $this->invokePrivate($this->plugin, 'getAddressesForPrincipal', ['MyPrincipal']);
+               $this->assertSame([], $result);
+       }
+}