summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/files/storage/wrapper/encryption.php9
-rw-r--r--tests/lib/files/stream/encryption.php2
-rw-r--r--tests/lib/files/view.php20
-rw-r--r--tests/lib/group.php16
-rw-r--r--tests/lib/group/dummy.php2
-rw-r--r--tests/lib/group/manager.php2
-rw-r--r--tests/lib/share/share.php2
-rw-r--r--tests/lib/util/group/dummy.php217
8 files changed, 254 insertions, 16 deletions
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 651299a3eab..21f7d9f09b9 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -5,6 +5,7 @@ namespace Test\Files\Storage\Wrapper;
use OC\Encryption\Util;
use OC\Files\Storage\Temporary;
use OC\Files\View;
+use OC\User\Manager;
use Test\Files\Storage\Storage;
class Encryption extends Storage {
@@ -118,7 +119,7 @@ class Encryption extends Storage {
$this->util = $this->getMock(
'\OC\Encryption\Util',
['getUidAndFilename', 'isFile', 'isExcluded'],
- [new View(), new \OC\User\Manager(), $this->groupManager, $this->config, $this->arrayCache]);
+ [new View(), new Manager(), $this->groupManager, $this->config, $this->arrayCache]);
$this->util->expects($this->any())
->method('getUidAndFilename')
->willReturnCallback(function ($path) {
@@ -200,7 +201,7 @@ class Encryption extends Storage {
protected function buildMockModule() {
$this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()
- ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable', 'encryptAll', 'prepareDecryptAll'])
+ ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable', 'encryptAll', 'prepareDecryptAll', 'isReadyForUser'])
->getMock();
$this->encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE');
@@ -543,7 +544,7 @@ class Encryption extends Storage {
->setConstructorArgs(
[
new View(),
- new \OC\User\Manager(),
+ new Manager(),
$this->groupManager,
$this->config,
$this->arrayCache
@@ -608,7 +609,7 @@ class Encryption extends Storage {
->disableOriginalConstructor()->getMock();
$util = $this->getMockBuilder('\OC\Encryption\Util')
- ->setConstructorArgs([new View(), new \OC\User\Manager(), $this->groupManager, $this->config, $this->arrayCache])
+ ->setConstructorArgs([new View(), new Manager(), $this->groupManager, $this->config, $this->arrayCache])
->getMock();
$cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php
index afb31f2822d..20a4100d2ff 100644
--- a/tests/lib/files/stream/encryption.php
+++ b/tests/lib/files/stream/encryption.php
@@ -311,7 +311,7 @@ class Encryption extends \Test\TestCase {
protected function buildMockModule() {
$encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()
- ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable', 'encryptAll', 'prepareDecryptAll'])
+ ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable', 'encryptAll', 'prepareDecryptAll', 'isReadyForUser'])
->getMock();
$encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE');
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 3e88a5306f8..86413c61aa1 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -2424,4 +2424,24 @@ class View extends \Test\TestCase {
$this->assertEquals($expected, $files);
}
+
+ public function testFilePutContentsClearsChecksum() {
+ $storage = new Temporary(array());
+ $scanner = $storage->getScanner();
+ $storage->file_put_contents('foo.txt', 'bar');
+ \OC\Files\Filesystem::mount($storage, array(), '/test/');
+ $scanner->scan('');
+
+ $view = new \OC\Files\View('/test/foo.txt');
+ $view->putFileInfo('.', ['checksum' => '42']);
+
+ $this->assertEquals('bar', $view->file_get_contents(''));
+ $fh = tmpfile();
+ fwrite($fh, 'fooo');
+ rewind($fh);
+ $view->file_put_contents('', $fh);
+ $this->assertEquals('fooo', $view->file_get_contents(''));
+ $data = $view->getFileInfo('.');
+ $this->assertEquals('', $data->getChecksum());
+ }
}
diff --git a/tests/lib/group.php b/tests/lib/group.php
index 4bb888ed725..d3ac6d8d69e 100644
--- a/tests/lib/group.php
+++ b/tests/lib/group.php
@@ -32,7 +32,7 @@ class Test_Group extends \Test\TestCase {
public function testSingleBackend() {
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
@@ -72,7 +72,7 @@ class Test_Group extends \Test\TestCase {
public function testNoEmptyGIDs() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$emptyGroup = null;
$this->assertFalse(OC_Group::createGroup($emptyGroup));
@@ -80,7 +80,7 @@ class Test_Group extends \Test\TestCase {
public function testNoGroupsTwice() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$group = $this->getUniqueID();
OC_Group::createGroup($group);
@@ -92,7 +92,7 @@ class Test_Group extends \Test\TestCase {
public function testDontDeleteAdminGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$adminGroup = 'admin';
OC_Group::createGroup($adminGroup);
@@ -102,7 +102,7 @@ class Test_Group extends \Test\TestCase {
public function testDontAddUserToNonexistentGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$groupNonExistent = 'notExistent';
$user = $this->getUniqueID();
@@ -111,7 +111,7 @@ class Test_Group extends \Test\TestCase {
}
public function testUsersInGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
@@ -143,8 +143,8 @@ class Test_Group extends \Test\TestCase {
public function testMultiBackend() {
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
- $backend1 = new OC_Group_Dummy();
- $backend2 = new OC_Group_Dummy();
+ $backend1 = new \Test\Util\Group\Dummy();
+ $backend2 = new \Test\Util\Group\Dummy();
OC_Group::useBackend($backend1);
OC_Group::useBackend($backend2);
diff --git a/tests/lib/group/dummy.php b/tests/lib/group/dummy.php
index 6836f89d3fe..eaa299c39af 100644
--- a/tests/lib/group/dummy.php
+++ b/tests/lib/group/dummy.php
@@ -28,6 +28,6 @@
class Test_Group_Dummy extends Test_Group_Backend {
protected function setUp() {
parent::setUp();
- $this->backend=new OC_Group_Dummy();
+ $this->backend=new \Test\Util\Group\Dummy();
}
}
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index 6cf473b9156..410e11114c4 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -65,7 +65,7 @@ class Manager extends \Test\TestCase {
}
public function testGetDeleted() {
- $backend = new \OC_Group_Dummy();
+ $backend = new \Test\Util\Group\Dummy();
$backend->createGroup('group1');
/**
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index 1965d80c580..a07e90effc3 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -63,7 +63,7 @@ class Test_Share extends \Test\TestCase {
\OC::$server->getUserManager()->createUser($this->groupAndUser, 'pass');
OC_User::setUserId($this->user1);
OC_Group::clearBackends();
- OC_Group::useBackend(new OC_Group_Dummy);
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$this->group1 = $this->getUniqueID('group1_');
$this->group2 = $this->getUniqueID('group2_');
OC_Group::createGroup($this->group1);
diff --git a/tests/lib/util/group/dummy.php b/tests/lib/util/group/dummy.php
new file mode 100644
index 00000000000..e72be827d8a
--- /dev/null
+++ b/tests/lib/util/group/dummy.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * @author Arthur Schiwon <blizzz@owncloud.com>
+ * @author Felix Moeller <mail@felixmoeller.de>
+ * @author Lukas Reschke <lukas@owncloud.com>
+ * @author Michael Gapczynski <GapczynskiM@gmail.com>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Robin Appelman <icewind@owncloud.com>
+ * @author Robin McCorkell <robin@mccorkell.me.uk>
+ * @author Roeland Jago Douma <rullzer@owncloud.com>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @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 Test\Util\Group;
+
+use OC_Group_Backend;
+
+/**
+ * dummy group backend, does not keep state, only for testing use
+ */
+class Dummy extends OC_Group_Backend {
+ private $groups=array();
+ /**
+ * Try to create a new group
+ * @param string $gid The name of the group to create
+ * @return bool
+ *
+ * Tries to create a new group. If the group name already exists, false will
+ * be returned.
+ */
+ public function createGroup($gid) {
+ if(!isset($this->groups[$gid])) {
+ $this->groups[$gid]=array();
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * delete a group
+ * @param string $gid gid of the group to delete
+ * @return bool
+ *
+ * Deletes a group and removes it from the group_user-table
+ */
+ public function deleteGroup($gid) {
+ if(isset($this->groups[$gid])) {
+ unset($this->groups[$gid]);
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * is user in group?
+ * @param string $uid uid of the user
+ * @param string $gid gid of the group
+ * @return bool
+ *
+ * Checks whether the user is member of a group or not.
+ */
+ public function inGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ return (array_search($uid, $this->groups[$gid])!==false);
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Add a user to a group
+ * @param string $uid Name of the user to add to group
+ * @param string $gid Name of the group in which add the user
+ * @return bool
+ *
+ * Adds a user to a group.
+ */
+ public function addToGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ if(array_search($uid, $this->groups[$gid])===false) {
+ $this->groups[$gid][]=$uid;
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Removes a user from a group
+ * @param string $uid Name of the user to remove from group
+ * @param string $gid Name of the group from which remove the user
+ * @return bool
+ *
+ * removes the user from a group.
+ */
+ public function removeFromGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ if(($index=array_search($uid, $this->groups[$gid]))!==false) {
+ unset($this->groups[$gid][$index]);
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Get all groups a user belongs to
+ * @param string $uid Name of the user
+ * @return array an array of group names
+ *
+ * This function fetches all groups a user belongs to. It does not check
+ * if the user exists at all.
+ */
+ public function getUserGroups($uid) {
+ $groups=array();
+ $allGroups=array_keys($this->groups);
+ foreach($allGroups as $group) {
+ if($this->inGroup($uid, $group)) {
+ $groups[]=$group;
+ }
+ }
+ return $groups;
+ }
+
+ /**
+ * Get a list of all groups
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return array an array of group names
+ */
+ public function getGroups($search = '', $limit = -1, $offset = 0) {
+ if(empty($search)) {
+ return array_keys($this->groups);
+ }
+ $result = array();
+ foreach(array_keys($this->groups) as $group) {
+ if(stripos($group, $search) !== false) {
+ $result[] = $group;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * Get a list of all users in a group
+ * @param string $gid
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return array an array of user IDs
+ */
+ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+ if(isset($this->groups[$gid])) {
+ if(empty($search)) {
+ return $this->groups[$gid];
+ }
+ $result = array();
+ foreach($this->groups[$gid] as $user) {
+ if(stripos($user, $search) !== false) {
+ $result[] = $user;
+ }
+ }
+ return $result;
+ }else{
+ return array();
+ }
+ }
+
+ /**
+ * get the number of all users in a group
+ * @param string $gid
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return int
+ */
+ public function countUsersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+ if(isset($this->groups[$gid])) {
+ if(empty($search)) {
+ return count($this->groups[$gid]);
+ }
+ $count = 0;
+ foreach($this->groups[$gid] as $user) {
+ if(stripos($user, $search) !== false) {
+ $count++;
+ }
+ }
+ return $count;
+ }
+ }
+
+}