Merge pull request from flightphp/duplicated-slash-in-groups-support

Duplicated slash in groups support
master
n0nag0n 2 weeks ago committed by GitHub
commit 62f31d7856
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -8,3 +8,6 @@ charset = utf-8
[*.md]
indent_size = 2
[tests/views/*.php]
insert_final_newline = false

@ -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;

@ -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'
<div>Hi</div>
<div>Hi</div>
<input type="number" />
<input type="number" />
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);

@ -178,15 +178,12 @@ class ViewTest extends TestCase
$html = <<<'html'
<div>Hi</div>
<div>Hi</div>
<input type="number" />
<input type="number" />
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'
<div>qux</div>
<div>bar</div>
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'
<div>Hi</div>
<div></div>
html;
$html2 = <<<'html'
<input type="number" />
<input type="text" />
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 [
[

@ -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));
}

@ -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))
);
}
}

@ -1,7 +1 @@
<?php
$type ??= 'text';
?>
<input type="<?= $type ?>" />
<input type="<?= $type ?? 'text' ?>" />

@ -1 +1 @@
<div><?= $prop ?></div>
<div><?= $prop ?></div>
Loading…
Cancel
Save