1
0
Files
breadcrumb-the-shire/tests/Http/AccessControlTest.php

40 lines
1.2 KiB
PHP
Raw Normal View History

2026-03-12 14:09:06 +01:00
<?php
namespace MintyPHP\Tests\Http;
use MintyPHP\Http\AccessControl;
use MintyPHP\Http\IntendedUrlService;
2026-03-12 14:09:06 +01:00
use PHPUnit\Framework\TestCase;
class AccessControlTest extends TestCase
{
private function createAccessControl(array $publicPaths = []): AccessControl
{
return new AccessControl($publicPaths, new IntendedUrlService());
}
2026-03-12 14:09:06 +01:00
public function testConfiguredPublicPathIsAccessible(): void
{
$accessControl = $this->createAccessControl(['imprint', 'privacy']);
2026-03-12 14:09:06 +01:00
$this->assertTrue($accessControl->isPublicPath('imprint'));
$this->assertTrue($accessControl->isPublicPath('/privacy'));
}
public function testPageSlugPathIsNotAutoPublic(): void
{
$accessControl = $this->createAccessControl(['imprint']);
2026-03-12 14:09:06 +01:00
$this->assertTrue($accessControl->isPublicPath('imprint'));
$this->assertFalse($accessControl->isPublicPath('page/imprint'));
}
public function testAlwaysPublicPrefixesRemainAccessible(): void
{
$accessControl = $this->createAccessControl([]);
2026-03-12 14:09:06 +01:00
$this->assertTrue($accessControl->isPublicPath('api/v1/health'));
$this->assertTrue($accessControl->isPublicPath('auth/microsoft/callback'));
}
}