diff --git a/Classes/ViewHelpers/Condition/Page/IsLanguageViewHelper.php b/Classes/ViewHelpers/Condition/Page/IsLanguageViewHelper.php index 8e177b3be..6f9259587 100644 --- a/Classes/ViewHelpers/Condition/Page/IsLanguageViewHelper.php +++ b/Classes/ViewHelpers/Condition/Page/IsLanguageViewHelper.php @@ -42,15 +42,11 @@ public static function verdict(array $arguments, RenderingContextInterface $rend /** @var string $defaultTitle */ $defaultTitle = $arguments['defaultTitle']; - if (class_exists(LanguageAspect::class)) { - /** @var Context $context */ - $context = GeneralUtility::makeInstance(Context::class); - /** @var LanguageAspect $languageAspect */ - $languageAspect = $context->getAspect('language'); - $currentLanguageUid = $languageAspect->getId(); - } else { - $currentLanguageUid = $GLOBALS['TSFE']->sys_language_uid; - } + /** @var Context $context */ + $context = GeneralUtility::makeInstance(Context::class); + /** @var LanguageAspect $languageAspect */ + $languageAspect = $context->getAspect('language'); + $currentLanguageUid = $languageAspect->getId(); if (is_numeric($language)) { $languageUid = intval($language); @@ -81,6 +77,7 @@ public static function verdict(array $arguments, RenderingContextInterface $rend } } } + return $languageUid === $currentLanguageUid; } } diff --git a/Classes/ViewHelpers/Resource/LanguageViewHelper.php b/Classes/ViewHelpers/Resource/LanguageViewHelper.php index bef55b536..3e3681504 100644 --- a/Classes/ViewHelpers/Resource/LanguageViewHelper.php +++ b/Classes/ViewHelpers/Resource/LanguageViewHelper.php @@ -11,7 +11,10 @@ use FluidTYPO3\Vhs\Traits\TemplateVariableViewHelperTrait; use FluidTYPO3\Vhs\Utility\ContextUtility; use FluidTYPO3\Vhs\Utility\RequestResolver; +use Psr\Http\Message\ServerRequestInterface; +use TYPO3\CMS\Core\Localization\Locale; use TYPO3\CMS\Core\Localization\LocalizationFactory; +use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Lang\LanguageService; @@ -161,7 +164,16 @@ protected function getInitializedLanguage(): string $language = 'default'; if (ContextUtility::isFrontend()) { - $language = $GLOBALS['TSFE']->lang; + /** @var ServerRequestInterface $request */ + $request = $GLOBALS['TYPO3_REQUEST']; + /** @var SiteLanguage $language */ + $language = $request->getAttribute('language'); + /** @var Locale|string $locale */ + $locale = $language->getLocale(); + if (is_string($locale)) { + return $locale; + } + return $locale->getLanguageCode(); } elseif ($GLOBALS['LANG'] instanceof LanguageService) { $language = $GLOBALS['LANG']->lang; } diff --git a/Classes/ViewHelpers/Resource/Record/FalViewHelper.php b/Classes/ViewHelpers/Resource/Record/FalViewHelper.php index 6579ff845..6832c4106 100644 --- a/Classes/ViewHelpers/Resource/Record/FalViewHelper.php +++ b/Classes/ViewHelpers/Resource/Record/FalViewHelper.php @@ -17,7 +17,6 @@ use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException; use TYPO3\CMS\Core\Resource\FileReference; -use TYPO3\CMS\Core\Resource\FileRepository; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Versioning\VersionState; diff --git a/Tests/Unit/Service/PageServiceTest.php b/Tests/Unit/Service/PageServiceTest.php index b6770db8f..18ffcad57 100644 --- a/Tests/Unit/Service/PageServiceTest.php +++ b/Tests/Unit/Service/PageServiceTest.php @@ -34,7 +34,7 @@ public function testGetMenu(): void $pageRepository = $this->createPageRepositoryMock(['getPage', 'getMenu', 'getPageOverlay']); $pageRepository->method('getPage')->willReturn(['uid' => 2]); $pageRepository->method('getMenu')->willReturn([['uid' => 2]]); - $pageRepository->method('getPageOverlay')->willReturn(null); + $pageRepository->method('getPageOverlay')->willReturn([]); $subject = $this->getMockBuilder(PageService::class) ->setMethods(['getPageRepository']) diff --git a/Tests/Unit/ViewHelpers/AbstractViewHelperTestCase.php b/Tests/Unit/ViewHelpers/AbstractViewHelperTestCase.php index 7286da8ac..f79683731 100644 --- a/Tests/Unit/ViewHelpers/AbstractViewHelperTestCase.php +++ b/Tests/Unit/ViewHelpers/AbstractViewHelperTestCase.php @@ -11,6 +11,7 @@ use FluidTYPO3\Vhs\Tests\Fixtures\Classes\DummyViewHelperNode; use FluidTYPO3\Vhs\Tests\Unit\AbstractTestCase; use PHPUnit\Framework\MockObject\MockObject; +use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Controller\DummyController; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Http\ServerRequest; @@ -25,6 +26,7 @@ use TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3Fluid\Fluid\Core\ErrorHandler\ErrorHandlerInterface; +use TYPO3Fluid\Fluid\Core\ErrorHandler\StandardErrorHandler; use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\NodeInterface; use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ObjectAccessorNode; use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode; @@ -111,10 +113,9 @@ protected function setUp(): void $this->renderingContext = $this->getMockBuilder(RenderingContext::class) ->disableOriginalConstructor() ->getMock(); - $this->errorHandler = $this->getMockBuilder(ErrorHandlerInterface::class)->getMockForAbstractClass(); + $this->errorHandler = new StandardErrorHandler(); $this->templateParser = new TemplateParser(); $this->templateParser->setRenderingContext($this->renderingContext); - $this->errorHandler->method('handleViewHelperError')->willThrowException(new Exception('dummy')); $this->renderingContext->method('getViewHelperResolver')->willReturn($this->viewHelperResolver); $this->renderingContext->method('getViewHelperVariableContainer')->willReturn( @@ -202,9 +203,23 @@ protected function createInstance(): ViewHelperInterface if (method_exists($instance, 'injectConfigurationManager')) { $cObject = $this->getMockBuilder(ContentObjectRenderer::class)->disableOriginalConstructor()->getMock(); $cObject->start(['uid' => 123], 'tt_content'); - /** @var ConfigurationManagerInterface $configurationManager */ - $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class)->getMockForAbstractClass(); - $configurationManager->method('getContentObject')->willReturn($cObject); + + if (method_exists(ConfigurationManagerInterface::class, 'getContentObject')) { + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class)->getMock(); + $configurationManager->method('getContentObject')->willReturn($cObject); + } else { + $request = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); + $request->method('getAttribute')->willReturn($cObject); + + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) + ->onlyMethods(['getConfiguration', 'setConfiguration', 'setRequest']) + ->addMethods(['getRequest']) + ->getMock(); + $configurationManager->method('getRequest')->willReturn($request); + } + $instance->injectConfigurationManager($configurationManager); } $instance->setRenderingContext($this->renderingContext); diff --git a/Tests/Unit/ViewHelpers/Condition/Page/IsLanguageViewHelperTest.php b/Tests/Unit/ViewHelpers/Condition/Page/IsLanguageViewHelperTest.php index cd49a03b0..9371d21a7 100644 --- a/Tests/Unit/ViewHelpers/Condition/Page/IsLanguageViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Condition/Page/IsLanguageViewHelperTest.php @@ -8,30 +8,70 @@ * LICENSE.md file that was distributed with this source code. */ +use FluidTYPO3\Vhs\Tests\Fixtures\Classes\DummyQueryBuilder; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTest; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTestCase; +use FluidTYPO3\Vhs\ViewHelpers\Condition\Page\IsLanguageViewHelper; +use TYPO3\CMS\Core\Context\Context; +use TYPO3\CMS\Core\Context\LanguageAspect; +use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\DatabaseConnection; -use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; +use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Core\Utility\VersionNumberUtility; +use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** * Class IsLanguageViewHelperTest */ class IsLanguageViewHelperTest extends AbstractViewHelperTestCase { - public function testRender() + protected function setUp(): void { - $GLOBALS['TYPO3_DB'] = $this->getMockBuilder(DatabaseConnection::class)->setMethods(['exec_SELECTgetSingleRow'])->disableOriginalConstructor()->getMock(); - $GLOBALS['TYPO3_DB']->expects($this->any())->method('exec_SELECTgetSingleRow')->will($this->returnValue(false)); - - $GLOBALS['TSFE'] = $this->getMockBuilder(TypoScriptFrontendController::class)->disableOriginalConstructor()->getMock(); - $GLOBALS['TSFE']->expects($this->any())->method('__get')->with('sys_language_uid')->willReturn(0); - - $arguments = [ - 'then' => 'then', - 'else' => 'else', - 'language' => 0 - ]; - $result = $this->executeViewHelper($arguments); - $this->assertEquals('then', $result); + $language = $this->getMockBuilder(LanguageAspect::class) + ->onlyMethods(['getId']) + ->disableOriginalConstructor() + ->getMock(); + $language->method('getId')->willReturn(123); + + $context = $this->getMockBuilder(Context::class) + ->onlyMethods(['getAspect']) + ->disableOriginalConstructor() + ->getMock(); + $context->method('getAspect')->with('language')->willReturn($language); + + $this->singletonInstances[Context::class] = $context; + + parent::setUp(); + } + + public function testWithLanguageAsStringLocale(): void + { + $queryBuilder = new DummyQueryBuilder($this); + if (version_compare(VersionNumberUtility::getCurrentTypo3Version(), '10.4', '>=')) { + $queryBuilder->result->method('fetchAssociative')->willReturn(['uid' => 123]); + } else { + $queryBuilder->result->method('fetch')->willReturn(['uid' => 123]); + } + + $connectionPool = $this->getMockBuilder(ConnectionPool::class) + ->onlyMethods(['getQueryBuilderForTable']) + ->disableOriginalConstructor() + ->getMock(); + $connectionPool->method('getQueryBuilderForTable')->willReturn($queryBuilder); + + GeneralUtility::addInstance(ConnectionPool::class, $connectionPool); + + $renderingContext = $this->getMockBuilder(RenderingContextInterface::class)->getMock(); + self::assertTrue( + IsLanguageViewHelper::verdict(['language' => 'en', 'defaultTitle' => 'en'], $renderingContext) + ); + } + + public function testWithLanguageAsUid(): void + { + $renderingContext = $this->getMockBuilder(RenderingContextInterface::class)->getMock(); + self::assertTrue( + IsLanguageViewHelper::verdict(['language' => 123, 'defaultTitle' => 'en'], $renderingContext) + ); } } diff --git a/Tests/Unit/ViewHelpers/Content/InfoViewHelperTest.php b/Tests/Unit/ViewHelpers/Content/InfoViewHelperTest.php index a92abfae8..12fb33aec 100644 --- a/Tests/Unit/ViewHelpers/Content/InfoViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Content/InfoViewHelperTest.php @@ -10,6 +10,7 @@ use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTest; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTestCase; +use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -29,11 +30,20 @@ public function testRender() $contentObject->data = $record; $contentObject->method('getCurrentTable')->willReturn('tt_content'); - $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) - ->onlyMethods(['getContentObject']) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $configurationManager->method('getContentObject')->willReturn($contentObject); + if (method_exists(ConfigurationManagerInterface::class, 'getContentObject')) { + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class)->getMock(); + $configurationManager->method('getContentObject')->willReturn($contentObject); + } else { + $request = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); + $request->method('getAttribute')->willReturn($contentObject); + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) + ->onlyMethods(['getConfiguration', 'setConfiguration', 'setRequest']) + ->addMethods(['getRequest']) + ->getMock(); + $configurationManager->method('getRequest')->willReturn($request); + } $instance = $this->createInstance(); $arguments = $this->buildViewHelperArguments($instance, []); diff --git a/Tests/Unit/ViewHelpers/Format/Placeholder/LipsumViewHelperTest.php b/Tests/Unit/ViewHelpers/Format/Placeholder/LipsumViewHelperTest.php index fd566e9ad..c441a45ab 100644 --- a/Tests/Unit/ViewHelpers/Format/Placeholder/LipsumViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Format/Placeholder/LipsumViewHelperTest.php @@ -11,6 +11,7 @@ use FluidTYPO3\Vhs\Tests\Fixtures\Classes\AccessibleExtensionManagementUtility; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTest; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTestCase; +use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Package\PackageManager; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -48,10 +49,23 @@ protected function setUp(): void ->disableOriginalConstructor() ->getMock(); $mockContentObject->method('parseFunc')->willReturn('foobar'); - $this->singletonInstances[ConfigurationManagerInterface::class] = $this->getMockBuilder(ConfigurationManagerInterface::class) - ->getMockForAbstractClass(); - $this->singletonInstances[ConfigurationManagerInterface::class]->method('getContentObject') - ->willReturn($mockContentObject); + + if (method_exists(ConfigurationManagerInterface::class, 'getContentObject')) { + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class)->getMock(); + $configurationManager->method('getContentObject')->willReturn($mockContentObject); + } else { + $request = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); + $request->method('getAttribute')->willReturn($mockContentObject); + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) + ->onlyMethods(['getConfiguration', 'setConfiguration', 'setRequest']) + ->addMethods(['getRequest']) + ->getMock(); + $configurationManager->method('getRequest')->willReturn($request); + } + + $this->singletonInstances[ConfigurationManagerInterface::class] = $configurationManager; $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'] = []; diff --git a/Tests/Unit/ViewHelpers/Once/InstanceViewHelperTest.php b/Tests/Unit/ViewHelpers/Once/InstanceViewHelperTest.php index ff0e815e8..d24497db4 100644 --- a/Tests/Unit/ViewHelpers/Once/InstanceViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Once/InstanceViewHelperTest.php @@ -10,6 +10,10 @@ use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTest; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTestCase; +use TYPO3\CMS\Core\Utility\VersionNumberUtility; +use TYPO3\CMS\Extbase\Mvc\Request; +use TYPO3\CMS\Extbase\Mvc\RequestInterface; +use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext; /** * Class InstanceViewHelperTest @@ -23,9 +27,44 @@ class InstanceViewHelperTest extends AbstractViewHelperTestCase */ public function testGetIdentifier($identifierArgument, $expectedIdentifier) { + if (version_compare(VersionNumberUtility::getCurrentTypo3Version(), '12.4', '>=')) { + $request = $this->getMockBuilder(RequestInterface::class)->getMock(); + } else { + $request = $this->getMockBuilder(Request::class) + ->disableOriginalConstructor() + ->onlyMethods( + [ + 'getControllerActionName', + 'getControllerName', + 'getControllerObjectName', + 'getControllerExtensionName', + 'getPluginName', + ] + ) + ->getMock(); + } + + $request->method('getControllerActionName')->willReturn('action'); + $request->method('getControllerName')->willReturn('Controller'); + $request->method('getControllerObjectName')->willReturn('Controller'); + $request->method('getControllerExtensionName')->willReturn('Vhs'); + $request->method('getPluginName')->willReturn('Plugin'); + if (method_exists(RenderingContext::class, 'getRequest')) { + $renderingContext = $this->getMockBuilder(RenderingContext::class) + ->disableOriginalConstructor() + ->onlyMethods(['getRequest']) + ->getMock(); + } else { + $renderingContext = $this->getMockBuilder(RenderingContext::class) + ->disableOriginalConstructor() + ->addMethods(['getRequest']) + ->getMock(); + } + + $renderingContext->method('getRequest')->willReturn($request); + $instance = $this->createInstance(); - $instance->setArguments(['identifier' => $identifierArgument]); - $instance::renderStatic(['identifier' => $identifierArgument], function() { return ''; }, $this->renderingContext); + $this->setInaccessiblePropertyValue($instance, 'currentRenderingContext', $renderingContext); $result = $this->callInaccessibleMethod($instance, 'getIdentifier', ['identifier' => $identifierArgument]); $this->assertEquals($expectedIdentifier, $result); } @@ -36,7 +75,7 @@ public function testGetIdentifier($identifierArgument, $expectedIdentifier) public function getIdentifierTestValues() { return [ - [null, 'action_Controller__Vhs'], + [null, 'action_Controller_Plugin_Vhs'], ['test', 'test'], ['test2', 'test2'], ]; diff --git a/Tests/Unit/ViewHelpers/Resource/AbstractImageViewHelperTest.php b/Tests/Unit/ViewHelpers/Resource/AbstractImageViewHelperTest.php index 28334e27f..77652baab 100644 --- a/Tests/Unit/ViewHelpers/Resource/AbstractImageViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Resource/AbstractImageViewHelperTest.php @@ -11,6 +11,7 @@ use FluidTYPO3\Vhs\Tests\Unit\AbstractTestCase; use FluidTYPO3\Vhs\ViewHelpers\Resource\AbstractImageViewHelper; +use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Resource\File; @@ -40,9 +41,20 @@ protected function setUp(): void ->disableOriginalConstructor() ->getMock(); - $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) - ->getMockForAbstractClass(); - $configurationManager->method('getContentObject')->willReturn($this->contentObjectRenderer); + if (method_exists(ConfigurationManagerInterface::class, 'getContentObject')) { + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class)->getMock(); + $configurationManager->method('getContentObject')->willReturn($this->contentObjectRenderer); + } else { + $request = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); + $request->method('getAttribute')->willReturn($this->contentObjectRenderer); + /** @var ConfigurationManagerInterface $configurationManager */ + $configurationManager = $this->getMockBuilder(ConfigurationManagerInterface::class) + ->onlyMethods(['getConfiguration', 'setConfiguration', 'setRequest']) + ->addMethods(['getRequest']) + ->getMock(); + $configurationManager->method('getRequest')->willReturn($request); + } $this->subject->injectConfigurationManager($configurationManager); diff --git a/Tests/Unit/ViewHelpers/Resource/LanguageViewHelperTest.php b/Tests/Unit/ViewHelpers/Resource/LanguageViewHelperTest.php index 15ef60789..39b54d530 100644 --- a/Tests/Unit/ViewHelpers/Resource/LanguageViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Resource/LanguageViewHelperTest.php @@ -11,10 +11,14 @@ use FluidTYPO3\Vhs\Tests\Fixtures\Classes\AccessibleExtensionManagementUtility; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTest; use FluidTYPO3\Vhs\Tests\Unit\ViewHelpers\AbstractViewHelperTestCase; +use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; +use TYPO3\CMS\Core\Http\ServerRequest; +use TYPO3\CMS\Core\Localization\Locale; use TYPO3\CMS\Core\Localization\LocalizationFactory; use TYPO3\CMS\Core\Package\Package; use TYPO3\CMS\Core\Package\PackageManager; -use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; +use TYPO3\CMS\Core\Site\Entity\SiteLanguage; +use TYPO3\CMS\Core\Utility\VersionNumberUtility; /** * Class LanguageViewHelperTest @@ -47,9 +51,23 @@ protected function setUp(): void */ public function testRenderFailsWhenUnableToResolveExtensionName() { - $GLOBALS['TSFE'] = $this->getMockBuilder(TypoScriptFrontendController::class) + $language = $this->getMockBuilder(SiteLanguage::class) + ->onlyMethods(['getLocale']) ->disableOriginalConstructor() ->getMock(); + if (version_compare(VersionNumberUtility::getCurrentTypo3Version(), '12.4', '>=')) { + $language->method('getLocale')->willReturn(new Locale()); + } else { + $language->method('getLocale')->willReturn('en'); + } + + $GLOBALS['TYPO3_REQUEST'] = $this->getMockBuilder(ServerRequest::class) + ->addMethods(['dummy']) + ->disableOriginalConstructor() + ->getMock(); + $GLOBALS['TYPO3_REQUEST'] = $GLOBALS['TYPO3_REQUEST'] + ->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_FE) + ->withAttribute('language', $language); $output = $this->executeViewHelper(); self::assertSame([], $output); diff --git a/Tests/Unit/ViewHelpers/Resource/Record/AbstractRecordResourceViewHelperTest.php b/Tests/Unit/ViewHelpers/Resource/Record/AbstractRecordResourceViewHelperTest.php index d5ac92df3..493ccf16d 100644 --- a/Tests/Unit/ViewHelpers/Resource/Record/AbstractRecordResourceViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/Resource/Record/AbstractRecordResourceViewHelperTest.php @@ -96,7 +96,7 @@ public function testThrowsExceptionWithoutField(): void public function testRenderThrowsExceptionWithoutRecord(): void { $queryBuilder = new DummyQueryBuilder($this); - $queryBuilder->result->method('fetchAssociative')->willReturn(null); + $queryBuilder->result->method('fetchAssociative')->willReturn(false); self::expectExceptionCode(1384611413); $this->subject->setArguments(['uid' => 123, 'table' => 'table', 'field' => 'field']); diff --git a/phpstan.neon b/phpstan.neon index e5b0af369..7327ff128 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -36,6 +36,7 @@ parameters: - "#(unknown class|invalid( return)? type) TYPO3\\\\CMS\\\\Extbase\\\\Domain\\\\Model\\\\BackendUser(Group)?#" - "#(unknown class|invalid( return)? type) TYPO3\\\\CMS\\\\Extbase\\\\Mvc\\\\View\\\\ViewInterface#" - "#(unknown class|invalid( return)? type) Doctrine\\\\DBAL\\\\FetchMode#" + - "#unknown class TYPO3\\\\CMS\\\\Core\\\\Localization\\\\Locale#" - "#unknown class TYPO3\\\\CMS\\\\Core\\\\Context\\\\Context#" - "#unknown class TYPO3\\\\CMS\\\\Core\\\\Context\\\\LanguageAspect#" - "#unknown class TYPO3\\\\CMS\\\\Core\\\\Site\\\\Entity\\\\Site#"