mirror of
https://github.com/flarum/core.git
synced 2025-08-06 16:36:47 +02:00
Tests: Extract trait for building requests
This commit is contained in:
48
tests/integration/BuildsHttpRequests.php
Normal file
48
tests/integration/BuildsHttpRequests.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Flarum.
|
||||
*
|
||||
* For detailed copyright and license information, please view the
|
||||
* LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Flarum\Tests\integration;
|
||||
|
||||
use Dflydev\FigCookies\SetCookie;
|
||||
use Laminas\Diactoros\CallbackStream;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
||||
/**
|
||||
* A collection of helpers for building PSR-7 requests for integration tests.
|
||||
*/
|
||||
trait BuildsHttpRequests
|
||||
{
|
||||
protected function requestWithJsonBody(Request $req, array $json): Request
|
||||
{
|
||||
return $req
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->withBody(
|
||||
new CallbackStream(function () use ($json) {
|
||||
return json_encode($json);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
protected function requestWithCookiesFrom(Request $req, Response $previous): Request
|
||||
{
|
||||
$cookies = array_reduce(
|
||||
$previous->getHeader('Set-Cookie'),
|
||||
function ($memo, $setCookieString) {
|
||||
$setCookie = SetCookie::fromSetCookieString($setCookieString);
|
||||
$memo[$setCookie->getName()] = $setCookie->getValue();
|
||||
|
||||
return $memo;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
return $req->withCookieParams($cookies);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user