<?php namespace Tests\Functional; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Bundle\FrameworkBundle\Client; use Infinito\Domain\FixtureManagement\FixtureSource\HomepageFixtureSource; /** * @author kevinfrantz */ class FormatFunctionTest extends WebTestCase { /** * @var Client */ private $client; /** * @var string */ private $identity; /** * {@inheritdoc} * * @see \PHPUnit\Framework\TestCase::setUp() */ public function setUp(): void { $this->client = static::createClient(); $this->identity = HomepageFixtureSource::getSlug(); } public function testHomepage(): void { $this->client->request(Request::METHOD_GET, 'api/rest/source/'.$this->identity); $this->assertEquals(200, $this->client->getResponse() ->getStatusCode()); $this->assertJson($this->client->getResponse() ->getContent()); } public function testHomepageWithHTML(): void { $this->client->request(Request::METHOD_GET, 'api/rest/source/'.$this->identity.'.html'); $this->assertEquals(200, $this->client->getResponse() ->getStatusCode()); $this->assertContains('<html', $this->client->getResponse() ->getContent()); } public function testHomepageWithJSON(): void { $this->client->request(Request::METHOD_GET, 'api/rest/source/'.$this->identity.'.json'); $this->assertEquals(200, $this->client->getResponse() ->getStatusCode()); $this->assertJson($this->client->getResponse() ->getContent()); } public function testHomepageWithXML(): void { $this->client->request(Request::METHOD_GET, 'api/rest/source/'.$this->identity.'.xml'); $this->assertEquals(200, $this->client->getResponse() ->getStatusCode()); $content = $this->client->getResponse()->getContent(); $xml = new \XMLReader(); $xml->XML($content); $xml->setParserProperty(\XMLReader::VALIDATE, true); $this->assertTrue($xml->isValid()); } }