‪TYPO3CMS  ‪main
ExtensionServiceTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
21 use PHPUnit\Framework\MockObject\MockObject;
22 use Psr\Container\ContainerInterface;
29 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
30 
31 final class ‪ExtensionServiceTest extends FunctionalTestCase
32 {
33  protected array ‪$testExtensionsToLoad = ['typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'];
34 
37  protected ContainerInterface&MockObject ‪$containerMock;
38 
39  protected function ‪setUp(): void
40  {
41  parent::setUp();
42  ‪$GLOBALS['TYPO3_REQUEST'] = (new ‪ServerRequest())->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_FE);
43  $this->frontendConfigurationManager = $this->createMock(FrontendConfigurationManager::class);
44  $this->containerMock = $this->createMock(ContainerInterface::class);
45  $this->extensionService = new ‪ExtensionService();
46  }
47 
48  #[Test]
50  {
51  $this->frontendConfigurationManager->method('getConfiguration')->with(self::anything())->willReturn([]);
52  $this->containerMock->method('get')->with(self::anything())->willReturn($this->frontendConfigurationManager);
53  $configurationManager = new ‪ConfigurationManager($this->containerMock);
54  $this->extensionService->injectConfigurationManager($configurationManager);
55 
56  $pluginName = $this->extensionService->getPluginNameByAction('BlogExample', 'Blog', 'testForm');
57 
58  self::assertSame('Blogs', $pluginName);
59  }
60 
61  #[Test]
63  {
64  $this->importCSVDataSet(__DIR__ . '/../Service/Fixtures/tt_content_with_single_plugin.csv');
65 
66  $this->frontendConfigurationManager->method('getConfiguration')->with(self::anything())->willReturn(['view' => ['defaultPid' => 'auto']]);
67  $this->containerMock->method('get')->with(self::anything())->willReturn($this->frontendConfigurationManager);
68  $configurationManager = new ‪ConfigurationManager($this->containerMock);
69  $this->extensionService->injectConfigurationManager($configurationManager);
70 
71  $expectedResult = 321;
72  $result = $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
73  self::assertEquals($expectedResult, $result);
74  }
75 
76  #[Test]
78  {
79  $this->frontendConfigurationManager->method('getConfiguration')->with(self::anything())->willReturn(['view' => ['defaultPid' => 'auto']]);
80  $this->containerMock->method('get')->with(self::anything())->willReturn($this->frontendConfigurationManager);
81  $configurationManager = new ‪ConfigurationManager($this->containerMock);
82  $this->extensionService->injectConfigurationManager($configurationManager);
83 
84  $result = $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
85  self::assertNull($result);
86  }
87 
88  #[Test]
90  {
91  $this->importCSVDataSet(__DIR__ . '/../Service/Fixtures/tt_content_with_two_plugins.csv');
92  $this->frontendConfigurationManager->method('getConfiguration')->with(self::anything())->willReturn(['view' => ['defaultPid' => 'auto']]);
93  $this->containerMock->method('get')->with(self::anything())->willReturn($this->frontendConfigurationManager);
94  $configurationManager = new ‪ConfigurationManager($this->containerMock);
95  $this->extensionService->injectConfigurationManager($configurationManager);
96 
97  $this->expectException(Exception::class);
98  $this->expectExceptionCode(1280773643);
99  $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
100  }
101 }
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest
Definition: ExtensionServiceTest.php:32
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureDeterminesTheTargetPidIfDefaultPidIsAuto
‪getTargetPidByPluginSignatureDeterminesTheTargetPidIfDefaultPidIsAuto()
Definition: ExtensionServiceTest.php:62
‪TYPO3\CMS\Extbase\Tests\Functional\Service
Definition: ExtensionServiceTest.php:18
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$extensionService
‪ExtensionService $extensionService
Definition: ExtensionServiceTest.php:35
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureThrowsExceptionIfMoreThanOneTargetPidsWereFound
‪getTargetPidByPluginSignatureThrowsExceptionIfMoreThanOneTargetPidsWereFound()
Definition: ExtensionServiceTest.php:89
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\setUp
‪setUp()
Definition: ExtensionServiceTest.php:39
‪TYPO3\CMS\Extbase\Exception
Definition: Exception.php:25
‪TYPO3\CMS\Extbase\Configuration\ConfigurationManager
Definition: ConfigurationManager.php:32
‪TYPO3\CMS\Extbase\Configuration\FrontendConfigurationManager
Definition: FrontendConfigurationManager.php:38
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$testExtensionsToLoad
‪array $testExtensionsToLoad
Definition: ExtensionServiceTest.php:33
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:39
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureReturnsNullIfTargetPidCouldNotBeDetermined
‪getTargetPidByPluginSignatureReturnsNullIfTargetPidCouldNotBeDetermined()
Definition: ExtensionServiceTest.php:77
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$containerMock
‪ContainerInterface &MockObject $containerMock
Definition: ExtensionServiceTest.php:37
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$frontendConfigurationManager
‪FrontendConfigurationManager &MockObject $frontendConfigurationManager
Definition: ExtensionServiceTest.php:36
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getPluginNameByActionDetectsPluginNameFromGlobalExtensionConfigurationArray
‪getPluginNameByActionDetectsPluginNameFromGlobalExtensionConfigurationArray()
Definition: ExtensionServiceTest.php:49
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Extbase\Service\ExtensionService
Definition: ExtensionService.php:34
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder\REQUESTTYPE_FE
‪const REQUESTTYPE_FE
Definition: SystemEnvironmentBuilder.php:43