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 @@
-= $prop ?>
+= $prop ?>
\ No newline at end of file