mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-11-25 13:16:12 +01:00
tea/Tests/Functional/Controller/TeaControllerTest.php
Daniel Siepmann 555c43e18b
[FEATURE] Add first functional test using a request (#1021)
That way the extension serves as an example on how to use the TYPO3
internal requests provided by the TYPO3 testing framework.
Those can be used as integration tests.
They are also often easier to set up on existing projects and allow to
refactor the code base, compared to functional and unit tests.

Resolves: #859
2023-11-27 14:18:04 +01:00

52 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace TTN\Tea\Tests\Functional\Controller;
use TYPO3\TestingFramework\Core\Functional\Framework\Frontend\InternalRequest;
use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
/**
* @covers \TTN\Tea\Controller\TeaController
*/
final class TeaControllerTest extends FunctionalTestCase
{
protected array $testExtensionsToLoad = ['ttn/tea'];
protected array $coreExtensionsToLoad = ['typo3/cms-fluid-styled-content'];
protected array $pathsToLinkInTestInstance = [
'typo3conf/ext/tea/Tests/Functional/Controller/Fixtures/Sites/' => 'typo3conf/sites',
];
protected function setUp(): void
{
parent::setUp();
$this->importCSVDataSet(__DIR__ . '/Fixtures/Database/SiteStructure.csv');
$this->setUpFrontendRootPage(1, [
'setup' => [
'EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript',
'EXT:tea/Tests/Functional/Controller/Fixtures/TypoScript/Rendering.typoscript',
],
]);
}
/**
* @test
*/
public function indexActionRendersAllAvailableTeas(): void
{
$this->importCSVDataSet(__DIR__ . '/Fixtures/Database/ContentElementTeaIndex.csv');
$this->importCSVDataSet(__DIR__ . '/Fixtures/Database/Teas.csv');
$request = new InternalRequest();
$request = $request->withPageId(1);
$html = $this->executeFrontendRequest($request)->getBody()->__toString();
self::assertStringContainsString('Godesberger Burgtee', $html);
self::assertStringContainsString('Oolong', $html);
}
}