diff options
author | Morris Jobke <hey@morrisjobke.de> | 2021-01-07 16:26:51 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2021-01-08 13:38:32 +0100 |
commit | bffa61fc320f1652c262b3715279f62b328224ea (patch) | |
tree | bf7e8f20201ab7d61a3aa04debd97558382d779c /apps/settings/tests | |
parent | 4f52e83695d848f44d9596a3b5b6f978faada2e3 (diff) | |
download | nextcloud-server-bffa61fc320f1652c262b3715279f62b328224ea.tar.gz nextcloud-server-bffa61fc320f1652c262b3715279f62b328224ea.zip |
Add setup check to verify that the used DB version is still supported in the next major release
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'apps/settings/tests')
-rw-r--r-- | apps/settings/tests/Controller/CheckSetupControllerTest.php | 18 | ||||
-rw-r--r-- | apps/settings/tests/SetupChecks/SupportedDatabaseTest.php | 42 |
2 files changed, 58 insertions, 2 deletions
diff --git a/apps/settings/tests/Controller/CheckSetupControllerTest.php b/apps/settings/tests/Controller/CheckSetupControllerTest.php index 040a0ca3500..426793df606 100644 --- a/apps/settings/tests/Controller/CheckSetupControllerTest.php +++ b/apps/settings/tests/Controller/CheckSetupControllerTest.php @@ -35,6 +35,7 @@ namespace OCA\Settings\Tests\Controller; use bantu\IniGetWrapper\IniGetWrapper; +use Doctrine\DBAL\Platforms\SqlitePlatform; use OC; use OC\DB\Connection; use OC\IntegrityCheck\Checker; @@ -48,6 +49,7 @@ use OCP\AppFramework\Http\RedirectResponse; use OCP\Http\Client\IClientService; use OCP\IConfig; use OCP\IDateTimeFormatter; +use OCP\IDBConnection; use OCP\IL10N; use OCP\ILogger; use OCP\IRequest; @@ -95,6 +97,8 @@ class CheckSetupControllerTest extends TestCase { private $secureRandom; /** @var IniGetWrapper|\PHPUnit\Framework\MockObject\MockObject */ private $iniGetWrapper; + /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */ + private $connection; /** * Holds a list of directories created during tests. @@ -135,6 +139,8 @@ class CheckSetupControllerTest extends TestCase { ->getMock(); $this->secureRandom = $this->getMockBuilder(SecureRandom::class)->getMock(); $this->iniGetWrapper = $this->getMockBuilder(IniGetWrapper::class)->getMock(); + $this->connection = $this->getMockBuilder(IDBConnection::class) + ->disableOriginalConstructor()->getMock(); $this->checkSetupController = $this->getMockBuilder(CheckSetupController::class) ->setConstructorArgs([ 'settings', @@ -152,6 +158,7 @@ class CheckSetupControllerTest extends TestCase { $this->memoryInfo, $this->secureRandom, $this->iniGetWrapper, + $this->connection, ]) ->setMethods([ 'isReadOnlyConfig', @@ -553,6 +560,9 @@ class CheckSetupControllerTest extends TestCase { } return ''; }); + $sqlitePlatform = $this->getMockBuilder(SqlitePlatform::class)->getMock(); + $this->connection->method('getDatabasePlatform') + ->willReturn($sqlitePlatform); $expected = new DataResponse( [ @@ -606,6 +616,7 @@ class CheckSetupControllerTest extends TestCase { 'OCA\Settings\SetupChecks\CheckUserCertificates' => ['pass' => false, 'description' => 'There are some user imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via "occ security:certificates:import" command. Their paths inside the data directory are shown below.', 'severity' => 'warning', 'elements' => ['a', 'b']], 'imageMagickLacksSVGSupport' => false, 'isDefaultPhoneRegionSet' => false, + 'OCA\Settings\SetupChecks\SupportedDatabase' => ['pass' => true, 'description' => '', 'severity' => 'info'], ] ); $this->assertEquals($expected, $this->checkSetupController->check()); @@ -629,6 +640,7 @@ class CheckSetupControllerTest extends TestCase { $this->memoryInfo, $this->secureRandom, $this->iniGetWrapper, + $this->connection, ]) ->setMethods(null)->getMock(); @@ -1397,7 +1409,8 @@ Array $this->dateTimeFormatter, $this->memoryInfo, $this->secureRandom, - $this->iniGetWrapper + $this->iniGetWrapper, + $this->connection ); $this->assertSame($expected, $this->invokePrivate($checkSetupController, 'isMysqlUsedWithoutUTF8MB4')); @@ -1446,7 +1459,8 @@ Array $this->dateTimeFormatter, $this->memoryInfo, $this->secureRandom, - $this->iniGetWrapper + $this->iniGetWrapper, + $this->connection ); $this->assertSame($expected, $this->invokePrivate($checkSetupController, 'isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed')); diff --git a/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php b/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php new file mode 100644 index 00000000000..de709572261 --- /dev/null +++ b/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php @@ -0,0 +1,42 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright Copyright (c) 2021 Morris Jobke <hey@morrisjobke.de> + * + * @author Morris Jobke <hey@morrisjobke.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Settings\Tests; + +use OCA\Settings\SetupChecks\SupportedDatabase; +use OCP\IL10N; +use Test\TestCase; + +/** + * @group DB + */ +class SupportedDatabaseTest extends TestCase { + public function testPass(): void { + $l10n = $this->getMockBuilder(IL10N::class)->getMock(); + $check = new SupportedDatabase($l10n, \OC::$server->getDatabaseConnection()); + $this->assertTrue($check->run()); + } +} |