mirror of
https://github.com/shlinkio/shlink.git
synced 2026-03-10 09:13:11 +08:00
Add CorsOptions test
This commit is contained in:
37
module/Core/test/Config/Options/CorsOptionsTest.php
Normal file
37
module/Core/test/Config/Options/CorsOptionsTest.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ShlinkioTest\Shlink\Core\Config\Options;
|
||||
|
||||
use Laminas\Diactoros\Response;
|
||||
use Laminas\Diactoros\ServerRequestFactory;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use PHPUnit\Framework\Attributes\TestWith;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Shlinkio\Shlink\Core\Config\Options\CorsOptions;
|
||||
|
||||
class CorsOptionsTest extends TestCase
|
||||
{
|
||||
#[Test]
|
||||
#[TestWith(['*', '*', '*'])]
|
||||
#[TestWith(['<origin>', '<origin>', 'https://example.com'])]
|
||||
#[TestWith(['foo,bar, baz ', ['foo', 'bar', 'baz'], ''])]
|
||||
#[TestWith(['foo,bar,https://example.com', ['foo', 'bar', 'https://example.com'], 'https://example.com'])]
|
||||
public function expectedAccessControlAllowOriginIsSet(
|
||||
string $allowOrigins,
|
||||
string|array $expectedAllowOrigins,
|
||||
string $expectedAllowOriginsHeader,
|
||||
): void {
|
||||
$options = new CorsOptions($allowOrigins);
|
||||
|
||||
self::assertEquals($expectedAllowOrigins, $options->allowOrigins);
|
||||
self::assertEquals(
|
||||
$expectedAllowOriginsHeader,
|
||||
$options->responseWithAllowOrigin(
|
||||
ServerRequestFactory::fromGlobals()->withHeader('Origin', 'https://example.com'),
|
||||
new Response()
|
||||
)->getHeaderLine('Access-Control-Allow-Origin'),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user