diff options
author | Joas Schilling <coding@schilljs.com> | 2016-12-05 16:51:16 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2016-12-06 16:30:21 +0100 |
commit | b8e9d255d30a6b3429d94655608cbe02b634c9f1 (patch) | |
tree | 53d23c246891599b07dc69f90724e6b394c74301 /apps/dav/tests | |
parent | b1901534be20ab768c4f5dccaa5c7c81fb472aa8 (diff) | |
download | nextcloud-server-b8e9d255d30a6b3429d94655608cbe02b634c9f1.tar.gz nextcloud-server-b8e9d255d30a6b3429d94655608cbe02b634c9f1.zip |
Only allow admins to delete tags
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/dav/tests')
-rw-r--r-- | apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php index 43674f4b795..3722bd9d25a 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php @@ -24,19 +24,17 @@ namespace OCA\DAV\Tests\unit\SystemTag; -use Sabre\DAV\Exception\NotFound; -use Sabre\DAV\Exception\MethodNotAllowed; -use Sabre\DAV\Exception\Conflict; use OC\SystemTag\SystemTag; use OCP\SystemTag\TagNotFoundException; use OCP\SystemTag\TagAlreadyExistsException; use OCP\SystemTag\ISystemTag; +use Sabre\DAV\Exception\Forbidden; class SystemTagNodeTest extends \Test\TestCase { /** - * @var \OCP\SystemTag\ISystemTagManager + * @var \OCP\SystemTag\ISystemTagManager|\PHPUnit_Framework_MockObject_MockObject */ private $tagManager; @@ -113,7 +111,7 @@ class SystemTagNodeTest extends \Test\TestCase { /** * @dataProvider tagNodeProvider */ - public function testUpdateTag($isAdmin, $originalTag, $changedArgs) { + public function testUpdateTag($isAdmin, ISystemTag $originalTag, $changedArgs) { $this->tagManager->expects($this->once()) ->method('canUserSeeTag') ->with($originalTag) @@ -173,7 +171,7 @@ class SystemTagNodeTest extends \Test\TestCase { /** * @dataProvider tagNodeProviderPermissionException */ - public function testUpdateTagPermissionException($originalTag, $changedArgs, $expectedException = null) { + public function testUpdateTagPermissionException(ISystemTag $originalTag, $changedArgs, $expectedException = null) { $this->tagManager->expects($this->any()) ->method('canUserSeeTag') ->with($originalTag) @@ -242,17 +240,16 @@ class SystemTagNodeTest extends \Test\TestCase { */ public function testDeleteTag($isAdmin) { $tag = new SystemTag(1, 'tag1', true, true); - $this->tagManager->expects($this->once()) + $this->tagManager->expects($isAdmin ? $this->once() : $this->never()) ->method('canUserSeeTag') ->with($tag) ->will($this->returnValue(true)); - $this->tagManager->expects($this->once()) - ->method('canUserAssignTag') - ->with($tag) - ->will($this->returnValue(true)); - $this->tagManager->expects($this->once()) + $this->tagManager->expects($isAdmin ? $this->once() : $this->never()) ->method('deleteTags') ->with('1'); + if (!$isAdmin) { + $this->setExpectedException(Forbidden::class); + } $this->getTagNode($isAdmin, $tag)->delete(); } @@ -261,7 +258,7 @@ class SystemTagNodeTest extends \Test\TestCase { [ // cannot delete invisible tag new SystemTag(1, 'Original', false, true), - 'Sabre\DAV\Exception\NotFound', + 'Sabre\DAV\Exception\Forbidden', ], [ // cannot delete non-assignable tag @@ -279,20 +276,11 @@ class SystemTagNodeTest extends \Test\TestCase { ->method('canUserSeeTag') ->with($tag) ->will($this->returnValue($tag->isUserVisible())); - $this->tagManager->expects($this->any()) - ->method('canUserAssignTag') - ->with($tag) - ->will($this->returnValue($tag->isUserAssignable())); $this->tagManager->expects($this->never()) ->method('deleteTags'); - try { - $this->getTagNode(false, $tag)->delete(); - } catch (\Exception $e) { - $thrown = $e; - } - - $this->assertInstanceOf($expectedException, $thrown); + $this->setExpectedException($expectedException); + $this->getTagNode(false, $tag)->delete(); } /** @@ -304,14 +292,10 @@ class SystemTagNodeTest extends \Test\TestCase { ->method('canUserSeeTag') ->with($tag) ->will($this->returnValue($tag->isUserVisible())); - $this->tagManager->expects($this->any()) - ->method('canUserAssignTag') - ->with($tag) - ->will($this->returnValue($tag->isUserAssignable())); $this->tagManager->expects($this->once()) ->method('deleteTags') ->with('1') ->will($this->throwException(new TagNotFoundException())); - $this->getTagNode(false, $tag)->delete(); + $this->getTagNode(true, $tag)->delete(); } } |