diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2016-11-09 11:52:40 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@statuscode.ch> | 2016-11-09 11:52:40 +0100 |
commit | 58ca624b62d775436ee8419bc983d904f544cb8d (patch) | |
tree | 624d7339d7d694a8a9d43301c9bc6777186b97e4 /apps | |
parent | 1e6175dfcbb7a0c554fecf62c2d31a422df841e6 (diff) | |
download | nextcloud-server-58ca624b62d775436ee8419bc983d904f544cb8d.tar.gz nextcloud-server-58ca624b62d775436ee8419bc983d904f544cb8d.zip |
Add tests
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dav/tests/unit/CalDAV/PluginTest.php | 60 | ||||
-rw-r--r-- | apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php | 83 |
2 files changed, 143 insertions, 0 deletions
diff --git a/apps/dav/tests/unit/CalDAV/PluginTest.php b/apps/dav/tests/unit/CalDAV/PluginTest.php new file mode 100644 index 00000000000..d0330af402a --- /dev/null +++ b/apps/dav/tests/unit/CalDAV/PluginTest.php @@ -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 index 00000000000..6df8d2da2a2 --- /dev/null +++ b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php @@ -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); + } +} |