Skip to content

Commit

Permalink
ResponseHeaderMiddleware::addHeaders test examples
Browse files Browse the repository at this point in the history
Signed-off-by: alexmerlin <[email protected]>
  • Loading branch information
alexmerlin committed Jul 27, 2023
1 parent c28c11b commit 89304ac
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 5 deletions.
7 changes: 5 additions & 2 deletions src/Middleware/ResponseHeaderMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,11 @@ public function addHeaders(ResponseInterface $response, string $route): Response
if (! array_key_exists('value', $data)) {
continue;
}
$overwrite = isset($data['overwrite']) && $data['overwrite'] === true;
if ($overwrite) {
$addHeader = true;
if ($response->hasHeader($header)) {
$addHeader = isset($data['overwrite']) && $data['overwrite'] === true;
}
if ($addHeader === true) {
$response = $response->withHeader($header, $data['value']);
}
}
Expand Down
38 changes: 35 additions & 3 deletions test/Middleware/ResponseHeaderMiddlewareTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace DotTest\ResponseHeader;

use Dot\ResponseHeader\Middleware\ResponseHeaderMiddleware;
use Laminas\Diactoros\Response;
use PHPUnit\Framework\MockObject\Exception;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -47,10 +48,41 @@ public function testProcess()
$this->assertIsString($data->getReasonPhrase());
}

public function testAddHeaders()
public function testWillNotAddHeadersWithoutCommonWithoutRouteSpecificHeadersConfigured(): void
{
$data = $this->responseHeader->addHeaders($this->responseInterface, '');
$responseHeader = new ResponseHeaderMiddleware([]);

$this->assertInstanceOf(ResponseInterface::class, $data);
$response = new Response();
$response = $responseHeader->addHeaders($response, 'test');

$this->assertEmpty($response->getHeaders());
}

public function testWillAddHeadersWithCommonWithoutRouteSpecificHeadersConfigured(): void
{
$responseHeader = new ResponseHeaderMiddleware([
'*' => [
'CustomHeader1' => [
'value' => 'CustomHeader1-Value',
'overwrite' => true,
],
'CustomHeader2' => [
'value' => 'CustomHeader2-Value',
'overwrite' => false,
],
],
]);

$response = new Response();

$response = $responseHeader->addHeaders($response, 'test');
$this->assertEmpty($response->getHeaders());
$this->assertFalse($response->hasHeader('CustomHeader1'));
$this->assertFalse($response->hasHeader('CustomHeader2'));

$response = $responseHeader->addHeaders($response, '*');
$this->assertCount(2, $response->getHeaders());
$this->assertTrue($response->hasHeader('CustomHeader1'));
$this->assertTrue($response->hasHeader('CustomHeader2'));
}
}

0 comments on commit 89304ac

Please sign in to comment.