summaryrefslogtreecommitdiffstats
path: root/apps/files/tests/Service
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2016-05-12 12:07:06 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-05-12 12:07:06 +0200
commitb34bacd0718fa24c67a8ef0aa6f3b824a9b525bb (patch)
tree904bda1263850905c2c8164f4f1367d8c7bc9d46 /apps/files/tests/Service
parenteea98f1d74daf2a20c6b08b9df743f0478c48103 (diff)
downloadnextcloud-server-b34bacd0718fa24c67a8ef0aa6f3b824a9b525bb.tar.gz
nextcloud-server-b34bacd0718fa24c67a8ef0aa6f3b824a9b525bb.zip
Move Files app to PSR-4 (#24569)
* Move lib/ of Files app to PSR-4 * Move tests to PSR-4
Diffstat (limited to 'apps/files/tests/Service')
-rw-r--r--apps/files/tests/Service/TagServiceTest.php127
1 files changed, 127 insertions, 0 deletions
diff --git a/apps/files/tests/Service/TagServiceTest.php b/apps/files/tests/Service/TagServiceTest.php
new file mode 100644
index 00000000000..3f210b500ff
--- /dev/null
+++ b/apps/files/tests/Service/TagServiceTest.php
@@ -0,0 +1,127 @@
+<?php
+/**
+ * @author Roeland Jago Douma <rullzer@owncloud.com>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Vincent Petry <pvince81@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @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\Files\Tests\Service;
+
+use OCA\Files\Service\TagService;
+
+/**
+ * Class TagServiceTest
+ *
+ * @group DB
+ *
+ * @package OCA\Files
+ */
+class TagServiceTest extends \Test\TestCase {
+
+ /**
+ * @var string
+ */
+ private $user;
+
+ /**
+ * @var \OCP\Files\Folder
+ */
+ private $root;
+
+ /**
+ * @var \OCA\Files\Service\TagService
+ */
+ private $tagService;
+
+ /**
+ * @var \OCP\ITags
+ */
+ private $tagger;
+
+ protected function setUp() {
+ parent::setUp();
+ $this->user = $this->getUniqueID('user');
+ \OC::$server->getUserManager()->createUser($this->user, 'test');
+ \OC_User::setUserId($this->user);
+ \OC_Util::setupFS($this->user);
+ /** @var \OCP\IUser */
+ $user = new \OC\User\User($this->user, null);
+ /**
+ * @var \OCP\IUserSession
+ */
+ $userSession = $this->getMock('\OCP\IUserSession');
+ $userSession->expects($this->any())
+ ->method('getUser')
+ ->withAnyParameters()
+ ->will($this->returnValue($user));
+
+ $this->root = \OC::$server->getUserFolder();
+
+ $this->tagger = \OC::$server->getTagManager()->load('files');
+ $this->tagService = new TagService(
+ $userSession,
+ $this->tagger,
+ $this->root
+ );
+ }
+
+ protected function tearDown() {
+ \OC_User::setUserId('');
+ $user = \OC::$server->getUserManager()->get($this->user);
+ if ($user !== null) { $user->delete(); }
+ }
+
+ public function testUpdateFileTags() {
+ $tag1 = 'tag1';
+ $tag2 = 'tag2';
+
+ $subdir = $this->root->newFolder('subdir');
+ $testFile = $subdir->newFile('test.txt');
+ $testFile->putContent('test contents');
+
+ $fileId = $testFile->getId();
+
+ // set tags
+ $this->tagService->updateFileTags('subdir/test.txt', array($tag1, $tag2));
+
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag2));
+
+ // remove tag
+ $this->tagService->updateFileTags('subdir/test.txt', array($tag2));
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array($fileId), $this->tagger->getIdsForTag($tag2));
+
+ // clear tags
+ $this->tagService->updateFileTags('subdir/test.txt', array());
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag1));
+ $this->assertEquals(array(), $this->tagger->getIdsForTag($tag2));
+
+ // non-existing file
+ $caught = false;
+ try {
+ $this->tagService->updateFileTags('subdir/unexist.txt', array($tag1));
+ } catch (\OCP\Files\NotFoundException $e) {
+ $caught = true;
+ }
+ $this->assertTrue($caught);
+
+ $subdir->delete();
+ }
+}
+