diff --git a/.editorconfig b/.editorconfig index dcc5687..19ae126 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,3 +8,6 @@ charset = utf-8 [*.md] indent_size = 2 + +[tests/views/*.php] +insert_final_newline = false diff --git a/flight/net/Route.php b/flight/net/Route.php index 8294a19..47f93dc 100644 --- a/flight/net/Route.php +++ b/flight/net/Route.php @@ -87,7 +87,7 @@ class Route */ public function __construct(string $pattern, $callback, array $methods, bool $pass, string $alias = '') { - $this->pattern = $pattern; + $this->pattern = str_replace('//', '/', $pattern); $this->callback = $callback; $this->methods = $methods; $this->pass = $pass; diff --git a/tests/FlightTest.php b/tests/FlightTest.php index 990bf93..eea910f 100644 --- a/tests/FlightTest.php +++ b/tests/FlightTest.php @@ -134,6 +134,21 @@ class FlightTest extends TestCase Flight::start(); } + public function testStaticNestedGroups(): void { + Flight::group('/', static function (): void { + Flight::group('/', static function (): void { + Flight::route('GET /', static function (): void { + echo "test"; + }); + }); + }); + + Flight::request()->url = '/'; + + $this->expectOutputString('test'); + Flight::start(); + } + public function testStaticRouteGet() { @@ -381,15 +396,11 @@ class FlightTest extends TestCase $html = <<<'html'
Hi
Hi
- - - html; - // if windows replace \n with \r\n - $html = str_replace(["\n", "\r\n"], PHP_EOL, $html); + $html = str_replace(["\n", "\r"], '', $html); $this->expectOutputString($html); diff --git a/tests/ViewTest.php b/tests/ViewTest.php index cf300c9..c0b0c5c 100644 --- a/tests/ViewTest.php +++ b/tests/ViewTest.php @@ -178,15 +178,12 @@ class ViewTest extends TestCase $html = <<<'html'
Hi
Hi
- - - html; // if windows replace \n with \r\n - $html = str_replace("\n", PHP_EOL, $html); + $html = str_replace(["\n", "\r"], '', $html); $this->expectOutputString($html); @@ -205,11 +202,9 @@ class ViewTest extends TestCase $html = <<<'html'
qux
bar
- html; - // if windows replace \n with \r\n - $html = str_replace("\n", PHP_EOL, $html); + $html = str_replace(["\n", "\r"], '', $html); $this->expectOutputString($html); @@ -222,19 +217,15 @@ class ViewTest extends TestCase $html1 = <<<'html'
Hi
- html; $html2 = <<<'html' - - - html; - $html1 = str_replace(["\n", "\r\n"], PHP_EOL, $html1); - $html2 = str_replace(["\n", "\r\n"], PHP_EOL, $html2); + $html1 = str_replace(["\n", "\r"], '', $html1); + $html2 = str_replace(["\n", "\r"], '', $html2); return [ [ diff --git a/tests/commands/ControllerCommandTest.php b/tests/commands/ControllerCommandTest.php index b16f6bc..0c6991e 100644 --- a/tests/commands/ControllerCommandTest.php +++ b/tests/commands/ControllerCommandTest.php @@ -48,16 +48,16 @@ class ControllerCommandTest extends TestCase protected function newApp(string $name, string $version = '') { - $app = new Application($name, $version ?: '0.0.1', fn () => false); + $app = @new Application($name, $version ?: '0.0.1', fn () => false); - return $app->io(new Interactor(static::$in, static::$ou)); + return @$app->io(new Interactor(static::$in, static::$ou)); } public function testConfigAppRootNotSet() { $app = $this->newApp('test', '0.0.1'); $app->add(new ControllerCommand([])); - $app->handle(['runway', 'make:controller', 'Test']); + @$app->handle(['runway', 'make:controller', 'Test']); $this->assertStringContainsString('app_root not set in .runway-config.json', file_get_contents(static::$ou)); } diff --git a/tests/commands/RouteCommandTest.php b/tests/commands/RouteCommandTest.php index e973891..d1de48a 100644 --- a/tests/commands/RouteCommandTest.php +++ b/tests/commands/RouteCommandTest.php @@ -54,7 +54,7 @@ class RouteCommandTest extends TestCase protected function newApp(string $name, string $version = '') { - $app = new Application($name, $version ?: '0.0.1', fn() => false); + $app = @new Application($name, $version ?: '0.0.1', fn() => false); return $app->io(new Interactor(static::$in, static::$ou)); } @@ -90,19 +90,19 @@ PHP; public function testConfigIndexRootNotSet() { - $app = $this->newApp('test', '0.0.1'); + $app = @$this->newApp('test', '0.0.1'); $app->add(new RouteCommand([])); - $app->handle(['runway', 'routes']); + @$app->handle(['runway', 'routes']); $this->assertStringContainsString('index_root not set in .runway-config.json', file_get_contents(static::$ou)); } public function testGetRoutes() { - $app = $this->newApp('test', '0.0.1'); + $app = @$this->newApp('test', '0.0.1'); $this->createIndexFile(); $app->add(new RouteCommand(['index_root' => 'tests/commands/index.php'])); - $app->handle(['runway', 'routes']); + @$app->handle(['runway', 'routes']); $this->assertStringContainsString('Routes', file_get_contents(static::$ou)); $expected = <<<'output' @@ -125,16 +125,24 @@ PHP; public function testGetPostRoute() { - $app = $this->newApp('test', '0.0.1'); + $app = @$this->newApp('test', '0.0.1'); $this->createIndexFile(); $app->add(new RouteCommand(['index_root' => 'tests/commands/index.php'])); - $app->handle(['runway', 'routes', '--post']); + @$app->handle(['runway', 'routes', '--post']); $this->assertStringContainsString('Routes', file_get_contents(static::$ou)); - $this->assertStringContainsString('+---------+---------+-------+----------+------------+ -| Pattern | Methods | Alias | Streamed | Middleware | -+---------+---------+-------+----------+------------+ -| /post | POST | | No | Closure | -+---------+---------+-------+----------+------------+', $this->removeColors(file_get_contents(static::$ou))); + + $expected = <<<'output' + +---------+---------+-------+----------+------------+ + | Pattern | Methods | Alias | Streamed | Middleware | + +---------+---------+-------+----------+------------+ + | /post | POST | | No | Closure | + +---------+---------+-------+----------+------------+ + output; + + $this->assertStringContainsString( + $expected, + $this->removeColors(file_get_contents(static::$ou)) + ); } } diff --git a/tests/views/input.php b/tests/views/input.php index 19e7182..4226ea0 100644 --- a/tests/views/input.php +++ b/tests/views/input.php @@ -1,7 +1 @@ - - - + \ No newline at end of file diff --git a/tests/views/myComponent.php b/tests/views/myComponent.php index cf0a36f..80e571d 100644 --- a/tests/views/myComponent.php +++ b/tests/views/myComponent.php @@ -1 +1 @@ -
+
\ No newline at end of file