test: add unit coverage for Request::getHeader non-string coercion

Refs CLO-4280
This commit is contained in:
Damodar Lohani
2026-04-28 04:15:00 +00:00
parent 9637409831
commit 30a511692b
+31
View File
@@ -161,6 +161,37 @@ class RequestTest extends TestCase
$this->assertSame($secondRoute, $secondRequest->getRoute());
}
public function testGetHeaderReturnsStringValue(): void
{
$this->request->addHeader('referer', 'https://example.com');
$this->assertSame('https://example.com', $this->request->getHeader('referer'));
}
public function testGetHeaderReturnsDefaultWhenMissing(): void
{
$this->assertSame('', $this->request->getHeader('referer'));
$this->assertSame('fallback', $this->request->getHeader('referer', 'fallback'));
}
public function testGetHeaderCoercesArrayToFirstElement(): void
{
$swoole = new SwooleRequest();
$swoole->header = ['referer' => ['https://a.example', 'https://b.example']];
$request = new Request($swoole);
$this->assertSame('https://a.example', $request->getHeader('referer'));
}
public function testGetHeaderReturnsDefaultWhenValueNotString(): void
{
$swoole = new SwooleRequest();
$swoole->header = ['referer' => 123];
$request = new Request($swoole);
$this->assertSame('fallback', $request->getHeader('referer', 'fallback'));
}
/**
* Helper to attach a route with multiple SDK methods to the request.
*/