test: add database test case, router and CSRF tests

This commit is contained in:
dualfroz committed 2026-08-27 23:09:49 +02:00
1 parent 4e33c680f5
commit be4d5811b1
3 files changed
+200

No files matched your search

+58
View File
@@ -0,0 +1,58 @@
<?php
namespace Bazaar\Tests;
use Bazaar\Core\Csrf;
use Bazaar\Core\Session;
use PHPUnit\Framework\TestCase;
final class CsrfTest extends TestCase
{
private Csrf $csrf;
protected function setUp(): void
{
$_SESSION = [];
$this->csrf = new Csrf(new Session());
}
public function testTokenIsStableWithinASession(): void
{
$this->assertSame($this->csrf->token(), $this->csrf->token());
}
public function testVerifyAcceptsTheIssuedToken(): void
{
$token = $this->csrf->token();
$this->assertTrue($this->csrf->verify($token));
}
public function testVerifyRejectsAWrongToken(): void
{
$this->csrf->token();
$this->assertFalse($this->csrf->verify('forged-token'));
}
public function testVerifyRejectsEmptyAndNull(): void
{
$this->csrf->token();
$this->assertFalse($this->csrf->verify(''));
$this->assertFalse($this->csrf->verify(null));
}
public function testVerifyFailsWhenNoTokenWasIssued(): void
{
$this->assertFalse($this->csrf->verify('anything'));
}
public function testFieldEmbedsTheToken(): void
{
$token = $this->csrf->token();
$this->assertStringContainsString($token, $this->csrf->field());
$this->assertStringContainsString('name="csrfToken"', $this->csrf->field());
}
}