‪TYPO3CMS  11.5
TranslateViewHelperTest.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 
21 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
22 use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
23 
24 class ‪TranslateViewHelperTest extends FunctionalTestCase
25 {
30  {
31  $this->expectException(Exception::class);
32  $this->expectExceptionCode(1351584844);
33 
34  $view = new ‪StandaloneView();
35  $view->setTemplateSource('<f:translate />');
36  $view->render();
37  }
38 
42  public function ‪renderReturnsStringForGivenKey(): void
43  {
44  $view = new ‪StandaloneView();
45  $view->setTemplateSource('<f:translate key="foo">hello world</f:translate>');
46  self::assertSame('hello world', $view->render());
47  }
48 
50  {
51  return [
52  'fallback to default attribute for not existing label' => [
53  '<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:iDoNotExist" default="myDefault" />',
54  'myDefault',
55  ],
56  'fallback to default attribute for static label' => [
57  '<f:translate key="static label" default="myDefault" />',
58  'myDefault',
59  ],
60  'fallback to child for not existing label' => [
61  '<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:iDoNotExist">myDefault</f:translate>',
62  'myDefault',
63  ],
64  'fallback to child for static label' => [
65  '<f:translate key="static label">myDefault</f:translate>',
66  'myDefault',
67  ],
68  'id and underscored extensionName given' => [
69  '<f:translate key="form.legend" extensionName="indexed_search" />',
70  'Search form',
71  ],
72  'key and underscored extensionName given' => [
73  '<f:translate key="form.legend" extensionName="indexed_search" />',
74  'Search form',
75  ],
76  'id and CamelCased extensionName given' => [
77  '<f:translate key="form.legend" extensionName="IndexedSearch" />',
78  'Search form',
79  ],
80  'key and CamelCased extensionName given' => [
81  '<f:translate key="form.legend" extensionName="IndexedSearch" />',
82  'Search form',
83  ],
84  'full LLL syntax for not existing label' => [
85  '<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:iDoNotExist" />',
86  '',
87  ],
88  'full LLL syntax for existing label' => [
89  '<f:translate key="LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:form.legend" />',
90  'Search form',
91  ],
92  'full LLL syntax for existing label with arguments without given arguments' => [
93  '<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:shortcut.title" />',
94  '%s%s on page &quot;%s&quot; [%d]',
95  ],
96  'full LLL syntax for existing label with arguments with given arguments' => [
97  '<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:shortcut.title" arguments="{0: \"a\", 1: \"b\", 2: \"c\", 3: 13}"/>',
98  'ab on page &quot;c&quot; [13]',
99  ],
100  'empty string on invalid extension' => [
101  '<f:translate key="LLL:EXT:i_am_invalid/Resources/Private/Language/locallang.xlf:dummy" />',
102  '',
103  ],
104  ];
105  }
106 
110  public function ‪renderReturnsStringForGivenId(): void
111  {
112  $view = new ‪StandaloneView();
113  $view->setTemplateSource('<f:translate id="foo">hello world</f:translate>');
114  self::assertSame('hello world', $view->render());
115  }
116 
121  {
122  $view = new ‪StandaloneView();
123  $view->setTemplateSource('<f:translate id="foo" default="default" />');
124  self::assertSame('default', $view->render());
125  }
126 
130  public function ‪renderReturnsTranslatedKey(): void
131  {
132  $this->setUpBackendUserFromFixture(1);
133  $view = new ‪StandaloneView();
134  $view->setTemplateSource('<f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack" />');
135  self::assertSame('Go back', $view->render());
136  }
137 
142  {
143  $this->setUpBackendUserFromFixture(1);
144  $view = new ‪StandaloneView();
145  $view->setTemplateSource('<f:translate key="LLL:EXT:invalid/Resources/Private/Language/locallang.xlf:dummy" />');
146  self::assertNull($view->render());
147  }
148 }
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsNullOnInvalidExtension
‪renderReturnsNullOnInvalidExtension()
Definition: TranslateViewHelperTest.php:141
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsDefaultIfNoTranslationIsFound
‪renderReturnsDefaultIfNoTranslationIsFound()
Definition: TranslateViewHelperTest.php:120
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsTranslatedKey
‪renderReturnsTranslatedKey()
Definition: TranslateViewHelperTest.php:130
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsStringForGivenKey
‪renderReturnsStringForGivenKey()
Definition: TranslateViewHelperTest.php:42
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsStringForGivenId
‪renderReturnsStringForGivenId()
Definition: TranslateViewHelperTest.php:110
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderReturnsStringInNonExtbaseContextDataProvider
‪renderReturnsStringInNonExtbaseContextDataProvider()
Definition: TranslateViewHelperTest.php:49
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest\renderThrowsExceptionIfNoKeyOrIdParameterIsGiven
‪renderThrowsExceptionIfNoKeyOrIdParameterIsGiven()
Definition: TranslateViewHelperTest.php:29
‪TYPO3\CMS\Fluid\Tests\Functional\ViewHelpers\TranslateViewHelperTest
Definition: TranslateViewHelperTest.php:25
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31