. */ namespace SP\Tests; use Goutte\Client; use PHPUnit\Framework\TestCase; use stdClass; use Symfony\Component\BrowserKit\Response; /** * Class WebTestCase * * @package SP\Tests\SP */ abstract class WebTestCase extends TestCase { /** * @param string $url * @param mixed $content Unencoded JSON data * * @return Client */ protected static function postJson(string $url, $content = '') { $client = self::createClient(); $client->request('POST', $url, [], [], ['HTTP_CONTENT_TYPE' => 'application/json'], json_encode($content)); return $client; } /** * @param array $server * * @return Client */ protected static function createClient(array $server = []) { return new Client($server); } /** * @param Client $client * * @param int $httpCode * * @return stdClass */ protected static function checkAndProcessJsonResponse(Client $client, $httpCode = 200) { /** @var Response $response */ $response = $client->getResponse(); self::assertEquals($httpCode, $response->getStatus()); self::assertEquals('application/json; charset=utf-8', $response->getHeader('Content-Type')); return json_decode($response->getContent()); } }