diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2018-04-23 14:02:53 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2018-05-27 20:51:36 +0200 |
commit | 8bf8e92092a545bcbd448cf3b360fa2822035b6b (patch) | |
tree | 898755cedb3bd9d57185445a94e01a7c6d9a9083 /apps/dav/tests | |
parent | 69e650d0e8d0ea38724d0d4afc16683403dad6e0 (diff) | |
download | nextcloud-server-8bf8e92092a545bcbd448cf3b360fa2822035b6b.tar.gz nextcloud-server-8bf8e92092a545bcbd448cf3b360fa2822035b6b.zip |
Adding repair step which cleans shares of invalid principals
https://github.com/owncloud/core/pull/30149/commits/edacf22fbce4deefc181c53dd84c5fb278a9a28d
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'apps/dav/tests')
-rw-r--r-- | apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php b/apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php new file mode 100644 index 00000000000..14553740f38 --- /dev/null +++ b/apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php @@ -0,0 +1,70 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2018, 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\Repair; + + +use OCA\DAV\Connector\Sabre\Principal; +use OCA\DAV\Repair\RemoveInvalidShares; +use OCP\Migration\IOutput; +use Test\TestCase; + +/** + * Class RemoveInvalidSharesTest + * + * @package OCA\DAV\Tests\Unit\Repair + * @group DB + */ +class RemoveInvalidSharesTest extends TestCase { + + public function setUp() { + parent::setUp(); + $db = \OC::$server->getDatabaseConnection(); + + $db->insertIfNotExist('*PREFIX*dav_shares', [ + 'principaluri' => 'principal:unknown', + 'type' => 'calendar', + 'access' => 2, + 'resourceid' => 666, + ]); + } + + public function test() { + $db = \OC::$server->getDatabaseConnection(); + /** @var Principal | \PHPUnit_Framework_MockObject_MockObject $principal */ + $principal = $this->createMock(Principal::class); + + /** @var IOutput | \PHPUnit_Framework_MockObject_MockObject $output */ + $output = $this->createMock(IOutput::class); + + $repair = new RemoveInvalidShares($db, $principal); + $this->assertEquals("Remove invalid calendar and addressbook shares", $repair->getName()); + $repair->run($output); + + $query = $db->getQueryBuilder(); + $result = $query->select('*')->from('dav_shares') + ->where($query->expr()->eq('principaluri', $query->createNamedParameter('principal:unknown')))->execute(); + $data = $result->fetchAll(); + $result->closeCursor(); + $this->assertEquals(0, count($data)); + } +} |