summaryrefslogtreecommitdiffstats
path: root/apps/settings/tests
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2021-01-07 16:26:51 +0100
committerMorris Jobke <hey@morrisjobke.de>2021-01-08 13:38:32 +0100
commitbffa61fc320f1652c262b3715279f62b328224ea (patch)
treebf7e8f20201ab7d61a3aa04debd97558382d779c /apps/settings/tests
parent4f52e83695d848f44d9596a3b5b6f978faada2e3 (diff)
downloadnextcloud-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.php18
-rw-r--r--apps/settings/tests/SetupChecks/SupportedDatabaseTest.php42
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());
+ }
+}