summaryrefslogtreecommitdiffstats
path: root/apps/dav/tests
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2017-03-21 23:10:39 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2017-03-29 00:04:29 +0200
commit3e93f491f260b79987d90b5123f07d1a7d1298cd (patch)
tree611e4988de81e7bdb389f0d17f6a6674f4e49506 /apps/dav/tests
parent73007255ceac2364f8563c84d6b46e113ff44d82 (diff)
downloadnextcloud-server-3e93f491f260b79987d90b5123f07d1a7d1298cd.tar.gz
nextcloud-server-3e93f491f260b79987d90b5123f07d1a7d1298cd.zip
Adding AvatarHomeTest
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'apps/dav/tests')
-rw-r--r--apps/dav/tests/unit/Avatars/AvatarHomeTest.php125
-rw-r--r--apps/dav/tests/unit/phpunit.xml4
2 files changed, 127 insertions, 2 deletions
diff --git a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
new file mode 100644
index 00000000000..ca8306e79a8
--- /dev/null
+++ b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
@@ -0,0 +1,125 @@
+<?php
+/**
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2017, ownCloud GmbH
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+
+namespace OCA\DAV\Tests\Unit\Avatars;
+
+
+use OCA\DAV\Avatars\AvatarHome;
+use OCA\DAV\Avatars\AvatarNode;
+use OCP\IAvatar;
+use OCP\IAvatarManager;
+use Sabre\DAV\Exception\MethodNotAllowed;
+use Sabre\DAV\Exception\NotFound;
+use Test\TestCase;
+
+class AvatarHomeTest extends TestCase {
+
+ /** @var AvatarHome */
+ private $home;
+
+ /** @var IAvatarManager | \PHPUnit_Framework_MockObject_MockObject */
+ private $avatarManager;
+
+ public function setUp() {
+ $this->avatarManager = $this->createMock(IAvatarManager::class);
+ $this->home = new AvatarHome(['uri' => 'principals/users/admin'], $this->avatarManager);
+ }
+
+ /**
+ * @expectedException \Sabre\DAV\Exception\Forbidden
+ * @dataProvider providesForbiddenMethods
+ */
+ public function testForbiddenMethods($method) {
+ $this->home->$method('');
+ }
+
+ public function providesForbiddenMethods() {
+ return [
+ ['createFile'],
+ ['createDirectory'],
+ ['delete'],
+ ['setName']
+ ];
+ }
+
+ public function testGetName() {
+ $n = $this->home->getName();
+ self::assertEquals('admin', $n);
+ }
+
+ public function providesTestGetChild() {
+ return [
+ [MethodNotAllowed::class, false, ''],
+ [MethodNotAllowed::class, false, 'bla.foo'],
+ [MethodNotAllowed::class, false, 'bla.png'],
+ [NotFound::class, false, '512.png'],
+ [null, true, '512.png'],
+ ];
+ }
+
+ /**
+ * @dataProvider providesTestGetChild
+ */
+ public function testGetChild($expectedException, $hasAvatar, $path) {
+ if ($expectedException !== null) {
+ $this->expectException($expectedException);
+ }
+ $avatar = null;
+ if ($hasAvatar) {
+ $avatar = $this->createMock(IAvatar::class);
+ $avatar->expects($this->once())->method('exists')->willReturn(true);
+ }
+ $this->avatarManager->expects($this->any())->method('getAvatar')->with('admin')->willReturn($avatar);
+ $avatarNode = $this->home->getChild($path);
+ $this->assertInstanceOf(AvatarNode::class, $avatarNode);
+ }
+
+ public function testGetChildren() {
+ $avatarNodes = $this->home->getChildren();
+ self::assertEquals(0, count($avatarNodes));
+
+ $avatar = $this->createMock(IAvatar::class);
+ $avatar->expects($this->once())->method('exists')->willReturn(true);
+ $this->avatarManager->expects($this->any())->method('getAvatar')->with('admin')->willReturn($avatar);
+ $avatarNodes = $this->home->getChildren();
+ self::assertEquals(1, count($avatarNodes));
+ }
+
+ /**
+ * @dataProvider providesTestGetChild
+ */
+ public function testChildExists($expectedException, $hasAvatar, $path) {
+ $avatar = null;
+ if ($hasAvatar) {
+ $avatar = $this->createMock(IAvatar::class);
+ $avatar->expects($this->once())->method('exists')->willReturn(true);
+ }
+ $this->avatarManager->expects($this->any())->method('getAvatar')->with('admin')->willReturn($avatar);
+ $childExists = $this->home->childExists($path);
+ $this->assertEquals($hasAvatar, $childExists);
+ }
+
+ public function testGetLastModified() {
+ self::assertNull($this->home->getLastModified());
+ }
+
+}
diff --git a/apps/dav/tests/unit/phpunit.xml b/apps/dav/tests/unit/phpunit.xml
index e483515ca7a..3f0a9107aaa 100644
--- a/apps/dav/tests/unit/phpunit.xml
+++ b/apps/dav/tests/unit/phpunit.xml
@@ -11,9 +11,9 @@
<!-- filters for code coverage -->
<filter>
<whitelist>
- <directory suffix=".php">../../dav</directory>
+ <directory suffix=".php">../../../dav</directory>
<exclude>
- <directory suffix=".php">../../dav/tests</directory>
+ <directory suffix=".php">../../../dav/tests</directory>
</exclude>
</whitelist>
</filter>