]> source.dussan.org Git - nextcloud-server.git/commitdiff
Migrate tests for AppDirsWithDifferentOwner setup check 42176/head
authorCôme Chilliet <come.chilliet@nextcloud.com>
Tue, 9 Jan 2024 08:52:13 +0000 (09:52 +0100)
committerCôme Chilliet <come.chilliet@nextcloud.com>
Tue, 9 Jan 2024 08:52:13 +0000 (09:52 +0100)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
apps/settings/tests/Controller/CheckSetupControllerTest.php
apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php [new file with mode: 0644]

index 6336ca852d6338e869c7c89500e38b47d83426aa..488497956cebed135b575303952b833130feae6a 100644 (file)
@@ -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')
diff --git a/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php b/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php
new file mode 100644 (file)
index 0000000..06a7522
--- /dev/null
@@ -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()])
+               );
+       }
+}