diff --git a/Build/phpstan/phpstan-baseline.neon b/Build/phpstan/phpstan-baseline.neon index 3315047beb94404d8f11d776af58dc3cf856fb62..41e9ca532e18790da511233796527c87c42f8d89 100644 --- a/Build/phpstan/phpstan-baseline.neon +++ b/Build/phpstan/phpstan-baseline.neon @@ -2290,11 +2290,6 @@ parameters: count: 1 path: ../../typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php - - - message: "#^Parameter \\#1 \\$fileReference of method TYPO3\\\\CMS\\\\Core\\\\Localization\\\\LanguageStore\\:\\:flushData\\(\\) expects string, array\\<int, string\\> given\\.$#" - count: 37 - path: ../../typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php - - message: "#^Variable \\$conf on left side of \\?\\? always exists and is not nullable\\.$#" count: 1 diff --git a/typo3/sysext/form/Classes/Service/TranslationService.php b/typo3/sysext/form/Classes/Service/TranslationService.php index 4b41986fb5f8a012277921c25555c4b98e4c499e..c0cb67c991f54885013581b1bd5537cbb1f33b36 100644 --- a/typo3/sysext/form/Classes/Service/TranslationService.php +++ b/typo3/sysext/form/Classes/Service/TranslationService.php @@ -74,18 +74,16 @@ class TranslationService implements SingletonInterface */ protected $alternativeLanguageKeys = []; - protected ConfigurationManagerInterface $configurationManager; - - public function __construct(ConfigurationManagerInterface $configurationManager) - { - $this->configurationManager = $configurationManager; + public function __construct( + protected ConfigurationManagerInterface $configurationManager + ) { } /** * Returns the localized label of the LOCAL_LANG key, $key. * * @param mixed $key The key from the LOCAL_LANG array for which to return the value. - * @param array $arguments the arguments of the extension, being passed over to vsprintf + * @param array|null $arguments the arguments of the extension, being passed over to vsprintf * @param mixed $defaultValue * @return mixed The value from LOCAL_LANG or $defaultValue if no translation was found. * @internal @@ -124,7 +122,6 @@ class TranslationService implements SingletonInterface $this->initializeLocalization($locallangPathAndFilename ?? ''); - // The "from" charset of csConv() is only set for strings from TypoScript via _LOCAL_LANG if (isset($this->LOCAL_LANG[$this->languageKey][$key][0]['target']) || isset($this->LOCAL_LANG_UNSET[$this->languageKey][$key]) ) { diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf similarity index 93% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf index dcec498ed3f8b2ab8786b26f562c964aac1ed2da..ff3d84fd7450b5b71d086d3582d7de989af598f7 100644 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf +++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_form.xlf @@ -3,7 +3,7 @@ <file source-language="en" target-language="de" datatype="plaintext" original="EXT:form/Tests/Unit/Service/Fixtures/de.locallang_form.xlf" date="2017-01-30T03:38:32Z" product-name="tests"> <header/> <body> - <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve"> + <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve" approved="yes"> <source>FORM EN</source> <target>FORM DE</target> </trans-unit> diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf similarity index 93% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf index 1c36979762e1a9504c3463931e6312e73a3cda3c..35a43dced33378ddc89495914b544d7163986eb1 100644 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf +++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/de.locallang_text.xlf @@ -3,7 +3,7 @@ <file source-language="en" target-language="de" datatype="plaintext" original="EXT:form/Tests/Unit/Service/Fixtures/de.locallang_text.xlf" date="2017-01-30T03:38:32Z" product-name="form"> <header/> <body> - <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve"> + <trans-unit id="element.Page.renderingOptions.nextButtonLabel" resname="element.Page.renderingOptions.nextButtonLabel" xml:space="preserve" approved="yes"> <source>TEXT EN</source> <target>TEXT DE</target> </trans-unit> diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_additional_text.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_additional_text.xlf diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_empty_values.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_empty_values.xlf diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_form.xlf diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.xlf b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_text.xlf similarity index 100% rename from typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.xlf rename to typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/Resources/Private/Language/locallang_text.xlf diff --git a/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php new file mode 100644 index 0000000000000000000000000000000000000000..8e03c8a8bcf1c61d6086a4c6cc64e73a60fac2d8 --- /dev/null +++ b/typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels/ext_emconf.php @@ -0,0 +1,21 @@ +<?php + +declare(strict_types=1); + +$EM_CONF[$_EXTKEY] = [ + 'title' => '', + 'description' => '', + 'category' => 'example', + 'author' => 'TYPO3 core team', + 'author_company' => '', + 'author_email' => '', + 'state' => 'stable', + 'version' => '12.2.0', + 'constraints' => [ + 'depends' => [ + 'typo3' => '12.2.0', + ], + 'conflicts' => [], + 'suggests' => [], + ], +]; diff --git a/typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php similarity index 57% rename from typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php rename to typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php index feda465f23b208859f492b2ac45bdc970ae12309..973e398f76d8c0adefca6d287e896285e01bd8d6 100644 --- a/typo3/sysext/form/Tests/Unit/Service/TranslationServiceTest.php +++ b/typo3/sysext/form/Tests/Functional/Service/TranslationServiceTest.php @@ -15,16 +15,9 @@ declare(strict_types=1); * The TYPO3 project - inspiring people to share! */ -namespace TYPO3\CMS\Form\Tests\Unit\Service; - -use PHPUnit\Framework\MockObject\MockObject; -use TYPO3\CMS\Core\Cache\CacheManager; -use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; -use TYPO3\CMS\Core\Localization\LanguageService; -use TYPO3\CMS\Core\Localization\LanguageStore; -use TYPO3\CMS\Core\Localization\Locales; -use TYPO3\CMS\Core\Localization\LocalizationFactory; -use TYPO3\CMS\Core\Package\PackageManager; +namespace TYPO3\CMS\Form\Tests\Functional\Service; + +use TYPO3\CMS\Core\Localization\LanguageServiceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; use TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement; @@ -32,108 +25,21 @@ use TYPO3\CMS\Form\Domain\Model\FormElements\Page; use TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface; use TYPO3\CMS\Form\Domain\Runtime\FormRuntime; use TYPO3\CMS\Form\Service\TranslationService; -use TYPO3\TestingFramework\Core\AccessibleObjectInterface; -use TYPO3\TestingFramework\Core\Unit\UnitTestCase; +use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase; -class TranslationServiceTest extends UnitTestCase +class TranslationServiceTest extends FunctionalTestCase { - protected bool $resetSingletonInstances = true; - - protected ConfigurationManager&MockObject&AccessibleObjectInterface $mockConfigurationManager; - protected TranslationService&MockObject&AccessibleObjectInterface $mockTranslationService; - protected LanguageStore $store; + protected TranslationService $subject; + protected array $testExtensionsToLoad = ['typo3/sysext/form/Tests/Functional/Service/Fixtures/Extensions/form_labels']; public function setUp(): void { - $packageManagerMock = $this->createMock(PackageManager::class); parent::setUp(); - $cacheFrontendMock = $this->createMock(FrontendInterface::class); - $cacheFrontendMock->method('get')->with(self::anything())->willReturn(false); - $cacheFrontendMock->method('set')->with(self::anything())->willReturn(null); + $configurationManager = $this->getAccessibleMock(ConfigurationManager::class, ['getConfiguration'], [], '', false); + $this->subject = new TranslationService($configurationManager); - $cacheManagerMock = $this->createMock(CacheManager::class); - $cacheManagerMock->method('getCache')->with('l10n')->willReturn($cacheFrontendMock); - GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerMock); - - $localizationFactory = $this->createMock(LocalizationFactory::class); - $localizationFactory->method('getParsedData')->willReturnMap([ - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_form.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf', - 'de', - null, - null, - false, - include __DIR__ . '/Fixtures/de.locallang_form.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_additional_text.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_ceuid_suffix_01.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_ceuid_suffix_02.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_text.php', - ], - [ - 'EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf', - 'default', - null, - null, - false, - include __DIR__ . '/Fixtures/locallang_empty_values.php', - ], - ]); - - GeneralUtility::setSingletonInstance(LocalizationFactory::class, $localizationFactory); - - $this->mockConfigurationManager = $this->getAccessibleMock(ConfigurationManager::class, ['getConfiguration'], [], '', false); - - $this->mockTranslationService = $this->getAccessibleMock(TranslationService::class, [ - 'getConfigurationManager', - 'getLanguageService', - ], [], '', false); - - $languageService = new LanguageService(new Locales(), new LocalizationFactory(new LanguageStore($packageManagerMock), $cacheManagerMock), $cacheFrontendMock); - $this->mockTranslationService - ->method('getLanguageService') - ->willReturn($languageService); - - $this->mockTranslationService->_set('configurationManager', $this->mockConfigurationManager); - - $this->store = GeneralUtility::makeInstance(LanguageStore::class, $packageManagerMock); - $this->store->initialize(); + $GLOBALS['LANG'] = GeneralUtility::makeInstance(LanguageServiceFactory::class)->create('default'); } /** @@ -141,12 +47,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingDefaultLanguageKeyIfFullExtDefaultLanguageKeyIsRequested(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM EN'; - - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; + self::assertEquals('FORM EN', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nextButtonLabel' )); } @@ -156,12 +58,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingDefaultLanguageKeyIfFullLLLExtDefaultLanguageKeyIsRequested(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM EN'; - - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; + self::assertEquals('FORM EN', $this->subject->translate( 'LLL:' . $xlfPath . ':element.Page.renderingOptions.nextButtonLabel' )); } @@ -171,12 +69,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndDefaultValueIsGiven(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM EN'; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('FORM EN', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nextButtonLabel', null, null, @@ -190,12 +85,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsEmptyStringIfNonExistingDefaultLanguageKeyIsRequested(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $this->store->flushData($xlfPath); + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $expected = ''; - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nonExisting' )); } @@ -205,12 +97,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsDefaultValueIfNonExistingDefaultLanguageKeyIsRequestedAndDefaultValueIsGiven(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $this->store->flushData($xlfPath); + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $expected = 'defaultValue'; - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('defaultValue', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nonExisting', null, null, @@ -224,12 +113,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingLanguageKeyForLanguageIfExtPathLanguageKeyIsRequested(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM DE'; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('FORM DE', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nextButtonLabel', null, null, @@ -242,12 +128,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsDefaultValueIfNonExistingLanguageKeyForLanguageIsRequestedAndDefaultValueIsGiven(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'defaultValue'; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('defaultValue', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nonExisting', null, null, @@ -261,12 +144,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsEmptyStringIfNonExistingLanguageKeyForLanguageIsRequested(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = ''; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('', $this->subject->translate( $xlfPath . ':element.Page.renderingOptions.nonExisting', null, null, @@ -279,12 +159,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndExtFilePathIsGiven(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM EN'; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('FORM EN', $this->subject->translate( 'element.Page.renderingOptions.nextButtonLabel', null, $xlfPath @@ -296,12 +173,9 @@ class TranslationServiceTest extends UnitTestCase */ public function translateReturnsExistingDefaultLanguageKeyIfDefaultLanguageKeyIsRequestedAndLLLExtFilePathIsGiven(): void { - $xlfPath = 'EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf'; - $expected = 'FORM EN'; + $xlfPath = 'EXT:form_labels/Resources/Private/Language/locallang_form.xlf'; - $this->store->flushData($xlfPath); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translate', + self::assertEquals('FORM EN', $this->subject->translate( 'element.Page.renderingOptions.nextButtonLabel', null, 'LLL:' . $xlfPath @@ -313,7 +187,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateValuesRecursiveTranslateRecursive(): void { - $xlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; + $xlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $input = [ 'Stan' => [ @@ -337,9 +211,7 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($xlfPaths); - self::assertEquals($expected, $this->mockTranslationService->_call( - 'translateValuesRecursive', + self::assertEquals($expected, $this->subject->translateValuesRecursive( $input, $xlfPaths )); @@ -350,8 +222,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier'; @@ -370,23 +242,18 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'form-element-identifier LABEL EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'some label'); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'some label', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + $expected = 'form-element-identifier LABEL EN'; + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -394,8 +261,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier'; @@ -414,23 +281,18 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'form-element-identifier LABEL EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + $expected = 'form-element-identifier LABEL EN'; + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -438,8 +300,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueNotTranslateLabelForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsEmptyAndPropertyShouldNotBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier'; @@ -458,23 +320,17 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = ''; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals('', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -482,8 +338,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelForConcreteFormElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'another-form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier'; @@ -502,23 +358,17 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'form-element-identifier LABEL EN 1'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'some label'); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'some label', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals('form-element-identifier LABEL EN 1', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -526,8 +376,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelForFormElementTypeIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'another-form-runtime-identifier'; $formElementIdentifier = 'another-form-element-identifier'; @@ -546,23 +396,18 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'form-element-identifier LABEL EN 2'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'some label'); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'some label', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + $expected = 'form-element-identifier LABEL EN 2'; + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -570,8 +415,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslatePropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementPropertyIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier'; @@ -595,21 +440,17 @@ class TranslationServiceTest extends UnitTestCase $expected = 'form-element-identifier PLACEHOLDER EN'; - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('properties', $formElementProperties); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'properties' => $formElementProperties, + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['placeholder'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['placeholder'], $mockFormRuntime)); } /** @@ -617,8 +458,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueNotTranslatePropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementPropertyIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationNotExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'another-form-runtime-identifier'; $formElementIdentifier = 'another-form-element-identifier'; @@ -642,21 +483,17 @@ class TranslationServiceTest extends UnitTestCase $expected = 'placeholder'; - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('properties', $formElementProperties); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'properties' => $formElementProperties, + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['placeholder'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['placeholder'], $mockFormRuntime)); } /** @@ -664,8 +501,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateRenderingOptionForConcreteFormAndConcreteSectionElementIfElementRenderingOptionsContainsATranslationFilesAndElementRenderingOptionIsNotEmptyAndRenderingOptionShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'form-element-identifier-page'; @@ -685,22 +522,17 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'form-element-identifier nextButtonLabel EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(Page::class, null, [], '', false); - - $mockFormElement->_set('type', 'Page'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); + $formElement = new Page($formElementIdentifier); + $formElement->setOptions([ + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['nextButtonLabel'], $mockFormRuntime)); + $expected = 'form-element-identifier nextButtonLabel EN'; + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['nextButtonLabel'], $mockFormRuntime)); } /** @@ -708,8 +540,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateOptionsPropertyForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementOptionsPropertyIsAnArrayAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $formElementIdentifier = 'options-form-element-identifier'; @@ -739,21 +571,17 @@ class TranslationServiceTest extends UnitTestCase 'optionValue2' => 'options-form-element-identifier option 2 EN', ]; - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('properties', $formElementProperties); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'properties' => $formElementProperties, + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['options'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['options'], $mockFormRuntime)); } /** @@ -761,8 +589,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateOptionsPropertyForConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementOptionsPropertyIsAnArrayAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'another-form-runtime-identifier'; $formElementIdentifier = 'options-form-element-identifier'; @@ -792,21 +620,17 @@ class TranslationServiceTest extends UnitTestCase 'optionValue2' => 'options-form-element-identifier option 2 EN', ]; - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('properties', $formElementProperties); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'properties' => $formElementProperties, + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['options'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['options'], $mockFormRuntime)); } /** @@ -814,8 +638,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslateOptionForConcreteFormIfFinisherTranslationOptionsContainsATranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier'; $finisherIdentifier = 'SaveToDatabaseFinisher'; @@ -832,16 +656,12 @@ class TranslationServiceTest extends UnitTestCase 'translatePropertyValueIfEmpty' => true, ]; - $expected = 'form-element-identifier SaveToDatabase subject EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions)); + $expected = 'form-element-identifier SaveToDatabase subject EN'; + self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions)); } /** @@ -849,8 +669,8 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslateOptionIfFinisherTranslationOptionsContainsATranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; + $textElementXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_text.xlf']; $formRuntimeIdentifier = 'another-form-runtime-identifier'; $finisherIdentifier = 'SaveToDatabaseFinisher'; @@ -867,16 +687,12 @@ class TranslationServiceTest extends UnitTestCase 'translatePropertyValueIfEmpty' => true, ]; - $expected = 'form-element-identifier SaveToDatabase subject EN 1'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions)); + $expected = 'form-element-identifier SaveToDatabase subject EN 1'; + self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions)); } /** @@ -884,8 +700,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelForConcreteFormAndConcreteElementFromFormRuntimeTranslationFilesIfElementRenderingOptionsContainsNoTranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $formRuntimeIdentifier = 'my-form-runtime-identifier'; $formElementIdentifier = 'my-form-element-identifier'; @@ -897,25 +712,18 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $formElementRenderingOptions = []; - - $expected = 'my-form-runtime-identifier my-form-element-identifier LABEL EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'some label'); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'some label', + 'renderingOptions' => [], + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + $expected = 'my-form-runtime-identifier my-form-element-identifier LABEL EN'; + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -923,9 +731,7 @@ class TranslationServiceTest extends UnitTestCase */ public function supportsArgumentsForFormElementValueTranslations(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - - $this->store->flushData($formRuntimeXlfPaths); + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $formRuntime = $this->createMock(FormRuntime::class); $formRuntime->method('getIdentifier')->willReturn('my-form-runtime-identifier'); @@ -951,10 +757,8 @@ class TranslationServiceTest extends UnitTestCase ], ]); - $expected = 'See this or that'; - $result = $this->mockTranslationService->_call('translateFormElementValue', $element, ['label'], $formRuntime); - - self::assertEquals($expected, $result); + $result = $this->subject->translateFormElementValue($element, ['label'], $formRuntime); + self::assertEquals('See this or that', $result); } /** @@ -962,8 +766,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslateOptionForConcreteFormFromFormRuntimeIfFinisherTranslationOptionsContainsNoTranslationFilesAndFinisherOptionIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - $textElementXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $formRuntimeIdentifier = 'my-form-runtime-identifier'; $finisherIdentifier = 'SaveToDatabaseFinisher'; @@ -975,18 +778,12 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $finisherRenderingOptions = []; - - $expected = 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN'; - - $this->store->flushData($formRuntimeXlfPaths); - $this->store->flushData($textElementXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, $finisherIdentifier, 'subject', 'subject value', $finisherRenderingOptions)); + $expected = 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN'; + self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, $finisherIdentifier, 'subject', 'subject value')); } /** @@ -1000,11 +797,11 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, [], [], '', false); + $mockFormRuntime = $this->createMock(FormRuntime::class); self::assertSame( 'subject value', - $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'SaveToDatabaseFinisher', 'subject', 'subject value', $finisherRenderingOptions) + $this->subject->translateFinisherOption($mockFormRuntime, 'SaveToDatabaseFinisher', 'subject', 'subject value', $finisherRenderingOptions) ); } @@ -1013,9 +810,7 @@ class TranslationServiceTest extends UnitTestCase */ public function supportsArgumentsForFinisherOptionTranslations(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; - - $this->store->flushData($formRuntimeXlfPaths); + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $formRuntime = $this->createMock(FormRuntime::class); $formRuntime->method('getIdentifier')->willReturn('my-form-runtime-identifier'); @@ -1033,10 +828,8 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $expected = 'My awesome subject'; - $result = $this->mockTranslationService->_call('translateFinisherOption', $formRuntime, 'EmailToReceiverWithTranslationArguments', 'subject', 'My %s subject', $renderingOptions); - - self::assertEquals($expected, $result); + $result = $this->subject->translateFinisherOption($formRuntime, 'EmailToReceiverWithTranslationArguments', 'subject', 'My %s subject', $renderingOptions); + self::assertEquals('My awesome subject', $result); } /** @@ -1044,10 +837,10 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementValueTranslateLabelFromAdditionalTranslationForConcreteFormAndConcreteElementIfElementRenderingOptionsContainsATranslationFilesAndElementLabelIsNotEmptyAndPropertyShouldBeTranslatedAndTranslationExists(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_form.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_form.xlf']; $textElementXlfPaths = [ - 10 => 'EXT:form/Tests/Unit/Service/Fixtures/locallang_text.xlf', - 20 => 'EXT:form/Tests/Unit/Service/Fixtures/locallang_additional_text.xlf', + 10 => 'EXT:form_labels/Resources/Private/Language/locallang_text.xlf', + 20 => 'EXT:form_labels/Resources/Private/Language/locallang_additional_text.xlf', ]; $formRuntimeIdentifier = 'form-runtime-identifier'; @@ -1069,24 +862,17 @@ class TranslationServiceTest extends UnitTestCase $expected = 'form-element-identifier ADDITIONAL LABEL EN'; - $this->store->flushData($formRuntimeXlfPaths[0]); - - foreach ($textElementXlfPaths as $textElementXlfPath) { - $this->store->flushData($textElementXlfPath); - } - - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('renderingOptions', $formElementRenderingOptions); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'some label'); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'some label', + 'renderingOptions' => $formElementRenderingOptions, + ]); $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -1094,7 +880,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementTranslateFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1107,25 +893,22 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); $mockFormRuntime->method('getType')->willReturn('Form'); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + ]); $expected = 'form-runtime-identifier-42 submitButtonLabel EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); $expected = 'form-runtime-identifier-42 form-element-identifierlabel EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -1133,7 +916,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementTranslateFormWithContentElementUidIfFormContainsOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1147,25 +930,22 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); $mockFormRuntime->method('getType')->willReturn('Form'); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + ]); $expected = 'form-runtime-identifier submitButtonLabel EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); $expected = 'form-runtime-identifier form-element-identifierlabel EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -1173,7 +953,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementErrorTranslateErrorFromFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1185,8 +965,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1194,18 +972,17 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getType')->willReturn('Form'); $mockFormRuntime->method('getProperties')->willReturn([]); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); - $mockFormElement->_set('properties', []); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + 'properties' => [], + ]); $expected = 'form-runtime-identifier-42 error 123 EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormRuntime, 123, [], 'default value', $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementError($mockFormRuntime, 123, [], 'default value', $mockFormRuntime)); $expected = 'form-runtime-identifier-42 form-element-identifier error 123 EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime)); } /** @@ -1213,7 +990,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementErrorTranslateErrorFromFormWithContentElementUidIfFormContainsOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1226,8 +1003,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1235,18 +1010,17 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getType')->willReturn('Form'); $mockFormRuntime->method('getProperties')->willReturn([]); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); - $mockFormElement->_set('properties', []); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + 'properties' => [], + ]); $expected = 'form-runtime-identifier error 123 EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormRuntime, 123, [], 'default value', $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementError($mockFormRuntime, 123, [], 'default value', $mockFormRuntime)); $expected = 'form-runtime-identifier form-element-identifier error 123 EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime)); + self::assertEquals($expected, $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime)); } /** @@ -1254,7 +1028,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslateOptionFromFormWithContentElementUidIfFormContainsNoOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_01.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; @@ -1265,8 +1039,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1275,7 +1047,7 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getProperties')->willReturn([]); $expected = 'form-runtime-identifier-42 FooFinisher test EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test', 'value', [])); + self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test', 'value', [])); } /** @@ -1283,7 +1055,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslateOptionFromFormWithContentElementUidIfFormContainsOriginalIdentifier(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_ceuid_suffix_02.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; @@ -1295,8 +1067,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - $this->store->flushData($formRuntimeXlfPaths); - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1305,7 +1075,7 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getProperties')->willReturn([]); $expected = 'form-runtime-identifier FooFinisher test EN'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test', 'value', [])); + self::assertEquals($expected, $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test', 'value', [])); } /** @@ -1313,7 +1083,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementErrorTranslatesErrorsWithEmptyTranslatedValues(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1326,10 +1096,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) { - $this->store->flushData($formRuntimeXlfPath); - } - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1337,18 +1103,14 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getType')->willReturn('Form'); $mockFormRuntime->method('getProperties')->willReturn([]); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', ''); - $mockFormElement->_set('properties', []); - - $expected = '0'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 123, [], 'default value', $mockFormRuntime)); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => '', + 'properties' => [], + ]); - $expected = 'default value'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementError', $mockFormElement, 124, [], 'default value', $mockFormRuntime)); + self::assertEquals('0', $this->subject->translateFormElementError($formElement, 123, [], 'default value', $mockFormRuntime)); + self::assertEquals('default value', $this->subject->translateFormElementError($formElement, 124, [], 'default value', $mockFormRuntime)); } /** @@ -1356,7 +1118,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFormElementTranslatesFormElementsWithEmptyTranslatedValues(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; $formElementIdentifier = 'form-element-identifier'; @@ -1370,27 +1132,19 @@ class TranslationServiceTest extends UnitTestCase ], ]; - foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) { - $this->store->flushData($formRuntimeXlfPath); - } - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); $mockFormRuntime->method('getRenderingOptions')->willReturn($formRuntimeRenderingOptions); $mockFormRuntime->method('getType')->willReturn('Form'); - $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); - - $mockFormElement->_set('type', 'Text'); - $mockFormElement->_set('identifier', $formElementIdentifier); - $mockFormElement->_set('label', 'test'); - - $expected = '0'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); + $formElement = new GenericFormElement($formElementIdentifier, 'Text'); + $formElement->setOptions([ + 'label' => 'test', + ]); - $expected = 'test'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFormElementValue', $mockFormElement, ['label'], $mockFormRuntime)); + self::assertEquals('0', $this->subject->translateFormElementValue($mockFormRuntime, ['submitButtonLabel'], $mockFormRuntime)); + self::assertEquals('test', $this->subject->translateFormElementValue($formElement, ['label'], $mockFormRuntime)); } /** @@ -1398,7 +1152,7 @@ class TranslationServiceTest extends UnitTestCase */ public function translateFinisherOptionTranslatesFinisherOptionsWithEmptyTranslatedValues(): void { - $formRuntimeXlfPaths = ['EXT:form/Tests/Unit/Service/Fixtures/locallang_empty_values.xlf']; + $formRuntimeXlfPaths = ['EXT:form_labels/Resources/Private/Language/locallang_empty_values.xlf']; $formRuntimeIdentifier = 'form-runtime-identifier-42'; @@ -1410,10 +1164,6 @@ class TranslationServiceTest extends UnitTestCase ], ]; - foreach ($formRuntimeXlfPaths as $formRuntimeXlfPath) { - $this->store->flushData($formRuntimeXlfPath); - } - $mockFormRuntime = $this->getAccessibleMock(FormRuntime::class, ['getIdentifier', 'getRenderingOptions', 'getType', 'getProperties'], [], '', false); $mockFormRuntime->method('getIdentifier')->willReturn($formRuntimeIdentifier); @@ -1421,10 +1171,7 @@ class TranslationServiceTest extends UnitTestCase $mockFormRuntime->method('getType')->willReturn('Form'); $mockFormRuntime->method('getProperties')->willReturn([]); - $expected = '0'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test1', 'value', [])); - - $expected = 'value'; - self::assertEquals($expected, $this->mockTranslationService->_call('translateFinisherOption', $mockFormRuntime, 'Foo', 'test2', 'value', [])); + self::assertEquals('0', $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test1', 'value', [])); + self::assertEquals('value', $this->subject->translateFinisherOption($mockFormRuntime, 'Foo', 'test2', 'value', [])); } } diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php deleted file mode 100644 index ae8e49e5a4d42c85da43f1f785459a39ee0b6a8f..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/de.locallang_form.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'element.Page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'FORM EN', - 'target' => 'FORM EN', - ], - ], - ], - 'de' => - [ - 'element.Page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'FORM EN', - 'target' => 'FORM DE', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php deleted file mode 100644 index 02ad1f6a6d58c2433d9c1fff3a129e5eac64a2e2..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_additional_text.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'element.Page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'TEXT EN', - 'target' => 'TEXT EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-element-identifier ADDITIONAL LABEL EN', - 'target' => 'form-element-identifier ADDITIONAL LABEL EN', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php deleted file mode 100644 index e05a5156df6426f31a63a541747625a0eb64dc1d..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_01.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 submitButtonLabel EN', - 'target' => 'form-runtime-identifier-42 submitButtonLabel EN', - ], - ], - 'form-runtime-identifier-42.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 form-element-identifierlabel EN', - 'target' => 'form-runtime-identifier-42 form-element-identifierlabel EN', - ], - ], - 'form-runtime-identifier-42.validation.error.form-runtime-identifier-42.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 error 123 EN', - 'target' => 'form-runtime-identifier-42 error 123 EN', - ], - ], - 'form-runtime-identifier-42.validation.error.form-element-identifier.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 form-element-identifier error 123 EN', - 'target' => 'form-runtime-identifier-42 form-element-identifier error 123 EN', - ], - ], - 'form-runtime-identifier-42.finisher.Foo.test' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 FooFinisher test EN', - 'target' => 'form-runtime-identifier-42 FooFinisher test EN', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php deleted file mode 100644 index cddd9717df3190f734b499730798dc70577c191e..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_ceuid_suffix_02.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 submitButtonLabel EN', - 'target' => 'form-runtime-identifier-42 submitButtonLabel EN', - ], - ], - 'form-runtime-identifier-42.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 form-element-identifierlabel EN', - 'target' => 'form-runtime-identifier-42 form-element-identifierlabel EN', - ], - ], - 'form-runtime-identifier.element.form-runtime-identifier.renderingOptions.submitButtonLabel' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier submitButtonLabel EN', - 'target' => 'form-runtime-identifier submitButtonLabel EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifierlabel EN', - 'target' => 'form-runtime-identifier form-element-identifierlabel EN', - ], - ], - 'form-runtime-identifier-42.validation.error.form-runtime-identifier-42.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 error 123 EN', - 'target' => 'form-runtime-identifier-42 error 123 EN', - ], - ], - 'form-runtime-identifier-42.validation.error.form-element-identifier.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 form-element-identifier error 123 EN', - 'target' => 'form-runtime-identifier-42 form-element-identifier error 123 EN', - ], - ], - 'form-runtime-identifier.validation.error.form-runtime-identifier.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier error 123 EN', - 'target' => 'form-runtime-identifier error 123 EN', - ], - ], - 'form-runtime-identifier.validation.error.form-element-identifier.123' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier error 123 EN', - 'target' => 'form-runtime-identifier form-element-identifier error 123 EN', - ], - ], - 'form-runtime-identifier-42.finisher.Foo.test' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier-42 FooFinisher test EN', - 'target' => 'form-runtime-identifier-42 FooFinisher test EN', - ], - ], - 'form-runtime-identifier.finisher.Foo.test' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier FooFinisher test EN', - 'target' => 'form-runtime-identifier FooFinisher test EN', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php deleted file mode 100644 index 50513b2e9e5d2c8f1fea1d3a89335e932e573151..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_empty_values.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'form-runtime-identifier-42.element.form-runtime-identifier-42.renderingOptions.submitButtonLabel' => - [ - 0 => - [ - 'source' => '0', - 'target' => '0', - ], - ], - 'form-runtime-identifier-42.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => '', - 'target' => '', - ], - ], - - 'form-runtime-identifier-42.validation.error.form-element-identifier.123' => - [ - 0 => - [ - 'source' => '0', - 'target' => '0', - ], - ], - 'form-runtime-identifier-42.validation.error.form-element-identifier.124' => - [ - 0 => - [ - 'source' => '', - 'target' => '', - ], - ], - - 'form-runtime-identifier-42.finisher.Foo.test1' => - [ - 0 => - [ - 'source' => '0', - 'target' => '0', - ], - ], - 'form-runtime-identifier-42.finisher.Foo.test2' => - [ - 0 => - [ - 'source' => '', - 'target' => '', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php deleted file mode 100644 index f8dd6b904d06d8ea9bc759d4c7f6977262874424..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_form.php +++ /dev/null @@ -1,137 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'element.Page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'FORM EN', - 'target' => 'FORM EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier LABEL EN', - 'target' => 'form-runtime-identifier form-element-identifier LABEL EN', - ], - ], - 'element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier LABEL EN 1', - 'target' => 'form-runtime-identifier form-element-identifier LABEL EN 1', - ], - ], - 'element.Text.properties.label' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier LABEL EN 2', - 'target' => 'form-runtime-identifier form-element-identifier LABEL EN 2', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.placeholder' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier PLACEHOLDER EN', - 'target' => 'form-runtime-identifier form-element-identifier PLACEHOLDER EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier-page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier nextButtonLabel EN', - 'target' => 'form-runtime-identifier form-element-identifier nextButtonLabel EN', - ], - ], - 'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue1' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier options-form-element-identifier option 1 EN', - 'target' => 'form-runtime-identifier options-form-element-identifier option 1 EN', - ], - ], - 'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue2' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier options-form-element-identifier option 2 EN', - 'target' => 'form-runtime-identifier options-form-element-identifier option 2 EN', - ], - ], - 'element.options-form-element-identifier.properties.options.optionValue1' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier options-form-element-identifier option 1 EN', - 'target' => 'form-runtime-identifier options-form-element-identifier option 1 EN', - ], - ], - 'element.options-form-element-identifier.properties.options.optionValue2' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier options-form-element-identifier option 2 EN', - 'target' => 'form-runtime-identifier options-form-element-identifier option 2 EN', - ], - ], - 'form-runtime-identifier.finisher.SaveToDatabase.subject' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN', - 'target' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN', - ], - ], - 'finisher.SaveToDatabase.subject' => - [ - 0 => - [ - 'source' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN 1', - 'target' => 'form-runtime-identifier form-element-identifier SaveToDatabase subject EN 1', - ], - ], - 'my-form-runtime-identifier.element.my-form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'my-form-runtime-identifier my-form-element-identifier LABEL EN', - 'target' => 'my-form-runtime-identifier my-form-element-identifier LABEL EN', - ], - ], - 'element.my-form-element-with-translation-arguments.properties.label' => - [ - 0 => - [ - 'source' => 'See %s or %s', - 'target' => 'See %s or %s', - ], - ], - 'my-form-runtime-identifier.finisher.SaveToDatabase.subject' => - [ - 0 => - [ - 'source' => 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN', - 'target' => 'my-form-runtime-identifier form-element-identifier SaveToDatabase subject EN', - ], - ], - 'finisher.EmailToReceiverWithTranslationArguments.subject' => - [ - 0 => - [ - 'source' => 'My %s subject', - 'target' => 'My %s subject', - ], - ], - ], -]; diff --git a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php b/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php deleted file mode 100644 index b47a147ea4e22aadf4be53590e15c1714ad8d44d..0000000000000000000000000000000000000000 --- a/typo3/sysext/form/Tests/Unit/Service/Fixtures/locallang_text.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -declare(strict_types=1); - -return [ - 'default' => - [ - 'element.Page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'TEXT EN', - 'target' => 'TEXT EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-element-identifier LABEL EN', - 'target' => 'form-element-identifier LABEL EN', - ], - ], - 'element.form-element-identifier.properties.label' => - [ - 0 => - [ - 'source' => 'form-element-identifier LABEL EN 1', - 'target' => 'form-element-identifier LABEL EN 1', - ], - ], - 'element.Text.properties.label' => - [ - 0 => - [ - 'source' => 'form-element-identifier LABEL EN 2', - 'target' => 'form-element-identifier LABEL EN 2', - ], - ], - 'form-runtime-identifier.element.form-element-identifier.properties.placeholder' => - [ - 0 => - [ - 'source' => 'form-element-identifier PLACEHOLDER EN', - 'target' => 'form-element-identifier PLACEHOLDER EN', - ], - ], - 'form-runtime-identifier.element.form-element-identifier-page.renderingOptions.nextButtonLabel' => - [ - 0 => - [ - 'source' => 'form-element-identifier nextButtonLabel EN', - 'target' => 'form-element-identifier nextButtonLabel EN', - ], - ], - 'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue1' => - [ - 0 => - [ - 'source' => 'options-form-element-identifier option 1 EN', - 'target' => 'options-form-element-identifier option 1 EN', - ], - ], - 'form-runtime-identifier.element.options-form-element-identifier.properties.options.optionValue2' => - [ - 0 => - [ - 'source' => 'options-form-element-identifier option 2 EN', - 'target' => 'options-form-element-identifier option 2 EN', - ], - ], - 'element.options-form-element-identifier.properties.options.optionValue1' => - [ - 0 => - [ - 'source' => 'options-form-element-identifier option 1 EN', - 'target' => 'options-form-element-identifier option 1 EN', - ], - ], - 'element.options-form-element-identifier.properties.options.optionValue2' => - [ - 0 => - [ - 'source' => 'options-form-element-identifier option 2 EN', - 'target' => 'options-form-element-identifier option 2 EN', - ], - ], - 'form-runtime-identifier.finisher.SaveToDatabase.subject' => - [ - 0 => - [ - 'source' => 'form-element-identifier SaveToDatabase subject EN', - 'target' => 'form-element-identifier SaveToDatabase subject EN', - ], - ], - 'finisher.SaveToDatabase.subject' => - [ - 0 => - [ - 'source' => 'form-element-identifier SaveToDatabase subject EN 1', - 'target' => 'form-element-identifier SaveToDatabase subject EN 1', - ], - ], - ], -];