mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 18:50:47 -04:00
Migrate tests for AppDirsWithDifferentOwner setup check
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
14d132a4e6
commit
cf8c7e9270
2 changed files with 100 additions and 57 deletions
|
|
@ -34,7 +34,6 @@
|
|||
*/
|
||||
namespace OCA\Settings\Tests\Controller;
|
||||
|
||||
use OC;
|
||||
use OC\IntegrityCheck\Checker;
|
||||
use OCA\Settings\Controller\CheckSetupController;
|
||||
use OCP\AppFramework\Http;
|
||||
|
|
@ -140,7 +139,6 @@ class CheckSetupControllerTest extends TestCase {
|
|||
'getCurlVersion',
|
||||
'isPhpOutdated',
|
||||
'isPHPMailerUsed',
|
||||
'getAppDirsWithDifferentOwner',
|
||||
'isImagickEnabled',
|
||||
'areWebauthnExtensionsEnabled',
|
||||
'isMysqlUsedWithoutUTF8MB4',
|
||||
|
|
@ -199,11 +197,6 @@ class CheckSetupControllerTest extends TestCase {
|
|||
->method('hasPassedCheck')
|
||||
->willReturn(true);
|
||||
|
||||
$this->checkSetupController
|
||||
->expects($this->once())
|
||||
->method('getAppDirsWithDifferentOwner')
|
||||
->willReturn([]);
|
||||
|
||||
$this->checkSetupController
|
||||
->expects($this->once())
|
||||
->method('isImagickEnabled')
|
||||
|
|
@ -349,56 +342,6 @@ class CheckSetupControllerTest extends TestCase {
|
|||
$this->assertSame('', $this->invokePrivate($this->checkSetupController, 'isUsedTlsLibOutdated'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Setups a temp directory and some subdirectories.
|
||||
* Then calls the 'getAppDirsWithDifferentOwner' method.
|
||||
* The result is expected to be empty since
|
||||
* there are no directories with different owners than the current user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAppDirectoryOwnersOk() {
|
||||
$tempDir = tempnam(sys_get_temp_dir(), 'apps') . 'dir';
|
||||
mkdir($tempDir);
|
||||
mkdir($tempDir . DIRECTORY_SEPARATOR . 'app1');
|
||||
mkdir($tempDir . DIRECTORY_SEPARATOR . 'app2');
|
||||
$this->dirsToRemove[] = $tempDir . DIRECTORY_SEPARATOR . 'app1';
|
||||
$this->dirsToRemove[] = $tempDir . DIRECTORY_SEPARATOR . 'app2';
|
||||
$this->dirsToRemove[] = $tempDir;
|
||||
OC::$APPSROOTS = [
|
||||
[
|
||||
'path' => $tempDir,
|
||||
'url' => '/apps',
|
||||
'writable' => true,
|
||||
],
|
||||
];
|
||||
$this->assertSame(
|
||||
[],
|
||||
$this->invokePrivate($this->checkSetupController, 'getAppDirsWithDifferentOwner')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the check for a none existing app root that is marked as not writable.
|
||||
* It's expected that no error happens since the check shouldn't apply.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAppDirectoryOwnersNotWritable() {
|
||||
$tempDir = tempnam(sys_get_temp_dir(), 'apps') . 'dir';
|
||||
OC::$APPSROOTS = [
|
||||
[
|
||||
'path' => $tempDir,
|
||||
'url' => '/apps',
|
||||
'writable' => false,
|
||||
],
|
||||
];
|
||||
$this->assertSame(
|
||||
[],
|
||||
$this->invokePrivate($this->checkSetupController, 'getAppDirsWithDifferentOwner')
|
||||
);
|
||||
}
|
||||
|
||||
public function testIsBuggyNss400() {
|
||||
$this->config->expects($this->any())
|
||||
->method('getSystemValue')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2024 Côme Chilliet <come.chilliet@nextcloud.com>
|
||||
*
|
||||
* @author Côme Chilliet <come.chilliet@nextcloud.com>
|
||||
*
|
||||
* @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\AppDirsWithDifferentOwner;
|
||||
use OCP\IL10N;
|
||||
use Test\TestCase;
|
||||
|
||||
class AppDirsWithDifferentOwnerTest extends TestCase {
|
||||
private IL10N $l10n;
|
||||
private AppDirsWithDifferentOwner $check;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$this->l10n = $this->getMockBuilder(IL10N::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$this->l10n->expects($this->any())
|
||||
->method('t')
|
||||
->willReturnCallback(function ($message, array $replace) {
|
||||
return vsprintf($message, $replace);
|
||||
});
|
||||
$this->check = new AppDirsWithDifferentOwner(
|
||||
$this->l10n,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setups a temp directory and some subdirectories.
|
||||
* Then calls the 'getAppDirsWithDifferentOwner' method.
|
||||
* The result is expected to be empty since
|
||||
* there are no directories with different owners than the current user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAppDirectoryOwnersOk() {
|
||||
$tempDir = tempnam(sys_get_temp_dir(), 'apps') . 'dir';
|
||||
mkdir($tempDir);
|
||||
mkdir($tempDir . DIRECTORY_SEPARATOR . 'app1');
|
||||
mkdir($tempDir . DIRECTORY_SEPARATOR . 'app2');
|
||||
$this->dirsToRemove[] = $tempDir . DIRECTORY_SEPARATOR . 'app1';
|
||||
$this->dirsToRemove[] = $tempDir . DIRECTORY_SEPARATOR . 'app2';
|
||||
$this->dirsToRemove[] = $tempDir;
|
||||
\OC::$APPSROOTS = [
|
||||
[
|
||||
'path' => $tempDir,
|
||||
'url' => '/apps',
|
||||
'writable' => true,
|
||||
],
|
||||
];
|
||||
$this->assertSame(
|
||||
[],
|
||||
$this->invokePrivate($this->check, 'getAppDirsWithDifferentOwner', [posix_getuid()])
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the check for a none existing app root that is marked as not writable.
|
||||
* It's expected that no error happens since the check shouldn't apply.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAppDirectoryOwnersNotWritable() {
|
||||
$tempDir = tempnam(sys_get_temp_dir(), 'apps') . 'dir';
|
||||
\OC::$APPSROOTS = [
|
||||
[
|
||||
'path' => $tempDir,
|
||||
'url' => '/apps',
|
||||
'writable' => false,
|
||||
],
|
||||
];
|
||||
$this->assertSame(
|
||||
[],
|
||||
$this->invokePrivate($this->check, 'getAppDirsWithDifferentOwner', [posix_getuid()])
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue