40 lines
1.2 KiB
PHP
40 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Slovocast\Tests\Controller;
|
|
|
|
use Slovocast\Tests\TestCase;
|
|
use Slovocast\Handler\AsyncHandler;
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
|
|
class AsyncHandlerTest extends TestCase
|
|
{
|
|
public function testHtmlAcceptHeader(): void
|
|
{
|
|
$asyncHtmlHandler = new class extends AsyncHandler {
|
|
public function handle(): Response
|
|
{
|
|
$template = "<ul>
|
|
{% for item in list %}
|
|
<li>{{ item }}</li>
|
|
{% endfor %}
|
|
</ul>";
|
|
|
|
return $this->prepareResponse([ 'list' => [ 1, 2, 3 ]], $template);
|
|
}
|
|
};
|
|
|
|
$app = $this->getAppInstance();
|
|
$app->get('/test', $asyncHtmlHandler);
|
|
|
|
$request = $this->createRequest('GET', '/test', [ 'Accept' => 'text/html' ]);
|
|
$response = $app->handle($request);
|
|
|
|
$this->assertStringContainsString('<li>1</li>', $response->getBody());
|
|
|
|
$request = $this->createRequest('GET', '/test', [ 'Accept' => 'application/json']);
|
|
$response = $app->handle($request);
|
|
|
|
$this->assertEquals('{"list":[1,2,3]}', $response->getBody());
|
|
}
|
|
}
|