diff --git a/libs/DauxHelper.php b/libs/DauxHelper.php index 2b97f5d..845121c 100644 --- a/libs/DauxHelper.php +++ b/libs/DauxHelper.php @@ -488,6 +488,11 @@ class DauxHelper * @return false|null|string */ public static function findLocation($path, $basedir, $var, $type) { + // VFS, used only in tests + if (substr($path, 0, 6) == "vfs://") { + return $path; + } + // When running through `daux --serve` we set an environment variable to know where we started from $env = getenv($var); if ($env && DauxHelper::is($env, $type)) { diff --git a/tests/Server/ServerTest.php b/tests/Server/ServerTest.php new file mode 100644 index 0000000..60a78c2 --- /dev/null +++ b/tests/Server/ServerTest.php @@ -0,0 +1,39 @@ + 'first page', + 'Page.md' => 'another page', + 'somefile.css' => 'body {}', + '22.png' => '' + ]; + $root = vfsStream::setup('root', null, $structure); + + $daux = new Daux(Daux::LIVE_MODE, new NullOutput()); + $daux->getParams()->setDocumentationDirectory($root->url()); + + $daux->initializeConfiguration(); + $daux->getParams()['index_key'] = 'index'; + $daux->generateTree(); + + $page = new RawPage($daux->tree['somefile.css']->getPath()); + + $server = new Server($daux); + $response = $server->createResponse($page)->prepare(Request::createFromGlobals()); + + $this->assertEquals("text/css", $response->headers->get('Content-Type')); + } +} +