‪TYPO3CMS  11.5
NewRecordViewHelperTest.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 
25 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
26 
27 class ‪NewRecordViewHelperTest extends FunctionalTestCase
28 {
32  protected ‪$initializeDatabase = false;
33 
34  public function ‪setUp(): void
35  {
36  parent::setUp();
37  ‪$GLOBALS['TYPO3_REQUEST'] = (new ‪ServerRequest('https://www.example.com/'))
38  ->withAttribute('applicationType', ‪SystemEnvironmentBuilder::REQUESTTYPE_BE)
39  ->withAttribute('normalizedParams', new ‪NormalizedParams([], [], '', ''));
40  }
41 
45  public function ‪renderReturnsValidLinkInExplicitFormat(): void
46  {
47  $view = GeneralUtility::makeInstance(StandaloneView::class);
48  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithPidAndTable.html');
49  $result = urldecode($view->render());
50 
51  self::assertStringContainsString('/typo3/record/edit', $result);
52  self::assertStringContainsString('edit[a_table][17]=new', $result);
53  }
54 
58  public function ‪renderReturnsValidLinkForRoot(): void
59  {
60  $view = GeneralUtility::makeInstance(StandaloneView::class);
61  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithTable.html');
62  $result = urldecode($view->render());
63 
64  self::assertStringContainsString('/typo3/record/edit', $result);
65  self::assertStringContainsString('edit[a_table][0]=new', $result);
66  }
67 
71  public function ‪renderReturnsValidLinkInInlineFormat(): void
72  {
73  $view = GeneralUtility::makeInstance(StandaloneView::class);
74  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/InlineWithPidAndTable.html');
75  $result = urldecode($view->render());
76 
77  self::assertStringContainsString('/typo3/record/edit', $result);
78  self::assertStringContainsString('edit[b_table][17]=new', $result);
79  }
80 
84  public function ‪renderReturnsValidLinkWithReturnUrl(): void
85  {
86  $view = GeneralUtility::makeInstance(StandaloneView::class);
87  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithPidTableAndReturnUrl.html');
88  $result = urldecode($view->render());
89 
90  self::assertStringContainsString('/typo3/record/edit', $result);
91  self::assertStringContainsString('edit[c_table][17]=new', $result);
92  self::assertStringContainsString('returnUrl=foo/bar', $result);
93  }
94 
98  public function ‪renderReturnsValidLinkWitPosition(): void
99  {
100  $view = GeneralUtility::makeInstance(StandaloneView::class);
101  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithNegativeUid.html');
102  $result = urldecode($view->render());
103 
104  self::assertStringContainsString('/typo3/record/edit', $result);
105  self::assertStringContainsString('edit[c_table][-11]=new', $result);
106  }
107 
111  public function ‪renderReturnsValidLinkWithDefaultValue(): void
112  {
113  $view = GeneralUtility::makeInstance(StandaloneView::class);
114  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithPidTableAndDefaultValue.html');
115  $result = urldecode($view->render());
116 
117  self::assertStringContainsString('/typo3/record/edit', $result);
118  self::assertStringContainsString('edit[c_table][17]=new', $result);
119  self::assertStringContainsString('defVals[c_table][c_field]=c_value', $result);
120  }
121 
125  public function ‪renderReturnsValidLinkWithDefaultValues(): void
126  {
127  $view = GeneralUtility::makeInstance(StandaloneView::class);
128  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithPidTableAndDefaultValues.html');
129  $result = urldecode($view->render());
130 
131  self::assertStringContainsString('/typo3/record/edit', $result);
132  self::assertStringContainsString('edit[c_table][17]=new', $result);
133  self::assertStringContainsString('defVals[c_table][c_field]=c_value&defVals[c_table][c_field2]=c_value2', $result);
134  }
135 
139  public function ‪renderThrowsExceptionForUidAndPid(): void
140  {
141  $this->expectException(\InvalidArgumentException::class);
142  $this->expectExceptionCode(1526136338);
143 
144  $view = GeneralUtility::makeInstance(StandaloneView::class);
145  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithUidAndPid.html');
146  $view->render();
147  }
148 
152  public function ‪renderThrowsExceptionForInvalidUidArgument(): void
153  {
154  $this->expectException(\InvalidArgumentException::class);
155  $this->expectExceptionCode(1526136362);
156 
157  $view = GeneralUtility::makeInstance(StandaloneView::class);
158  $view->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Uri/NewRecordViewHelper/WithPositiveUid.html');
159  $view->render();
160  }
161 }
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder
Definition: SystemEnvironmentBuilder.php:41
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkWitPosition
‪renderReturnsValidLinkWitPosition()
Definition: NewRecordViewHelperTest.php:97
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkInExplicitFormat
‪renderReturnsValidLinkInExplicitFormat()
Definition: NewRecordViewHelperTest.php:44
‪TYPO3\CMS\Core\Core\SystemEnvironmentBuilder\REQUESTTYPE_BE
‪const REQUESTTYPE_BE
Definition: SystemEnvironmentBuilder.php:45
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest
Definition: NewRecordViewHelperTest.php:28
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\setUp
‪setUp()
Definition: NewRecordViewHelperTest.php:33
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderThrowsExceptionForInvalidUidArgument
‪renderThrowsExceptionForInvalidUidArgument()
Definition: NewRecordViewHelperTest.php:151
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri
Definition: EditRecordViewHelperTest.php:18
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkForRoot
‪renderReturnsValidLinkForRoot()
Definition: NewRecordViewHelperTest.php:57
‪TYPO3\CMS\Core\Http\ServerRequest
Definition: ServerRequest.php:37
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkWithDefaultValues
‪renderReturnsValidLinkWithDefaultValues()
Definition: NewRecordViewHelperTest.php:124
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkWithDefaultValue
‪renderReturnsValidLinkWithDefaultValue()
Definition: NewRecordViewHelperTest.php:110
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\$initializeDatabase
‪bool $initializeDatabase
Definition: NewRecordViewHelperTest.php:31
‪TYPO3\CMS\Fluid\View\StandaloneView
Definition: StandaloneView.php:31
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkWithReturnUrl
‪renderReturnsValidLinkWithReturnUrl()
Definition: NewRecordViewHelperTest.php:83
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderReturnsValidLinkInInlineFormat
‪renderReturnsValidLinkInInlineFormat()
Definition: NewRecordViewHelperTest.php:70
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Uri\NewRecordViewHelperTest\renderThrowsExceptionForUidAndPid
‪renderThrowsExceptionForUidAndPid()
Definition: NewRecordViewHelperTest.php:138
‪TYPO3\CMS\Core\Http\NormalizedParams
Definition: NormalizedParams.php:35