[ 'server' => [], 'baseDir' => $configPath, 'expected' => $configPath, ], 'relative' => [ 'server' => [], 'baseDir' => 'config', 'expected' => $configPath, ], 'document_root' => [ 'server' => [ 'DOCUMENT_ROOT' => $configPath, ], 'baseDir' => '/noooop', 'expected' => $configPath, ], 'pwd' => [ 'server' => [ 'PWD' => $configPath, ], 'baseDir' => '/noooop', 'expected' => $configPath, ], 'no_overwrite' => [ 'server' => [ 'DOCUMENT_ROOT' => $basePath, 'PWD' => $basePath, ], 'baseDir' => 'config', 'expected' => $configPath, ], 'no_overwrite_if_invalid' => [ 'server' => [ 'DOCUMENT_ROOT' => '/nopopop', 'PWD' => $configPath, ], 'baseDir' => '/noatgawe22fafa', 'expected' => $configPath, ] ]; } /** * Test the basepath determination * @dataProvider getDataPaths */ public function testDetermineBasePath(array $server, string $baseDir, string $expected): void { $basepath = new BasePath($baseDir, $server); self::assertEquals($expected, $basepath->getPath()); } /** * Test the basepath determination with a complete wrong path */ public function testFailedBasePath(): void { $basepath = new BasePath('/now23452sgfgas', []); $this->expectException(\Exception::class); $this->expectExceptionMessage('\'/now23452sgfgas\' is not a valid basepath'); $basepath->getPath(); } }