first commit
This commit is contained in:
60
tests/Shared/ExtensionTest.php
Normal file
60
tests/Shared/ExtensionTest.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Shared;
|
||||
|
||||
use App\Shared\Extension\AppExtension;
|
||||
use App\Shared\Extension\CsrfExtension;
|
||||
use App\Shared\Extension\SessionExtension;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Slim\Csrf\Guard;
|
||||
use Slim\Psr7\Factory\ResponseFactory;
|
||||
|
||||
final class ExtensionTest extends TestCase
|
||||
{
|
||||
protected function setUp(): void
|
||||
{
|
||||
$_SESSION = [];
|
||||
}
|
||||
|
||||
public function testAppExtensionExposesAppUrl(): void
|
||||
{
|
||||
$extension = new AppExtension('https://example.test');
|
||||
|
||||
self::assertSame(['app_url' => 'https://example.test'], $extension->getGlobals());
|
||||
}
|
||||
|
||||
public function testSessionExtensionExposesSelectedSessionKeys(): void
|
||||
{
|
||||
$_SESSION = [
|
||||
'user_id' => 12,
|
||||
'username' => 'julien',
|
||||
'role' => 'admin',
|
||||
'flash' => ['notice' => 'x'],
|
||||
];
|
||||
|
||||
$extension = new SessionExtension();
|
||||
|
||||
self::assertSame([
|
||||
'session' => [
|
||||
'user_id' => 12,
|
||||
'username' => 'julien',
|
||||
'role' => 'admin',
|
||||
],
|
||||
], $extension->getGlobals());
|
||||
}
|
||||
|
||||
public function testCsrfExtensionExposesTokens(): void
|
||||
{
|
||||
$storage = [];
|
||||
$guard = new Guard(new ResponseFactory(), storage: $storage);
|
||||
$extension = new CsrfExtension($guard);
|
||||
$globals = $extension->getGlobals();
|
||||
|
||||
self::assertArrayHasKey('csrf', $globals);
|
||||
self::assertSame($guard->getTokenNameKey(), $globals['csrf']['keys']['name']);
|
||||
self::assertSame($guard->getTokenValueKey(), $globals['csrf']['keys']['value']);
|
||||
self::assertSame($guard->getTokenName(), $globals['csrf']['name']);
|
||||
self::assertSame($guard->getTokenValue(), $globals['csrf']['value']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user