‪TYPO3CMS  11.5
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 Prophecy\Argument;
21 use Prophecy\PhpUnit\ProphecyTrait;
22 use Prophecy\Prophecy\ObjectProphecy;
23 use Psr\Container\ContainerInterface;
30 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
31 
32 class ‪ExtensionServiceTest extends FunctionalTestCase
33 {
34  use ProphecyTrait;
35 
36  protected ‪$testExtensionsToLoad = ['typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'];
37 
39 
41  protected ObjectProphecy ‪$frontendConfigurationManager;
42 
44  protected ObjectProphecy ‪$containerProphecy;
45 
46  protected function ‪setUp(): void
47  {
48  parent::setUp();
49  ‪$GLOBALS['TYPO3_REQUEST'] = (new ‪ServerRequest())->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_FE);
50  $this->frontendConfigurationManager = $this->prophesize(FrontendConfigurationManager::class);
51  $this->containerProphecy = $this->prophesize(ContainerInterface::class);
52  $this->extensionService = new ‪ExtensionService();
53  }
54 
59  {
60  $this->frontendConfigurationManager->getConfiguration(Argument::cetera())->willReturn([]);
61  $this->containerProphecy->get(Argument::any())->willReturn($this->frontendConfigurationManager->reveal());
62  $configurationManager = new ‪ConfigurationManager($this->containerProphecy->reveal());
63  $this->extensionService->injectConfigurationManager($configurationManager);
64 
65  $pluginName = $this->extensionService->getPluginNameByAction('BlogExample', 'Blog', 'testForm');
66 
67  self::assertSame('Blogs', $pluginName);
68  }
69 
74  {
75  $this->importCSVDataSet(__DIR__ . '/../Service/Fixtures/tt_content_with_single_plugin.csv');
76 
77  $this->frontendConfigurationManager->getConfiguration(Argument::cetera())->willReturn(['view' => ['defaultPid' => 'auto']]);
78  $this->containerProphecy->get(Argument::any())->willReturn($this->frontendConfigurationManager->reveal());
79  $configurationManager = new ConfigurationManager($this->containerProphecy->reveal());
80  $this->extensionService->injectConfigurationManager($configurationManager);
81 
82  $expectedResult = 321;
83  $result = $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
84  self::assertEquals($expectedResult, $result);
85  }
86 
91  {
92  $this->frontendConfigurationManager->getConfiguration(Argument::cetera())->willReturn(['view' => ['defaultPid' => 'auto']]);
93  $this->containerProphecy->get(Argument::any())->willReturn($this->frontendConfigurationManager->reveal());
94  $configurationManager = new ConfigurationManager($this->containerProphecy->reveal());
95  $this->extensionService->injectConfigurationManager($configurationManager);
96 
97  $result = $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
98  self::assertNull($result);
99  }
100 
105  {
106  $this->importCSVDataSet(__DIR__ . '/../Service/Fixtures/tt_content_with_two_plugins.csv');
107  $this->frontendConfigurationManager->getConfiguration(Argument::cetera())->willReturn(['view' => ['defaultPid' => 'auto']]);
108  $this->containerProphecy->get(Argument::any())->willReturn($this->frontendConfigurationManager->reveal());
109  $configurationManager = new ConfigurationManager($this->containerProphecy->reveal());
110  $this->extensionService->injectConfigurationManager($configurationManager);
111 
112  $this->expectException(Exception::class);
113  $this->expectExceptionCode(1280773643);
114  $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
115  }
116 }
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$containerProphecy
‪ObjectProphecy $containerProphecy
Definition: ExtensionServiceTest.php:43
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest
Definition: ExtensionServiceTest.php:33
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureDeterminesTheTargetPidIfDefaultPidIsAuto
‪getTargetPidByPluginSignatureDeterminesTheTargetPidIfDefaultPidIsAuto()
Definition: ExtensionServiceTest.php:72
‪TYPO3\CMS\Extbase\Tests\Functional\Service
Definition: ExtensionServiceTest.php:18
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$extensionService
‪ExtensionService $extensionService
Definition: ExtensionServiceTest.php:37
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureThrowsExceptionIfMoreThanOneTargetPidsWereFound
‪getTargetPidByPluginSignatureThrowsExceptionIfMoreThanOneTargetPidsWereFound()
Definition: ExtensionServiceTest.php:103
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$frontendConfigurationManager
‪ObjectProphecy $frontendConfigurationManager
Definition: ExtensionServiceTest.php:40
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\setUp
‪setUp()
Definition: ExtensionServiceTest.php:45
‪TYPO3\CMS\Extbase\Exception
Definition: Exception.php:25
‪TYPO3\CMS\Extbase\Configuration\ConfigurationManager
Definition: ConfigurationManager.php:33
‪TYPO3\CMS\Extbase\Configuration\FrontendConfigurationManager
Definition: FrontendConfigurationManager.php:33
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\$testExtensionsToLoad
‪$testExtensionsToLoad
Definition: ExtensionServiceTest.php:35
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:37
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getTargetPidByPluginSignatureReturnsNullIfTargetPidCouldNotBeDetermined
‪getTargetPidByPluginSignatureReturnsNullIfTargetPidCouldNotBeDetermined()
Definition: ExtensionServiceTest.php:89
‪TYPO3\CMS\Extbase\Tests\Functional\Service\ExtensionServiceTest\getPluginNameByActionDetectsPluginNameFromGlobalExtensionConfigurationArray
‪getPluginNameByActionDetectsPluginNameFromGlobalExtensionConfigurationArray()
Definition: ExtensionServiceTest.php:57
‪$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