diff --git a/src/TemplateFinder.php b/src/TemplateFinder.php index 273e69d..f8ed35a 100644 --- a/src/TemplateFinder.php +++ b/src/TemplateFinder.php @@ -4,11 +4,14 @@ namespace Madapaja\TwigModule; +use LogicException; + use function assert; use function is_int; use function str_replace; use function strpos; use function substr; +use function var_dump; class TemplateFinder implements TemplateFinderInterface { @@ -18,6 +21,14 @@ class TemplateFinder implements TemplateFinderInterface public function __invoke(string $name): string { $pos = strpos($name, '/Resource/'); + if (! is_int($pos)) { + var_dump($pos); + var_dump($name); + if (! is_int($pos)) { + throw new LogicException('Resource not found in ' . $name); + } + } + assert(is_int($pos)); $relativePath = substr($name, $pos + 10); diff --git a/tests/ExtensionTest.php b/tests/ExtensionTest.php index 353568c..773b3fc 100644 --- a/tests/ExtensionTest.php +++ b/tests/ExtensionTest.php @@ -8,16 +8,20 @@ use PHPUnit\Framework\TestCase; use Ray\Di\Injector; +use function str_replace; use function str_rot13; use function trim; +use const DIRECTORY_SEPARATOR; + class ExtensionTest extends TestCase { private Injector $injector; public function setUp(): void { - $this->injector = new Injector(new TwigExtensionTestModule([__DIR__ . '/Fake/src/Resource/'])); + $path = str_replace('/', DIRECTORY_SEPARATOR, __DIR__ . '/Fake/src/Resource/'); + $this->injector = new Injector(new TwigExtensionTestModule([$path])); } public function testTwigFilter(): void diff --git a/tests/FileLoaderTest.php b/tests/FileLoaderTest.php index 61664dd..2e5195f 100644 --- a/tests/FileLoaderTest.php +++ b/tests/FileLoaderTest.php @@ -16,13 +16,18 @@ use ReflectionClass; use function assert; +use function str_replace; use function trim; +use const DIRECTORY_SEPARATOR; + class FileLoaderTest extends TestCase { public function getInjector(): Injector { - return new Injector(new TwigFileLoaderTestModule([__DIR__ . '/Fake/src/Resource'])); + $path = str_replace('/', DIRECTORY_SEPARATOR, __DIR__ . '/Fake/src/Resource/'); + + return new Injector(new TwigFileLoaderTestModule([$path])); } public function testRenderer(): void @@ -38,11 +43,12 @@ public function testRenderer(): void public function testTwigOptions(): void { /** @var TwigRenderer $renderer */ - $renderer = (new Injector(new TwigFileLoaderTestModule([__DIR__ . '/Fake/src/Resource'], ['debug' => true])))->getInstance(TwigRenderer::class); + $path = str_replace('/', DIRECTORY_SEPARATOR, __DIR__ . '/Fake/src/Resource/'); + $renderer = (new Injector(new TwigFileLoaderTestModule([$path], ['debug' => true])))->getInstance(TwigRenderer::class); $this->assertTrue($renderer->twig->isDebug()); /** @var TwigRenderer $renderer */ - $renderer = (new Injector(new TwigFileLoaderTestModule([__DIR__ . '/Fake/src/Resource'], ['debug' => false])))->getInstance(TwigRenderer::class); + $renderer = (new Injector(new TwigFileLoaderTestModule([$path], ['debug' => false])))->getInstance(TwigRenderer::class); $this->assertFalse($renderer->twig->isDebug()); } @@ -155,7 +161,8 @@ public function testRedirectOnPost(): void public function testRedirectOnPostNoRedirectTemplate(): void { - $injector = new Injector(new TwigFileLoaderTestModule([__DIR__ . '/Fake/src/ResourceNoTemplate'])); + $path = str_replace('/', DIRECTORY_SEPARATOR, __DIR__ . '/Fake/src/ResourceNoTemplate/'); + $injector = new Injector(new TwigFileLoaderTestModule([$path])); $ro = $injector->getInstance(RedirectNoTemplate::class); $ro->onPost(); $view = (string) $ro; diff --git a/tests/WeavedResourceTest.php b/tests/WeavedResourceTest.php index 64b5a6f..485953f 100644 --- a/tests/WeavedResourceTest.php +++ b/tests/WeavedResourceTest.php @@ -9,15 +9,19 @@ use Ray\Di\Injector; use ReflectionClass; +use function str_replace; use function trim; +use const DIRECTORY_SEPARATOR; + class WeavedResourceTest extends TestCase { private Injector $injector; public function setUp(): void { - $this->injector = new Injector(new TwigWeavedResourceTestModule([__DIR__ . '/Fake/src/Resource'])); + $path = str_replace('/', DIRECTORY_SEPARATOR, __DIR__ . '/Fake/src/Resource/'); + $this->injector = new Injector(new TwigWeavedResourceTestModule([$path])); } public function testRenderer(): void