From 0501c0eac67fc1a7f76feda4f8c3559ab709185d Mon Sep 17 00:00:00 2001 From: Wouter Wolters <typo3@wouterwolters.nl> Date: Thu, 12 Aug 2021 19:19:57 +0200 Subject: [PATCH] [TASK] Strictify UnitTests part 2 The following core extensions are handled: EXT:reports EXT:redirects EXT:recycler EXT:recordlist EXT:opendocs EXT:linkvalidator Resolves: #94855 Releases: master Change-Id: Ifb6b2ca2f6c25dae2c3dab3d2d4ca6571312c9f4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/70512 Tested-by: core-ci <typo3@b13.com> Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> --- .../Unit/Linktype/ExternalLinktypeTest.php | 72 ++++++++----------- .../Unit/Service/OpenDocumentServiceTest.php | 24 +++---- .../Tests/Unit/Browser/FileBrowserTest.php | 8 ++- .../RecordList/DatabaseRecordListTest.php | 4 +- .../Unit/Task/CleanerFieldProviderTest.php | 25 +++---- .../Tests/Unit/Evaluation/SourceHostTest.php | 2 +- .../ValuePickerItemDataProviderTest.php | 12 ++-- .../Tests/Unit/Repository/DemandTest.php | 6 +- .../Unit/Service/RedirectServiceTest.php | 57 ++++++++------- .../Unit/Report/ServicesListReportTest.php | 19 ++--- 10 files changed, 106 insertions(+), 123 deletions(-) diff --git a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php index 70dffc9dd29a..c73164e1d849 100644 --- a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php +++ b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php @@ -21,6 +21,7 @@ use GuzzleHttp\Cookie\CookieJar; use GuzzleHttp\Exception\ClientException; use GuzzleHttp\Psr7\Response; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; use TYPO3\CMS\Core\Http\RequestFactory; use TYPO3\CMS\Core\Localization\LanguageService; @@ -31,7 +32,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; class ExternalLinktypeTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; + use ProphecyTrait; + protected function setUp(): void { parent::setUp(); @@ -50,7 +52,7 @@ class ExternalLinktypeTest extends UnitTestCase /** * @test */ - public function checkLinkWithExternalUrlNotFoundReturnsFalse() + public function checkLinkWithExternalUrlNotFoundReturnsFalse(): void { $responseProphecy = $this->prophesize(Response::class); $responseProphecy->getStatusCode()->willReturn(404); @@ -80,7 +82,7 @@ class ExternalLinktypeTest extends UnitTestCase /** * @test */ - public function checkLinkWithExternalUrlNotFoundResultsNotFoundErrorType() + public function checkLinkWithExternalUrlNotFoundResultsNotFoundErrorType(): void { $responseProphecy = $this->prophesize(Response::class); $responseProphecy->getStatusCode()->willReturn(404); @@ -130,7 +132,7 @@ class ExternalLinktypeTest extends UnitTestCase ]; } - public function preprocessUrlsDataProvider() + public function preprocessUrlsDataProvider(): \Generator { // regression test for issue #92230: handle incomplete or faulty URLs gracefully yield 'faulty URL with mailto' => [ @@ -195,7 +197,7 @@ class ExternalLinktypeTest extends UnitTestCase * @test * @dataProvider preprocessUrlsDataProvider */ - public function preprocessUrlReturnsCorrectString(string $inputUrl, $expectedResult) + public function preprocessUrlReturnsCorrectString(string $inputUrl, $expectedResult): void { $subject = new ExternalLinktype(); $method = new \ReflectionMethod($subject, 'preprocessUrl'); @@ -212,18 +214,15 @@ class ExternalLinktypeTest extends UnitTestCase $requestFactoryProphecy = $this->prophesize(RequestFactory::class); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::any())->shouldBeCalled(); - $externalLinktype = new ExternalLinktype($requestFactoryProphecy->reveal()); - $externalLinktype->setAdditionalConfig(['headers.' => [ + $externalLinkType = new ExternalLinktype($requestFactoryProphecy->reveal()); + $externalLinkType->setAdditionalConfig(['headers.' => [ 'X-MAS' => 'Merry!' ]]); - $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); + $externalLinkType->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { - if ($result['headers']['X-MAS'] === 'Merry!' && $result['headers']['User-Agent'] === 'TYPO3 linkvalidator') { - return true; - } - return false; + return $result['headers']['X-MAS'] === 'Merry!' && $result['headers']['User-Agent'] === 'TYPO3 linkvalidator'; }))->shouldBeCalled(); } @@ -235,15 +234,15 @@ class ExternalLinktypeTest extends UnitTestCase public function requestWithNoTimeoutIsCalledIfTimeoutNotSetByTsConfig(): void { $requestFactoryProphecy = $this->prophesize(RequestFactory::class); - $externalLinktype = new ExternalLinktype($requestFactoryProphecy->reveal()); - $externalLinktype->setAdditionalConfig([]); + $externalLinkType = new ExternalLinktype($requestFactoryProphecy->reveal()); + $externalLinkType->setAdditionalConfig([]); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { if (isset($result['timeout'])) { return false; } return true; }))->shouldBeCalled(); - $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); + $externalLinkType->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); } /** @@ -262,10 +261,7 @@ class ExternalLinktypeTest extends UnitTestCase $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { - if ($result['headers']['User-Agent'] === 'TYPO3 Testing') { - return true; - } - return false; + return $result['headers']['User-Agent'] === 'TYPO3 Testing'; }))->shouldBeCalled(); } @@ -277,18 +273,15 @@ class ExternalLinktypeTest extends UnitTestCase $requestFactoryProphecy = $this->prophesize(RequestFactory::class); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::any())->shouldBeCalled(); - $externalLinktype = new ExternalLinktype($requestFactoryProphecy->reveal()); - $externalLinktype->setAdditionalConfig([ + $externalLinkType = new ExternalLinktype($requestFactoryProphecy->reveal()); + $externalLinkType->setAdditionalConfig([ 'httpAgentUrl' => 'http://example.com' ]); - $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); + $externalLinkType->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { - if ($result['headers']['User-Agent'] === 'TYPO3 linkvalidator http://example.com') { - return true; - } - return false; + return $result['headers']['User-Agent'] === 'TYPO3 linkvalidator http://example.com'; }))->shouldBeCalled(); } @@ -308,10 +301,7 @@ class ExternalLinktypeTest extends UnitTestCase $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { - if ($result['headers']['User-Agent'] === 'TYPO3 linkvalidator;mail@example.com') { - return true; - } - return false; + return $result['headers']['User-Agent'] === 'TYPO3 linkvalidator;mail@example.com'; }))->shouldBeCalled(); } @@ -324,16 +314,13 @@ class ExternalLinktypeTest extends UnitTestCase $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::any())->shouldBeCalled(); $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'] = 'test@example.com'; - $externalLinktype = new ExternalLinktype($requestFactoryProphecy->reveal()); - $externalLinktype->setAdditionalConfig([]); + $externalLinkType = new ExternalLinktype($requestFactoryProphecy->reveal()); + $externalLinkType->setAdditionalConfig([]); - $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); + $externalLinkType->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'HEAD', Argument::that(function ($result) { - if ($result['headers']['User-Agent'] === 'TYPO3 linkvalidator;test@example.com') { - return true; - } - return false; + return $result['headers']['User-Agent'] === 'TYPO3 linkvalidator;test@example.com'; }))->shouldBeCalled(); } @@ -346,19 +333,16 @@ class ExternalLinktypeTest extends UnitTestCase $requestFactoryProphecy->request('http://example.com', 'GET', Argument::any())->shouldBeCalled(); $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'] = 'test@example.com'; - $externalLinktype = new ExternalLinktype($requestFactoryProphecy->reveal()); - $externalLinktype->setAdditionalConfig([ + $externalLinkType = new ExternalLinktype($requestFactoryProphecy->reveal()); + $externalLinkType->setAdditionalConfig([ 'method' => 'GET', 'range' => '0-2048' ]); - $externalLinktype->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); + $externalLinkType->checkLink('http://example.com', [], $this->prophesize(LinkAnalyzer::class)->reveal()); $requestFactoryProphecy->request('http://example.com', 'GET', Argument::that(function ($result) { - if ($result['headers']['Range'] === 'bytes=0-2048') { - return true; - } - return false; + return $result['headers']['Range'] === 'bytes=0-2048'; }))->shouldBeCalled(); } } diff --git a/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php b/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php index 3b13d7668cbb..3cd63d6a0f13 100644 --- a/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php +++ b/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Opendocs\Tests\Unit\Service; +use Prophecy\PhpUnit\ProphecyTrait; +use Prophecy\Prophecy\ObjectProphecy; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Opendocs\Service\OpenDocumentService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,16 +28,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ class OpenDocumentServiceTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; - /** - * @var OpenDocumentService - */ - protected $subject; + use ProphecyTrait; + + protected OpenDocumentService $subject; /** - * @var BackendUserAuthentication|\Prophecy\Prophecy\ObjectProphecy + * @var BackendUserAuthentication|ObjectProphecy */ - protected $backendUser; + protected ObjectProphecy $backendUser; /** * Set up this test case @@ -50,7 +50,7 @@ class OpenDocumentServiceTest extends UnitTestCase /** * @test */ - public function getsOpenDocumentsFromUserSession() + public function getsOpenDocumentsFromUserSession(): void { $this->backendUser->getModuleData('FormEngine', 'ses')->willReturn([ [ @@ -72,7 +72,7 @@ class OpenDocumentServiceTest extends UnitTestCase /** * @test */ - public function handlesUserSessionWithoutOpenDocuments() + public function handlesUserSessionWithoutOpenDocuments(): void { $this->backendUser->getModuleData('FormEngine', 'ses')->willReturn(); @@ -84,7 +84,7 @@ class OpenDocumentServiceTest extends UnitTestCase /** * @test */ - public function getsRecentDocumentsFromUserSession() + public function getsRecentDocumentsFromUserSession(): void { $this->backendUser->getModuleData('opendocs::recent')->willReturn([ 'identifier1' => [ 'data1' ], @@ -101,7 +101,7 @@ class OpenDocumentServiceTest extends UnitTestCase /** * @test */ - public function handlesUserSessionWithoutRecentDocuments() + public function handlesUserSessionWithoutRecentDocuments(): void { $this->backendUser->getModuleData('opendocs::recent')->willReturn(); @@ -113,7 +113,7 @@ class OpenDocumentServiceTest extends UnitTestCase /** * @test */ - public function closesDocument() + public function closesDocument(): void { $this->backendUser->getModuleData('FormEngine', 'ses')->willReturn([ [ diff --git a/typo3/sysext/recordlist/Tests/Unit/Browser/FileBrowserTest.php b/typo3/sysext/recordlist/Tests/Unit/Browser/FileBrowserTest.php index 8ce7efd70487..91f19c78e7ae 100644 --- a/typo3/sysext/recordlist/Tests/Unit/Browser/FileBrowserTest.php +++ b/typo3/sysext/recordlist/Tests/Unit/Browser/FileBrowserTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Recordlist\Tests\Unit\Browser; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent; use TYPO3\CMS\Backend\Template\ModuleTemplate; @@ -31,7 +32,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; class FileBrowserTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; + use ProphecyTrait; + /** * @test */ @@ -39,9 +41,9 @@ class FileBrowserTest extends UnitTestCase { [$moduleTemplate, $beUser] = $this->setupProphecies(); - $bparams = '|||gif,png,svg|data-4-pages-4-nav_icon-sys_file_reference'; + $bParams = '|||gif,png,svg|data-4-pages-4-nav_icon-sys_file_reference'; $fileBrowser = $this->getAccessibleMock(FileBrowser::class, ['dummy'], [], '', false); - $fileBrowser->_set('bparams', $bparams); + $fileBrowser->_set('bparams', $bParams); $fileBrowser->_set('moduleTemplate', $moduleTemplate); $fileBrowser->_set('request', $this->prophesize(ServerRequestInterface::class)->reveal()); $fileBrowser->render(); diff --git a/typo3/sysext/recordlist/Tests/Unit/RecordList/DatabaseRecordListTest.php b/typo3/sysext/recordlist/Tests/Unit/RecordList/DatabaseRecordListTest.php index 2859522ca36f..1282949fec5a 100644 --- a/typo3/sysext/recordlist/Tests/Unit/RecordList/DatabaseRecordListTest.php +++ b/typo3/sysext/recordlist/Tests/Unit/RecordList/DatabaseRecordListTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Recordlist\Tests\Unit\RecordList; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use TYPO3\CMS\Backend\Routing\Router; use TYPO3\CMS\Backend\Routing\UriBuilder; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -29,7 +30,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; class DatabaseRecordListTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; + use ProphecyTrait; + protected $resetSingletonInstances = true; protected DatabaseRecordList $subject; diff --git a/typo3/sysext/recycler/Tests/Unit/Task/CleanerFieldProviderTest.php b/typo3/sysext/recycler/Tests/Unit/Task/CleanerFieldProviderTest.php index b2ac3ddc608b..a573d668d0e5 100644 --- a/typo3/sysext/recycler/Tests/Unit/Task/CleanerFieldProviderTest.php +++ b/typo3/sysext/recycler/Tests/Unit/Task/CleanerFieldProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Recycler\Tests\Unit\Task; +use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Recycler\Task\CleanerFieldProvider; @@ -44,31 +45,31 @@ class CleanerFieldProviderTest extends UnitTestCase ->onlyMethods(['sL']) ->disableOriginalConstructor() ->getMock(); - $languageServiceMock->expects(self::any())->method('sL')->willReturn('titleTest'); + $languageServiceMock->method('sL')->willReturn('titleTest'); $this->subject = $this->getMockBuilder(CleanerFieldProvider::class) ->onlyMethods(['getLanguageService', 'addMessage']) ->getMock(); - $this->subject->expects(self::any())->method('getLanguageService')->willReturn($languageServiceMock); + $this->subject->method('getLanguageService')->willReturn($languageServiceMock); } /** * @param array $mockedMethods - * @return \PHPUnit\Framework\MockObject\MockObject|SchedulerModuleController + * @return MockObject|SchedulerModuleController */ - protected function getScheduleModuleControllerMock($mockedMethods = []) + protected function getScheduleModuleControllerMock(array $mockedMethods = []) { $languageServiceMock = $this->getMockBuilder(LanguageService::class) ->onlyMethods(['sL']) ->disableOriginalConstructor() ->getMock(); - $languageServiceMock->expects(self::any())->method('sL')->willReturn('titleTest'); + $languageServiceMock->method('sL')->willReturn('titleTest'); $mockedMethods = array_merge(['getLanguageService'], $mockedMethods); $scheduleModuleMock = $this->getMockBuilder(SchedulerModuleController::class) ->onlyMethods($mockedMethods) ->disableOriginalConstructor() ->getMock(); - $scheduleModuleMock->expects(self::any())->method('getLanguageService')->willReturn($languageServiceMock); + $scheduleModuleMock->method('getLanguageService')->willReturn($languageServiceMock); return $scheduleModuleMock; } @@ -76,7 +77,7 @@ class CleanerFieldProviderTest extends UnitTestCase /** * @return array */ - public function validateAdditionalFieldsLogsPeriodErrorDataProvider() + public function validateAdditionalFieldsLogsPeriodErrorDataProvider(): array { return [ ['abc'], @@ -93,7 +94,7 @@ class CleanerFieldProviderTest extends UnitTestCase * @test * @dataProvider validateAdditionalFieldsLogsPeriodErrorDataProvider */ - public function validateAdditionalFieldsLogsPeriodError($period) + public function validateAdditionalFieldsLogsPeriodError($period): void { $submittedData = [ 'RecyclerCleanerPeriod' => $period, @@ -111,7 +112,7 @@ class CleanerFieldProviderTest extends UnitTestCase /** * @return array */ - public function validateAdditionalFieldsDataProvider() + public function validateAdditionalFieldsDataProvider(): array { return [ ['abc'], @@ -126,7 +127,7 @@ class CleanerFieldProviderTest extends UnitTestCase * @test * @dataProvider validateAdditionalFieldsDataProvider */ - public function validateAdditionalFieldsLogsTableError($table) + public function validateAdditionalFieldsLogsTableError($table): void { $submittedData = [ 'RecyclerCleanerPeriod' => 14, @@ -139,7 +140,7 @@ class CleanerFieldProviderTest extends UnitTestCase /** * @test */ - public function validateAdditionalFieldsIsTrueIfValid() + public function validateAdditionalFieldsIsTrueIfValid(): void { $submittedData = [ 'RecyclerCleanerPeriod' => 14, @@ -154,7 +155,7 @@ class CleanerFieldProviderTest extends UnitTestCase /** * @test */ - public function saveAdditionalFieldsSavesFields() + public function saveAdditionalFieldsSavesFields(): void { $submittedData = [ 'RecyclerCleanerPeriod' => 14, diff --git a/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php b/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php index 7bd9cf10d415..eab089f351a0 100644 --- a/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php @@ -75,7 +75,7 @@ class SourceHostTest extends UnitTestCase * @param string $input * @param string $expected */ - public function evaluateFieldValueWorksWithDifferentInputs(string $input, string $expected) + public function evaluateFieldValueWorksWithDifferentInputs(string $input, string $expected): void { $subject = new SourceHost(); self::assertSame($expected, $subject->evaluateFieldValue($input)); diff --git a/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php b/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php index 9e373ba5a3bd..0b13ba6d2817 100644 --- a/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php +++ b/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\FormDataProvider; +use Prophecy\PhpUnit\ProphecyTrait; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\SiteFinder; use TYPO3\CMS\Redirects\FormDataProvider\ValuePickerItemDataProvider; @@ -24,8 +25,9 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; class ValuePickerItemDataProviderTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; - protected $sysRedirectResultSet = [ + use ProphecyTrait; + + protected array $sysRedirectResultSet = [ 'tableName' => 'sys_redirect', 'processedTca' => [ 'columns' => [ @@ -43,7 +45,7 @@ class ValuePickerItemDataProviderTest extends UnitTestCase /** * @test */ - public function addDataDoesNothingIfNoRedirectDataGiven() + public function addDataDoesNothingIfNoRedirectDataGiven(): void { $result = [ 'tableName' => 'tt_content', @@ -59,7 +61,7 @@ class ValuePickerItemDataProviderTest extends UnitTestCase /** * @test */ - public function addDataAddsHostsAsKeyAndValueToRedirectValuePicker() + public function addDataAddsHostsAsKeyAndValueToRedirectValuePicker(): void { // no results for now $siteFinderProphecy = $this->prophesize(SiteFinder::class); @@ -80,7 +82,7 @@ class ValuePickerItemDataProviderTest extends UnitTestCase /** * @test */ - public function addDataDoesNotChangeResultSetIfNoSitesAreFound() + public function addDataDoesNotChangeResultSetIfNoSitesAreFound(): void { $siteFinderProphecy = $this->prophesize(SiteFinder::class); $siteFinderProphecy->getAllSites()->willReturn([]); diff --git a/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php b/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php index 8ba93281e13b..6e33a8b1763b 100644 --- a/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php @@ -42,10 +42,10 @@ class DemandTest extends UnitTestCase /** * @test * @dataProvider getParametersRespectsDemandStateStateDataProvider - * @param string $input - * @param string $expected + * @param array $input + * @param array $expected */ - public function getParametersRespectsDemandState(array $input, array $expected) + public function getParametersRespectsDemandState(array $input, array $expected): void { self::assertEquals($expected, (new Demand(...$input))->getParameters()); } diff --git a/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php b/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php index 35dfa14de4f7..b3b31ac4d08d 100644 --- a/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Service; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; use Psr\Log\LoggerInterface; use TYPO3\CMS\Core\Http\ServerRequest; @@ -36,7 +37,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; class RedirectServiceTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; + use ProphecyTrait; + /** * @var bool Reset singletons created by subject */ @@ -45,27 +47,24 @@ class RedirectServiceTest extends UnitTestCase /** * @var RedirectCacheService|ObjectProphecy */ - protected $redirectCacheServiceProphecy; + protected ObjectProphecy $redirectCacheServiceProphecy; /** * @var LinkService|ObjectProphecy */ - protected $linkServiceProphecy; + protected ObjectProphecy $linkServiceProphecy; - /** - * @var RedirectService - */ - protected $redirectService; + protected RedirectService $redirectService; /** - * @var SiteFinder + * @var ObjectProphecy|SiteFinder */ - protected $siteFinder; + protected ObjectProphecy $siteFinder; /** * @var ObjectProphecy|RedirectRepository */ - protected $redirectRepository; + protected ObjectProphecy $redirectRepository; protected function setUp(): void { @@ -85,7 +84,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsNullIfNoRedirectsExist() + public function matchRedirectReturnsNullIfNoRedirectsExist(): void { $this->redirectCacheServiceProphecy->getRedirects()->willReturn([]); @@ -99,7 +98,7 @@ class RedirectServiceTest extends UnitTestCase * @dataProvider matchRedirectReturnsRedirectOnFlatMatchDataProvider * @param string $path */ - public function matchRedirectReturnsRedirectOnFlatMatch(string $path = '') + public function matchRedirectReturnsRedirectOnFlatMatch(string $path = ''): void { $row = [ 'target' => 'https://example.com', @@ -154,7 +153,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsRedirectOnRespectQueryParametersMatch() + public function matchRedirectReturnsRedirectOnRespectQueryParametersMatch(): void { $row = [ 'target' => 'https://example.com', @@ -186,7 +185,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsRedirectOnRespectQueryParametersMatchWithSlash() + public function matchRedirectReturnsRedirectOnRespectQueryParametersMatchWithSlash(): void { $row = [ 'target' => 'https://example.com', @@ -218,7 +217,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsRedirectOnFullRespectQueryParametersMatch() + public function matchRedirectReturnsRedirectOnFullRespectQueryParametersMatch(): void { $row = [ 'target' => 'https://example.com/target', @@ -250,7 +249,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsNullOnPartialRespectQueryParametersMatch() + public function matchRedirectReturnsNullOnPartialRespectQueryParametersMatch(): void { $row = [ 'target' => 'https://example.com/target', @@ -282,7 +281,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsMatchingRedirectWithMatchingQueryParametersOverMatchingPath() + public function matchRedirectReturnsMatchingRedirectWithMatchingQueryParametersOverMatchingPath(): void { $row1 = [ 'target' => 'https://example.com/no-promotion', @@ -330,7 +329,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsRedirectSpecificToDomainOnFlatMatchIfSpecificAndNonSpecificExist() + public function matchRedirectReturnsRedirectSpecificToDomainOnFlatMatchIfSpecificAndNonSpecificExist(): void { $row1 = [ 'target' => 'https://example.com', @@ -377,7 +376,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsRedirectOnRegexMatch() + public function matchRedirectReturnsRedirectOnRegexMatch(): void { $row = [ 'target' => 'https://example.com', @@ -408,7 +407,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function matchRedirectReturnsOnlyActiveRedirects() + public function matchRedirectReturnsOnlyActiveRedirects(): void { $row1 = [ 'target' => 'https://example.com', @@ -449,7 +448,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlReturnsNullIfUrlCouldNotBeResolved() + public function getTargetUrlReturnsNullIfUrlCouldNotBeResolved(): void { $this->linkServiceProphecy->resolve(Argument::any())->willThrow(new InvalidPathException('', 1516531195)); @@ -461,7 +460,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlReturnsUrlForTypeUrl() + public function getTargetUrlReturnsUrlForTypeUrl(): void { $redirectTargetMatch = [ 'target' => 'https://example.com', @@ -486,7 +485,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlReturnsUrlForTypeFile() + public function getTargetUrlReturnsUrlForTypeFile(): void { $fileProphecy = $this->prophesize(File::class); $fileProphecy->getPublicUrl()->willReturn('https://example.com/file.txt'); @@ -513,7 +512,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlReturnsUrlForTypeFolder() + public function getTargetUrlReturnsUrlForTypeFolder(): void { $folderProphecy = $this->prophesize(Folder::class); $folderProphecy->getPublicUrl()->willReturn('https://example.com/folder/'); @@ -541,7 +540,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlRespectsForceHttps() + public function getTargetUrlRespectsForceHttps(): void { $redirectTargetMatch = [ 'target' => 'https://example.com', @@ -566,7 +565,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlAddsExistingQueryParams() + public function getTargetUrlAddsExistingQueryParams(): void { $redirectTargetMatch = [ 'target' => 'https://example.com', @@ -592,7 +591,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlRespectsAdditionalParametersFromTypolink() + public function getTargetUrlRespectsAdditionalParametersFromTypolink(): void { /** @var RedirectService $redirectService */ $redirectService = $this->getAccessibleMock( @@ -629,7 +628,7 @@ class RedirectServiceTest extends UnitTestCase $request = $request->withQueryParams($queryParams); $request = $request->withAttribute('site', $site); $request = $request->withAttribute('frontend.user', $frontendUserAuthentication); - $redirectService->expects(self::any())->method('getUriFromCustomLinkDetails') + $redirectService->method('getUriFromCustomLinkDetails') ->with($redirectTargetMatch, $site, $linkDetails, $queryParams, $request) ->willReturn($uri); $result = $redirectService->getTargetUrl($redirectTargetMatch, $request); @@ -640,7 +639,7 @@ class RedirectServiceTest extends UnitTestCase /** * @test */ - public function getTargetUrlReplaceRegExpCaptureGroup() + public function getTargetUrlReplaceRegExpCaptureGroup(): void { $redirectTargetMatch = [ 'source_path' => '#^/foo/(.*)#', diff --git a/typo3/sysext/reports/Tests/Unit/Report/ServicesListReportTest.php b/typo3/sysext/reports/Tests/Unit/Report/ServicesListReportTest.php index b077ffe3e5e7..d88ed0dcace9 100644 --- a/typo3/sysext/reports/Tests/Unit/Report/ServicesListReportTest.php +++ b/typo3/sysext/reports/Tests/Unit/Report/ServicesListReportTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Reports\Tests\Unit\Report; use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -32,15 +33,10 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ class ServicesListReportTest extends UnitTestCase { - use \Prophecy\PhpUnit\ProphecyTrait; - /** - * @var ServicesListReport - */ - protected $subject; + use ProphecyTrait; + + protected ServicesListReport $subject; - /** - * SetUp - */ public function setUp(): void { parent::setUp(); @@ -53,7 +49,7 @@ class ServicesListReportTest extends UnitTestCase /** * @test */ - public function getReportCollectsRelevantDataToAssignThemToTemplateForResponse() + public function getReportCollectsRelevantDataToAssignThemToTemplateForResponse(): void { $standaloneViewProphecy = $this->standaloneViewProphecy(); @@ -69,7 +65,6 @@ class ServicesListReportTest extends UnitTestCase /** * @return ObjectProphecy - * @internal param $templatePath */ private function standaloneViewProphecy(): ObjectProphecy { @@ -77,7 +72,6 @@ class ServicesListReportTest extends UnitTestCase 'EXT:reports/Resources/Private/Templates/ServicesListReport.html' ); $serverRequestProphecy = $this->prophesize(Request::class); - /** @var ObjectProphecy $standaloneViewProphecy */ $standaloneViewProphecy = $this->prophesize(StandaloneView::class); $standaloneViewProphecy->getRequest()->willReturn($serverRequestProphecy->reveal()); $standaloneViewProphecy->setTemplatePathAndFilename($templatePath)->shouldBeCalled(); @@ -107,7 +101,6 @@ class ServicesListReportTest extends UnitTestCase */ private function reportControllerProphecy(): ObjectProphecy { - $reportControllerProphecy = $this->prophesize(ReportController::class); - return $reportControllerProphecy; + return $this->prophesize(ReportController::class); } } -- GitLab