]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Util/BasePathTest.php
Merge remote-tracking branch 'upstream/2021.12-rc' into api-fixes
[friendica.git] / tests / src / Util / BasePathTest.php
index bb23cb650d0ee66ac47bc7c3b811fa8a9abce3f5..7cdf612e64aa2ce31f40aeba0408ce8362c41335 100644 (file)
@@ -6,24 +6,71 @@ use Friendica\Util\BasePath;
 
 class BasePathTest extends MockedTest
 {
+       public function dataPaths()
+       {
+               return [
+                       'fullPath' => [
+                               'server' => [],
+                               'input' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ],
+                       'relative' => [
+                               'server' => [],
+                               'input' => 'config',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ],
+                       'document_root' => [
+                               'server' => [
+                                       'DOCUMENT_ROOT' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                               ],
+                               'input' => '/noooop',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ],
+                       'pwd' => [
+                               'server' => [
+                                       'PWD' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                               ],
+                               'input' => '/noooop',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ],
+                       'no_overwrite' => [
+                               'server' => [
+                                       'DOCUMENT_ROOT' => dirname(__DIR__, 3),
+                                       'PWD' => dirname(__DIR__, 3),
+                               ],
+                               'input' => 'config',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ],
+                       'no_overwrite_if_invalid' => [
+                               'server' => [
+                                       'DOCUMENT_ROOT' => '/nopopop',
+                                       'PWD' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                               ],
+                               'input' => '/noatgawe22fafa',
+                               'output' => dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'config',
+                       ]
+               ];
+       }
+
        /**
         * Test the basepath determination
+        * @dataProvider dataPaths
         */
-       public function testDetermineBasePath()
+       public function testDetermineBasePath(array $server, $input, $output)
        {
-               $serverArr = ['DOCUMENT_ROOT' => '/invalid', 'PWD' => '/invalid2'];
-               $this->assertEquals('/valid', BasePath::create('/valid', $serverArr));
+               $basepath = new BasePath($input, $server);
+               self::assertEquals($output, $basepath->getPath());
        }
 
        /**
-        * Test the basepath determination with DOCUMENT_ROOT and PWD
+        * Test the basepath determination with a complete wrong path
         */
-       public function testDetermineBasePathWithServer()
+       public function testFailedBasePath()
        {
-               $serverArr = ['DOCUMENT_ROOT' => '/valid'];
-               $this->assertEquals('/valid', BasePath::create('', $serverArr));
-
-               $serverArr = ['PWD' => '/valid_too'];
-               $this->assertEquals('/valid_too', BasePath::create('', $serverArr));
+               $this->expectException(\Exception::class);
+               $this->expectExceptionMessageMatches("/(.*) is not a valid basepath/");
+               
+               $basepath = new BasePath('/now23452sgfgas', []);
+               $basepath->getPath();
        }
 }