Skip to content

Commit 9912fbd

Browse files
committed
Update Response::getStatus method
1 parent 75926c2 commit 9912fbd

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

src/Response.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,11 @@ public function removeCspReportOnly() : static
325325
#[Pure]
326326
public function getStatus() : string
327327
{
328-
return "{$this->statusCode} {$this->statusReason}";
328+
$reason = '';
329+
if ($this->getProtocol() < 'HTTP/2') {
330+
$reason = ' ' . $this->statusReason;
331+
}
332+
return $this->statusCode . $reason;
329333
}
330334

331335
/**

tests/ResponseTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,30 @@ public function testStatus() : void
527527
self::assertSame('483 Custom', $this->response->getStatus());
528528
}
529529

530+
public function testStatusByProtocol() : void
531+
{
532+
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.0';
533+
$request = new Request();
534+
$response = new Response($request);
535+
self::assertSame('200 OK', $response->getStatus());
536+
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.1';
537+
$request = new Request();
538+
$response = new Response($request);
539+
self::assertSame('200 OK', $response->getStatus());
540+
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/2.0';
541+
$request = new Request();
542+
$response = new Response($request);
543+
self::assertSame('200', $response->getStatus());
544+
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/2';
545+
$request = new Request();
546+
$response = new Response($request);
547+
self::assertSame('200', $response->getStatus());
548+
$_SERVER['SERVER_PROTOCOL'] = 'HTTP/3';
549+
$request = new Request();
550+
$response = new Response($request);
551+
self::assertSame('200', $response->getStatus());
552+
}
553+
530554
public function testStartLine() : void
531555
{
532556
self::assertSame(

0 commit comments

Comments
 (0)